SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Lenguajes de Marcas y SGI

             UT 5: XML (I).
 Definición de esquemas y vocabularios.

       CFGS «Administración de Sistemas
            Informáticos en Red»

           CIFP Juan de Colonia (Burgos)

                David H. Martín Alonso

                 – Curso 2010/2011 –
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    Contenidos



                  Introducción
                  DTD
                  Espacios de nombres
                  XML Schemas




Febrero de 2011                                  CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    XML por fuera...
                  ●   XML se emplea para organizar
                      información de cualquier tipo.
                  ●   Muy popular, está omnipresente en
                      multitud de aplicaciones para
                      cualquier uso.
                  ●   Es un formato de texto,
                      estructurado usando etiquetas.
                  ●   Aunque tiene orígenes comunes y
                      es también muy popular en
                      Internet, no es HTML.
Febrero de 2011                                           CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                XML por dentro...



                  ●   Elementos
                  ●   Atributos
                  ●   Entidades
                  ●   Texto de contenido




Febrero de 2011                                     CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    ¿metalenguaje?
■ Introducción           XML es solo un metalenguaje.
□ DTD
□ XSD                      • Formato general, básico, común, obligatorio.
                           • Base para lenguajes con usos reales, concretos.
                         Diversos modelos para desarrollar cada lenguaje
                                –   Gramáticas, vocabularios, etc.
                  5/43
                           • Document Type Definition (DTD).
                           • Esquemas (XMLSchema).
                           • Espacios de nombres.
                         Necesidad de corrección a los dos niveles:
                           • Documentos bien formados.
                           • Documentos válidos.




Febrero de 2011                                                           CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                                       xmllint
■ Introducción                 Utilidad de texto para «sanear» archivos XML.
□ DTD
□ XSD
                                        –   Incluido en la biblioteca «libxml» .
                                 • Dar formato.
                                 • Verificar.
                                 • Validar frente a lenguajes.
                        6/43

                               $>   xmllint --version
                               …
                               $>   xmllint --help
                               …
                               $>   xmllint --format data.xml
                               …
                               $>   xmllint --valid data.xml
                               …
                               $>   xmllint –noout --dtdvalid data.dtd data.xml
                               …
                               $>   xmllint –noout --schema schema.xsd data.xml
                               …

                  lint: soft cloth, used for protecting a cut or burn on your skin.
                   lint: soft cloth, used for protecting a cut or burn on your skin.
Febrero de 2011                                                                        CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                               Actividad I: xmllint
                                    Trabajar con xmllint para formatear y validar
                                    documentos XHTML. Retirar la definición DOCTYPE
                                    del documento y descargar a mano los archivos
                                    correspondientes para tratar de hacer la validación
                                    completamente de manera local.




                                    Nota: Alguna versión distribuida para Win32, en
                                    concreto la de MSYS no incluye soporte HTTP y eso
                                    limita la validación contra archivos de definición a
                                    través de la red. Con la opción –-versión
                                    podemos ver las características incluidas.



Febrero de 2011                                                                 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                              DTD
□ Introducción           Document Type Definition
■ DTD
□ XSD                      • Modelo estructural del documento
                                – Elementos
                                – Atributos

                                – Descendientes, jerarquía

                                – Contenido
                  8/43
                           • Modelo clásico heredado de SGML
                                – ¡Sintaxis NO XML!
                                – Sencillo = limitado

                                – En recesión frente a esquemas, espacios de nombres...

                           • Ubicación
                                – Interno
                                – Externo

                                – Mixto

                           • Notación: <! … >
                                –   DOCTYPE, ELEMENT, ATTLIST, ENTITY

Febrero de 2011                                                                    CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                     Ejemplos DTD: DOCTYPE
□ Introducción                      <!DOCTYPE –nombre– [ –declaraciones– ]>
■ DTD
□ XSD
                          • La definición DOCTYPE precede al elemento raíz.
                          • El nombre debe ser el del elemento raíz.
                          • Las declaraciones podrán estar en un archivo
                  9/43
                            separado.

                         <?xml version="1.0" encoding="utf-8" standalone="yes"?>
                         <!DOCTYPE huérfano [
                            <!ELEMENT huérfano EMPTY>
                         ]>

                         <huérfano />




Febrero de 2011                                                               CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Ejemplos DTD: Elementos (I)
□ Introducción                      <!ELEMENT –nombre–   –contenido– >
■ DTD
□ XSD                      • Todos los elementos permitidos deben tener
                             descripción.
                           • Cada elemento debe indicar nombre y contenido.
                           • Contenidos especiales:
                  10/43
                                – EMPTY: elementos siempre vacíos.
                                – ANY: admite cualquier contenido, sean elementos o texto.




                          <?xml version="1.0" encoding="utf-8" standalone="yes"?>
                          <!DOCTYPE huérfano [
                             <!ELEMENT huérfano ANY>
                             <!ELEMENT furtivo EMPTY>
                          ]>

                          <huérfano><furtivo/></huérfano>




Febrero de 2011                                                                     CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Ejemplos DTD: Elementos (II)
□ Introducción             • Los descendientes van entre paréntesis.
■ DTD
□ XSD
                           • El operador coma « , » separa los descendientes
                             exigidos y en orden.

                          <?xml version="1.0" encoding="utf-8" standalone="yes"?>
                          <!DOCTYPE huérfano [
                  11/43      <!ELEMENT huérfano (a, b)>
                             <!ELEMENT a ANY>
                             <!ELEMENT b ANY>
                          ]>

                          <huérfano><a/><b/></huérfano>




Febrero de 2011                                                            CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Ejemplos DTD: Elementos (III)
□ Introducción                  – El operador « | » separa descendientes alternativos.
■ DTD                           – Los paréntesis « () » permiten crear subgrupos.
□ XSD                           – Los elementos (o subgrupos) pueden ser opcionales

                                  « ? » señala componentes opcionales.
                                  « * » permite varios componentes opcionales.
                                  « + » exige uno o más componentes.
                                – #PCDATA se emplea para contenido textual.
                  12/43



                          <!DOCTYPE padre [
                             <!ELEMENT padre ( hijo+ ) >
                             <!ELEMENT hijo ( #PCDATA | a | b )* >
                             <!ELEMENT a ANY>
                             <!ELEMENT b ANY>
                          ]>

                          <padre>
                          <hijo />
                          <hijo><a/></hijo><hijo><b/></hijo>
                          <hijo><a/><b/></hijo><hijo><b/><a/></hijo>
                          <hijo><b/>1<a/>2<b/>¡Hola mundo!<b/>4<b/>5<b/></hijo>
                          </padre>
Febrero de 2011                                                                      CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Ejemplos DTD: Elementos (IV)
□ Introducción
■ DTD
□ XSD
                             <!ELEMENT table
                                (caption?, (col*|colgroup*), thead?, tfoot?,
                                (tbody+|tr+))>
                             <!ELEMENT caption %Inline;>
                  13/43      <!ELEMENT thead    (tr)+>
                             <!ELEMENT tfoot    (tr)+>
                             <!ELEMENT tbody    (tr)+>
                             <!ELEMENT colgroup (col)*>
                             <!ELEMENT col      EMPTY>
                             <!ELEMENT tr       (th|td)+>
                             <!ELEMENT th       %Flow;>
                             <!ELEMENT td       %Flow;>




Febrero de 2011                                                           CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    <!DOCTYPE ...>
□ Introducción            DTD internos
■ DTD
                                    <!DOCTYPE elemento0 [ <!ELEMENT elemento0 ANY> ]>
□ XSD

                          DTD externos
                                –   Con prólogo donde se indica la codificación:
                                    <?xml version="1.0" encoding="utf-8"?>
                  14/43     • Basados en URI
                                    <!DOCTYPE elemento0 SYSTEM "dtd0.dtd">
                            • Basados en identificador
                                – Si está almacenado no requiere descarga.
                                – URI opcional.

                                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
                                    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

                          DTD mixtos
                                    <!DOCTYPE elemento1 SYSTEM "dtd0.dtd" [
                                       <!ELEMENT extra ANY>
                                    ]>
Febrero de 2011                                                                    CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Actividad II: diseño de DTD
                                    Diseñar un DTD para almacenar libros, permitiendo la
                                     incorporación   de   los   bloques   o   simplemente
                                     capítulos que lo componen.
                                    <libro>
                                    <título>Egolatría</título>
                                    <autor>Yo mismo</autor>
                                    <autor>Conmigo mismo</autor>
                                    <bloque>
                                    <título>Yo</título>
                                    <capítulo><título>El Yo</título></capítulo>
                                    <capítulo><título>Mí</título></capítulo>
                                    <capítulo><título>Menda</título></capítulo>
                                    </bloque>
                                    <bloque>
                                    <título>Lo demás</título>
                                    <capítulo><título>La Nada</título></capítulo>
                                    <capítulo><título>El vacío</título></capítulo>
                                    </bloque>
                                    </libro>

Febrero de 2011                                                                   CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Actividad III: codificación DTD
                                    Con el archivo DTD del ejercicio anterior. Convertirlo
                                    a   codificación   Windows-1252    y   comprobar         la
                                    necesidad de indicar la codificación en la declaración
                                    de XML en el prólogo.

                                    Probar si es compatible un documento XML en UTF-8
                                    con un DTD en la codificación de Windows española.




Febrero de 2011                                                                   CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                      Actividad V: CSS y XML
                                    Buscar información sobre cómo enlazar XML con
                                    CSS y preparar una hoja de estilos para el
                                    documento del libro.

                                    Es conveniente aplicar el formato “display: block;” a
                                    los elementos definidos para visualizarlos en líneas
                                    separadas.

                                       http://www.w3schools.com/Xml/xml_display.asp




Febrero de 2011                                                                  CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                     Ejemplos DTD: Atributos (I)
□ Introducción                      <!ATTLIST –elemento– –nombre– –tipo– –opcionalidad– >
■ DTD
□ XSD
                          nombre + tipo + opcionalidad
                            • Tipos: restricciones sobre los valores admisibles.
                            • Opcionalidad:
                  18/43         – Atributos obligatorios/opcionales
                                – Valores por defecto

                            • Hay dos nombres reservados, de uso habitual.
                                – Idioma (BCP 47) del elemento xml:lang
                                – Preservar el espaciado xml:space

                                – Aún requieren declaración para ser usados.

                                  <!ATTLIST ejemplo
                                       xml:lang CDATA "es-ES"
                                       xml:space (default|preserve) "preserve" >




Febrero de 2011                                                                  CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                   Ejemplos DTD: Atributos (II)
□ Introducción            • Tipos: restricciones sobre los valores admisibles
■ DTD                           –   CDATA: general, texto no procesado.
□ XSD
                                    ID: identificador de elementos, único.
                                    IDREF, IDREFS: referencia a un identificador existente.
                                    NMTOKEN, NMTOKENS: palabras, nombres válidos.
                                    ENTITY, ENTITIES: nombre de entidad definida antes.
                  19/43
                                    Enumeración de valores permitidos: (a1|a2|b1|c2)
                          • Opcionalidad y valores por defecto
                                – #REQUIRED: obligatorio
                                – #IMPLIED: opcional

                                – Opcional con valor por defecto: "valor"

                                – Opcional, valor por defecto y obligado: #FIXED "valor"

                                        <!ELEMENT   e0 ANY >
                                        <!ATTLIST   e0
                                            id      ID         #REQUIRED
                                            refs    IDREFS     #IMPLIED
                                            a0      CDATA      #IMPLIED
                                            a1      CDATA      "220V"
                                            a2      CDATA      #FIXED "siempre"
                                            a3      (pc|mac)   #REQUIRED >
Febrero de 2011                                                                        CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Ejemplos DTD: Atributos (III)
□ Introducción
■ DTD
□ XSD




                                    <!DOCTYPE padre [
                  20/43
                                       <!ELEMENT padre (hijo+) >
                                       <!ELEMENT hijo EMPTY >
                                       <!ATTLIST hijo
                                           id ID #REQUIRED
                                           a0 CDATA #REQUIRED
                                           rel IDREF #IMPLIED
                                       >
                                    ]>

                                    <padre>
                                    <hijo id="c6" a0="eso" rel="c7"/>
                                    <hijo id="c7" a0="eso"/>
                                    </padre>


Febrero de 2011                                                    CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                     Actividad V: Diseño DTD
                                    Diseñar un modelo de documento DTD para la
                                    información de los horarios de los alumnos aplicando
                                    las posibilidades explicadas hasta el momento. Ej.:
                                    empleando identificadores únicos para los módulos.




Febrero de 2011                                                                 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                         Entidades
□ Introducción                      <!ENTITY –nombre– –definición– >
■ DTD
□ XSD
                          Constantes, valores reutilizables
                          Varios tipos
                            • Internas / externas
                  22/43
                                – Internas. Ej.: <!ENTITY HMundo "Hola mundo">
                                – Externas.

                                  Ej.: <!ENTITY ENT0 SYSTEM "algo.ent">
                                  Ej.: <!ENTITY % HTMLlat1 PUBLIC
                                       "-//W3C//ENTITIES Latin 1 for XHTML//EN"
                                       "xhtml-lat1.ent">
                            • Generales (&nombre;) / de parámetros (%nombre;)
                                –   De parámetros, para usar en el propio DTD:
                                    Ej.: <!ENTITY % comunes "id ID #IMPLIED">
                          Predefinidas:
                                    &lt; – &gt; – &amp; – &apos; – &quot;
Febrero de 2011                                                              CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                          Ejemplos DTD: Entidades
□ Introducción                  <?xml version="1.0" encoding="utf-8"?>
■ DTD                           <!ENTITY % contenido "(#PCDATA|p)*">
□ XSD                           <!ELEMENT html (head,body)>
                                <!ELEMENT head (title)>
                                <!ELEMENT body %contenido;>
                                <!ELEMENT title (#PCDATA)>
                                <!ELEMENT p %contenido;>
                  23/43



                          <?xml version="1.0" encoding="utf-8"?>
                          <!ENTITY % ENT0 SYSTEM "htmltrucado.ent">
                          %ENT0;
                          <!ELEMENT html (head,body)>
                          <!ELEMENT head (title)>
                          <!ELEMENT body %contenido;>
                          <!ELEMENT title (#PCDATA)>
                          <!ELEMENT p %contenido;>
                             <?xml version="1.0" encoding="utf-8"?>
                             <!ENTITY % contenido "(#PCDATA|p)*">
                             <!ENTITY firma "<p>DHMA2011</p>">


Febrero de 2011                                                          CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                           Espacios de nombres
□ Introducción            XML Namespaces – xmlns
□ DTD
■ XSD                      • Espacios de nombres.
                           • Permiten la coexistencia de escenarios
                                – Combinación de elementos en el mismo archivo.
                                – Definiciones separadas

                  24/43    • Se identifican mediante un nombre, un URI
                                – ATENCIÓN: no es una dirección web, sólo un nombre.
                                – Puede no estar disponible si tratamos de acceder a él.

                                  Atributo xmlns. Heredado por los elementos hijo.
                           • Espacio de nombres por defecto
                                    <html xmlns="http://www.w3.org/1999/xhtml">
                           • Espacios alternativos, identificados con prefijo
                                    <padre
                                    xmlns:svg="http://www.w3.org/2000/svg">
                                    …
                                    <svg:ellipse cx="2cm" cy="4cm"
                                    rx="2cm" ry="1cm" />
Febrero de 2011                                                                      CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                      Usando espacios de nombres
                  ●   En un mismo documento XML pueden coexistir varios
                      vocabularios/gramáticas que llamamos «espacios de
                      nombres» .
                  ●   Cada espacio de nombres se identifica mediante un nombre
                      único, con formato URI, que generalmente no devuelve
                      ninguna página.
                  ●   Se selecciona con el atributo «xmlns» y afecta
                      a todos los nodos hijo.
                  ●   Se le puede asignar un prefijo para identificar
                      solo a algunos elementos
                  <padre xmlns:prefijo="…">
                  <prefijo:nombre> … </prefijo:nombre>

Febrero de 2011                                                            CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    Esquemas XML (I)
□ Introducción                XML Schema Definition Language (XSD)
□ DTD
■ XSD
                                     –   Confusión con el nombre genérico: Esquema XML
                                • Modelo estructural del documento
                                     – Nombre adoptado de las bases de datos
                                     – Conjunto   de restricciones de estructura y contenido
                                       verificables por medios automáticos.
                                • Mejoras sobre DTD
                      26/43



                                     – Formato XML  los esquemas son validables por separado
                                     – Mejoras en tipaje: aplicable también al contenido

                                     – Mejoras en tipaje: más tipos y permite ampliarlos 

                                       + permite una validación más estricta
                                       + mejora la comunicación entre aplicaciones, rigor en datos
                                     – Soporte para espacios de nombres  reutilización

                                     – Muy completo ≠ sencillo


                  ... the syntax of XML Schema was obviously produced by someone who grew up at the
                   ... the syntax of XML Schema was obviously produced by someone who grew up at the
                  bottom of a deep well in the middle of a dark, wasteful moor where he was tortured daily by
                   bottom of a deep well in the middle of a dark, wasteful moor where he was tortured daily by
                  abusive giant squirrels and wishes to share his pain with the world.
                   abusive giant squirrels and wishes to share his pain with the world.
                                                                         Robin Berjon (co-author SVG 1.1 spec)
                                                                         Robin Berjon (co-author SVG 1.1 spec)
Febrero de 2011                                                                                      CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                              Esquemas XML (II)
□ Introducción            Objetos:                   Tipos predefinidos:
□ DTD
■ XSD
                                    element               – string
                                    attribute             – decimal

                                    simpleType            – float

                                    complexType           – date

                                    group                 –…
                  27/43
                                    attributeGroup

                          Compositores
                                    sequence
                                    choice
                                    all




Febrero de 2011                                                        CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                      Ejemplos XSD: Elementos
□ Introducción            <xs:element name="título" type="xs:string"/>
□ DTD                     <xs:element name="autor" type="xs:string"/>
■ XSD


                          <xs:element name="capítulo">
                             <xs:complexType>
                                 <xs:sequence>
                  28/43             <xs:element ref="título"/>
                                 </xs:sequence>
                             </xs:complexType>
                          </xs:element>


                          <xs:element name="bloque">
                             <xs:complexType>
                                 <xs:sequence>
                                    <xs:element ref="título"/>
                                    <xs:element ref="capítulo"
                                        minOccurs="1" maxOccurs="unbounded"/>
                                 </xs:sequence>
                             </xs:complexType>
                          </xs:element>
Febrero de 2011                                                             CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                   El esquema XSD
□ Introducción                • Elemento raíz del esquema: schema                            XSD
□ DTD
                             <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
■ XSD
                                targetNamespace="http://www.mio.es/xsd1"
                                xmlns="http://www.mio.es/xsd1">              Vocabulario
                               ...                                          XML Schema
                             </schema>                          Vocabulario
                                                                          definido
                     29/43
                              • Espacio de nombres del propio XML Schema.
                                  – Nombres con prefijo
                                  – Elementos de XML Schema para construir las definiciones.

                              • Espacio de nombres objeto de la definición.
                                  – Nombres sin prefijo
                                  – Permite referencias entre elementos propios de forma clara.


                                                                        Vocabulario          XML
                  <raíz xmlns="http://www.mio.es/xsd1"                    a usar
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://www.mio.es/xsd1 xsdlibros.xsd">
                     ...
                  </raíz>                                   Localización
                                                                   del vocabulario
Febrero de 2011                                                                       CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                          xs – xsi
□ Introducción            Usamos dos especificaciones estándar.
□ DTD
■ XSD
                                – XML Schema: dos espacios de nombres implicados.
                                – Prefijos estándar, ampliamente utilizados pero cambiables.



                            • Schema Namespace
                                – Nombre: http://www.w3.org/2001/XMLSchema
                  30/43
                                – En el archivo XSD que contiene las definiciones.

                                – Habitualmente usa los prefijos xs: o xsd:

                                – Elementos XML Schema para construir las definiciones.



                            • Schema Instance Namespace
                                – Nombre: http://www.w3.org/2001/XMLSchema-instance
                                – En el archivo que contiene el documento XML con datos.

                                – Habitualmente usa el prefijo xsi:

                                – Localización de archivos XSD.

                                – Opcional y muy reducido.

                                  Solo schemaLocation y noNamespaceSchemaLocation
Febrero de 2011                                                                      CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    Elementos XSD
□ Introducción            • Elementos globales
□ DTD                           – Hijos directos de <schema … >
■ XSD
                                – Definidos con <element … >

                                – Incorporación directa y obligatoria al espacio.

                                – Atributo name para darle nombre y type para el tipo.


                          <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … >
                  31/43
                              <xs:element name="título" type="xs:string"/>
                              <xs:element name="libro" type="grupo"/>
                              ...

                                –   Se pueden reutilizar/referenciar posteriormente
                              <xs:complexType name="grupo">
                                  <xs:sequence>
                                      <xs:element ref="título"/>
                                  </xs:sequence>
                              </xs:complexType>
                          </xs:schema>

                                – Tipos complejos: definición en elemento o separada.
                                – Repeticiones: minOccurs="1" maxOccurs="unbounded"

Febrero de 2011                                                                       CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Ejemplos XSD: Elementos (II)
□ Introducción            <?xml version="1.0" encoding="utf-8"?>
                          <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
□ DTD                          targetNamespace="http://www.mio.es/xsd2" xmlns="http://www.mio.es/xsd2">
                          <xs:element name="título" type="xs:string"/>
■ XSD                     <xs:element name="autor" type="xs:string"/>
                          <xs:element name="capítulo">
                               <xs:complexType>
                                    <xs:sequence>
                                         <xs:element ref="título"/>
                                    </xs:sequence>
                               </xs:complexType>
                          </xs:element>
                  32/43
                          <xs:element name="bloque">
                               <xs:complexType>
                                    <xs:sequence>
                                         <xs:element ref="título"/>
                                         <xs:element ref="capítulo" minOccurs="1" maxOccurs="unbounded"/>
                                    </xs:sequence>
                               </xs:complexType>
                          </xs:element>
                          <xs:element name="libro">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element ref="título"/>
                                <xs:element ref="autor" minOccurs="1" maxOccurs="unbounded"/>
                                <xs:choice>
                                    <xs:element ref="bloque" minOccurs="1" maxOccurs="unbounded"/>
                                    <xs:element ref="capítulo" minOccurs="1" maxOccurs="unbounded"/>
                                 </xs:choice>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          </xs:schema>

Febrero de 2011                                                                                   CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                    Atributos XSD
□ Introducción             • Atributos globales
□ DTD                           – Hijos directos de <schema … >
■ XSD
                                – Definidos con <attribute … >

                                – Atributo name para darle nombre y type para el tipo.

                                – use="required" o use="optional"

                                  con default="…"
                  33/43

                          <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … >
                              <xs:attribute name="cód" type="xs:decimal"/>
                              ...


                                – Se pueden referenciar posteriormente
                                – Van al final (tras sequence/choice/all)


                              <xs:complexType name="codificado">
                                     ...
                                     <xs:attribute ref="cód" use="required"/>
                              </xs:complexType>
                          </xs:schema>



Febrero de 2011                                                                     CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Actividad VI: Tipos simples
                                    Buscar en las referencias los tipos de datos simples
                                    predefinidos y ponerlos a prueba.
                                       W3Schools
                                       Dankert, E.
                                       XML Schema Tutorial




Febrero de 2011                                                                 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  simpleType vs. complexType
□ Introducción             • Tenemos tipos predefinidos que podemos adaptar
□ DTD                           – restriction / extension
■ XSD
                                – Sobre el tipo indicado con base="…"

                                – También se pueden aplicar a los nuevos tipos creados.

                                – Definiciones globales con nombre, reutilizables.

                                – Definiciones locales sin nombre, en elementos y atributos.

                  35/43
                           • simpleType
                                –   Aplicables a texto: válido para contenido o atributos
                           • complexType
                                –   Cuando hay atributos, elementos hijo o contenido mixto.

                          <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … >
                            <xs:simpleType name="díasemana">
                              <xs:restriction base="xsd:string">
                                <xs:enumeration value="miércoles"/>
                                <xs:enumeration value="viernes"/>
                              </xs:restriction>
                            </xs:simpleType>
                            <xs:element name="jornada" type="díasemana"/>
                          </schema>
Febrero de 2011                                                                             CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                            Ejemplos XSD: Tipos
□ Introducción            <?xml version="1.0" encoding="utf-8"?>
□ DTD                     <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
■ XSD                        targetNamespace="http://www.mio.es/xsd3"
                             xmlns="http://www.mio.es/xsd3">

                            <xs:simpleType name="díasemana">
                              <xs:restriction base="xs:string">
                                <xs:enumeration value="miércoles"/>
                  36/43
                                <xs:enumeration value="viernes"/>
                              </xs:restriction>
                            </xs:simpleType>
                            <xs:element name="jornada" type="díasemana"/>
                            <xs:element name="clase">
                             <xs:complexType>
                                 <xs:sequence>
                                    <xs:element ref="jornada" />
                                 </xs:sequence>
                             </xs:complexType>
                            </xs:element>
                          </xs:schema>



Febrero de 2011                                                             CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                      Actividad VII: esquemas
                                    Reconstruir el ejemplo anterior para que <jornada>
                                    sea un elemento vacío con dos atributos día1 y
                                    día2 donde indiquemos el día de la semana.



                                    Rehacer alguno de los ejercicios de diseño de DTD
                                    realizados   empleando   ahora   esquemas         XML
                                    Schema.




Febrero de 2011                                                                  CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Definiciones globales y locales
□ Introducción             • Globales: definiciones en primer nivel, en schema.
□ DTD
                               – Nombre obligatorio name="…", también para tipos.
■ XSD
                               – Reutilizables usando ref="…" o type="…"


                           • Locales: definiciones dentro de otras definiciones
                                –   Permite omitir nombres si no es elemento ni atributo.
                   38/43   • Se pueden construir esquemas alternativos con unas
                             y otras.
                           • Calificación: prefijos obligatorios o no.
                                – Por defecto los elementos y atributos locales no requieren
                                   calificación por prefijo, se identifican por el contexto.
                                – Incompatible con espacio de nombres por defecto.

                                – Se puede forzar el uso del prefijo

                                  elementFormDefault="qualified"
                                  attributeFormDefault="qualified"




Febrero de 2011                                                                         CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Actividad VIII: otros modelos
                                    Existen   otros   lenguajes     para   especificar      las
                                    características de documentos XML. Relax NG es
                                    uno de los más citados con una sintaxis más sencilla
                                    que XML Schema. Buscar información sobre él y
                                    construir y validar ejemplos.




Febrero de 2011                                                                     CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                  Actividad IX: SVG y MathML
                                    Familiarizarse con los lenguajes SVG y MathML.
                                    Aprovechar la actividad para revisar conceptos
                                    básicos sobre formatos de imágenes y resoluciones
                                    e introducir el uso de la aplicación de diseño gráfico
                                    Inkscape, pero sin perder nunca de vista la parte
                                    técnica analizando el código XML/SVG/CSS.




Febrero de 2011                                                                   CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                       Referencias
                  W3C Recommendation (2008, W3C) XExtensible Markup Language
                  http://www.w3.org/TR/xml/
                  W3Schools (WWW) DTD Tutorial
                  http://www.w3schools.com/DTD/
                  W3Schools (WWW) XML Schema Tutorial
                  http://www.w3schools.com/Schema/
                  Boulanger, T. y Lecomte, S. (2009, ENI). XML práctico: bases esenciales,
                  conceptos y casos prácticos. ISBN: 978-2-7460-4958-1.
                  Dankert, E. (2005, edankert...) XML Grammars.
                  http://www.edankert.com/grammars/
                  Webucator (2009) XML Schema Tutorial.
                  http://www.learn-xml-schema-tutorial.com/
                  Wilde, E. (2010, UC Berkeley) XML Foundations –INFO 242 (CCN 42593)– .
                  http://dret.net/lectures/xml-fall10/


                                      Bibliografía actualizada en delicious:
                                    http://www.delicious.com/dhmartin/LM-ASIR



Febrero de 2011                                                                      CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                                        Licencia




                  Este material está disponible bajo una Licencia Creative Commons,
                           http://creativecommons.org/licenses/by-nc-sa/3.0/es/




Febrero de 2011                                                                   CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.



                         ¿Dudas o cuestiones?




Febrero de 2011                                 CIFP Juan de Colonia

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Software libre, web semántica y archivos
Software libre, web semántica y archivosSoftware libre, web semántica y archivos
Software libre, web semántica y archivos
 
Tutorial de DTD en PDF
Tutorial de DTD en PDFTutorial de DTD en PDF
Tutorial de DTD en PDF
 
Persistencia de un modelo de objetos
Persistencia de un modelo de objetosPersistencia de un modelo de objetos
Persistencia de un modelo de objetos
 
Presentacion PL/SQL
Presentacion PL/SQLPresentacion PL/SQL
Presentacion PL/SQL
 
Chuleta de DTD
Chuleta de DTDChuleta de DTD
Chuleta de DTD
 
Tema IV elementos de SQL
Tema IV elementos de SQLTema IV elementos de SQL
Tema IV elementos de SQL
 
Bases de datos sql
Bases de datos  sqlBases de datos  sql
Bases de datos sql
 

Similar a LM-UT5: DTD, XML Schema

Similar a LM-UT5: DTD, XML Schema (20)

LM-UT6: Transformaciones XML
LM-UT6: Transformaciones XML LM-UT6: Transformaciones XML
LM-UT6: Transformaciones XML
 
Colima2000
Colima2000Colima2000
Colima2000
 
Dn13 u3 a28_slja
Dn13 u3 a28_sljaDn13 u3 a28_slja
Dn13 u3 a28_slja
 
XML: Introducción
XML: IntroducciónXML: Introducción
XML: Introducción
 
LM-UT1: Lenguajes de marcas
LM-UT1: Lenguajes de marcas LM-UT1: Lenguajes de marcas
LM-UT1: Lenguajes de marcas
 
Htmlvaleria
HtmlvaleriaHtmlvaleria
Htmlvaleria
 
Xm ljosue castro
Xm ljosue castroXm ljosue castro
Xm ljosue castro
 
Lenguaje XML
Lenguaje XMLLenguaje XML
Lenguaje XML
 
Diferencias entre XML y HTML
Diferencias entre XML y HTMLDiferencias entre XML y HTML
Diferencias entre XML y HTML
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Xml
XmlXml
Xml
 
Xml
XmlXml
Xml
 
"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5"Android de la A a la Z" -- Unidad 5
"Android de la A a la Z" -- Unidad 5
 
Presentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.pptPresentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.ppt
 
XML de A a Z
XML de A a ZXML de A a Z
XML de A a Z
 
Generación de Interfaces a partir de XML
Generación de Interfaces a partir de XMLGeneración de Interfaces a partir de XML
Generación de Interfaces a partir de XML
 
Presentación1 bricio vera
Presentación1 bricio veraPresentación1 bricio vera
Presentación1 bricio vera
 
Visualizacion
VisualizacionVisualizacion
Visualizacion
 
FORMATO XML
FORMATO XMLFORMATO XML
FORMATO XML
 
XML Y RDF En Web SemáNtica
XML Y RDF En Web SemáNticaXML Y RDF En Web SemáNtica
XML Y RDF En Web SemáNtica
 

Más de David Martin

Más de David Martin (16)

PLE UT10
PLE UT10PLE UT10
PLE UT10
 
Taller: «Gráficos en el Aula»
Taller: «Gráficos en el Aula»Taller: «Gráficos en el Aula»
Taller: «Gráficos en el Aula»
 
IW-UTXX: Programación web en PHP con bases de datos
IW-UTXX: Programación web en PHP con bases de datosIW-UTXX: Programación web en PHP con bases de datos
IW-UTXX: Programación web en PHP con bases de datos
 
LM-UT8: Sistemas de Gestión empresarial
LM-UT8: Sistemas de Gestión empresarialLM-UT8: Sistemas de Gestión empresarial
LM-UT8: Sistemas de Gestión empresarial
 
LM-UT3: CSS
LM-UT3: CSS LM-UT3: CSS
LM-UT3: CSS
 
LM-UT2: HTML
LM-UT2: HTML LM-UT2: HTML
LM-UT2: HTML
 
LM-UT4: Sindicación de contenidos
LM-UT4: Sindicación de contenidosLM-UT4: Sindicación de contenidos
LM-UT4: Sindicación de contenidos
 
Inkscape
InkscapeInkscape
Inkscape
 
La Aldea Global
La Aldea GlobalLa Aldea Global
La Aldea Global
 
Plataformas web
Plataformas webPlataformas web
Plataformas web
 
Ple Ut8
Ple Ut8Ple Ut8
Ple Ut8
 
Burgo Red
Burgo RedBurgo Red
Burgo Red
 
Ethnet
EthnetEthnet
Ethnet
 
Ociburgo
OciburgoOciburgo
Ociburgo
 
Fundicar
FundicarFundicar
Fundicar
 
Eth100
Eth100Eth100
Eth100
 

Último

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 

Último (20)

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 

LM-UT5: DTD, XML Schema

  • 1. Lenguajes de Marcas y SGI UT 5: XML (I). Definición de esquemas y vocabularios. CFGS «Administración de Sistemas Informáticos en Red» CIFP Juan de Colonia (Burgos) David H. Martín Alonso – Curso 2010/2011 –
  • 2. XML (I): ESQUEMAS Y VOCABULARIOS. Contenidos Introducción DTD Espacios de nombres XML Schemas Febrero de 2011 CIFP Juan de Colonia
  • 3. XML (I): ESQUEMAS Y VOCABULARIOS. XML por fuera... ● XML se emplea para organizar información de cualquier tipo. ● Muy popular, está omnipresente en multitud de aplicaciones para cualquier uso. ● Es un formato de texto, estructurado usando etiquetas. ● Aunque tiene orígenes comunes y es también muy popular en Internet, no es HTML. Febrero de 2011 CIFP Juan de Colonia
  • 4. XML (I): ESQUEMAS Y VOCABULARIOS. XML por dentro... ● Elementos ● Atributos ● Entidades ● Texto de contenido Febrero de 2011 CIFP Juan de Colonia
  • 5. XML (I): ESQUEMAS Y VOCABULARIOS. ¿metalenguaje? ■ Introducción XML es solo un metalenguaje. □ DTD □ XSD • Formato general, básico, común, obligatorio. • Base para lenguajes con usos reales, concretos. Diversos modelos para desarrollar cada lenguaje – Gramáticas, vocabularios, etc. 5/43 • Document Type Definition (DTD). • Esquemas (XMLSchema). • Espacios de nombres. Necesidad de corrección a los dos niveles: • Documentos bien formados. • Documentos válidos. Febrero de 2011 CIFP Juan de Colonia
  • 6. XML (I): ESQUEMAS Y VOCABULARIOS. xmllint ■ Introducción Utilidad de texto para «sanear» archivos XML. □ DTD □ XSD – Incluido en la biblioteca «libxml» . • Dar formato. • Verificar. • Validar frente a lenguajes. 6/43 $> xmllint --version … $> xmllint --help … $> xmllint --format data.xml … $> xmllint --valid data.xml … $> xmllint –noout --dtdvalid data.dtd data.xml … $> xmllint –noout --schema schema.xsd data.xml … lint: soft cloth, used for protecting a cut or burn on your skin. lint: soft cloth, used for protecting a cut or burn on your skin. Febrero de 2011 CIFP Juan de Colonia
  • 7. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad I: xmllint Trabajar con xmllint para formatear y validar documentos XHTML. Retirar la definición DOCTYPE del documento y descargar a mano los archivos correspondientes para tratar de hacer la validación completamente de manera local. Nota: Alguna versión distribuida para Win32, en concreto la de MSYS no incluye soporte HTTP y eso limita la validación contra archivos de definición a través de la red. Con la opción –-versión podemos ver las características incluidas. Febrero de 2011 CIFP Juan de Colonia
  • 8. XML (I): ESQUEMAS Y VOCABULARIOS. DTD □ Introducción Document Type Definition ■ DTD □ XSD • Modelo estructural del documento – Elementos – Atributos – Descendientes, jerarquía – Contenido 8/43 • Modelo clásico heredado de SGML – ¡Sintaxis NO XML! – Sencillo = limitado – En recesión frente a esquemas, espacios de nombres... • Ubicación – Interno – Externo – Mixto • Notación: <! … > – DOCTYPE, ELEMENT, ATTLIST, ENTITY Febrero de 2011 CIFP Juan de Colonia
  • 9. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: DOCTYPE □ Introducción <!DOCTYPE –nombre– [ –declaraciones– ]> ■ DTD □ XSD • La definición DOCTYPE precede al elemento raíz. • El nombre debe ser el del elemento raíz. • Las declaraciones podrán estar en un archivo 9/43 separado. <?xml version="1.0" encoding="utf-8" standalone="yes"?> <!DOCTYPE huérfano [ <!ELEMENT huérfano EMPTY> ]> <huérfano /> Febrero de 2011 CIFP Juan de Colonia
  • 10. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Elementos (I) □ Introducción <!ELEMENT –nombre– –contenido– > ■ DTD □ XSD • Todos los elementos permitidos deben tener descripción. • Cada elemento debe indicar nombre y contenido. • Contenidos especiales: 10/43 – EMPTY: elementos siempre vacíos. – ANY: admite cualquier contenido, sean elementos o texto. <?xml version="1.0" encoding="utf-8" standalone="yes"?> <!DOCTYPE huérfano [ <!ELEMENT huérfano ANY> <!ELEMENT furtivo EMPTY> ]> <huérfano><furtivo/></huérfano> Febrero de 2011 CIFP Juan de Colonia
  • 11. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Elementos (II) □ Introducción • Los descendientes van entre paréntesis. ■ DTD □ XSD • El operador coma « , » separa los descendientes exigidos y en orden. <?xml version="1.0" encoding="utf-8" standalone="yes"?> <!DOCTYPE huérfano [ 11/43 <!ELEMENT huérfano (a, b)> <!ELEMENT a ANY> <!ELEMENT b ANY> ]> <huérfano><a/><b/></huérfano> Febrero de 2011 CIFP Juan de Colonia
  • 12. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Elementos (III) □ Introducción – El operador « | » separa descendientes alternativos. ■ DTD – Los paréntesis « () » permiten crear subgrupos. □ XSD – Los elementos (o subgrupos) pueden ser opcionales « ? » señala componentes opcionales. « * » permite varios componentes opcionales. « + » exige uno o más componentes. – #PCDATA se emplea para contenido textual. 12/43 <!DOCTYPE padre [ <!ELEMENT padre ( hijo+ ) > <!ELEMENT hijo ( #PCDATA | a | b )* > <!ELEMENT a ANY> <!ELEMENT b ANY> ]> <padre> <hijo /> <hijo><a/></hijo><hijo><b/></hijo> <hijo><a/><b/></hijo><hijo><b/><a/></hijo> <hijo><b/>1<a/>2<b/>¡Hola mundo!<b/>4<b/>5<b/></hijo> </padre> Febrero de 2011 CIFP Juan de Colonia
  • 13. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Elementos (IV) □ Introducción ■ DTD □ XSD <!ELEMENT table (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))> <!ELEMENT caption %Inline;> 13/43 <!ELEMENT thead (tr)+> <!ELEMENT tfoot (tr)+> <!ELEMENT tbody (tr)+> <!ELEMENT colgroup (col)*> <!ELEMENT col EMPTY> <!ELEMENT tr (th|td)+> <!ELEMENT th %Flow;> <!ELEMENT td %Flow;> Febrero de 2011 CIFP Juan de Colonia
  • 14. XML (I): ESQUEMAS Y VOCABULARIOS. <!DOCTYPE ...> □ Introducción DTD internos ■ DTD <!DOCTYPE elemento0 [ <!ELEMENT elemento0 ANY> ]> □ XSD DTD externos – Con prólogo donde se indica la codificación: <?xml version="1.0" encoding="utf-8"?> 14/43 • Basados en URI <!DOCTYPE elemento0 SYSTEM "dtd0.dtd"> • Basados en identificador – Si está almacenado no requiere descarga. – URI opcional. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> DTD mixtos <!DOCTYPE elemento1 SYSTEM "dtd0.dtd" [ <!ELEMENT extra ANY> ]> Febrero de 2011 CIFP Juan de Colonia
  • 15. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad II: diseño de DTD Diseñar un DTD para almacenar libros, permitiendo la incorporación de los bloques o simplemente capítulos que lo componen. <libro> <título>Egolatría</título> <autor>Yo mismo</autor> <autor>Conmigo mismo</autor> <bloque> <título>Yo</título> <capítulo><título>El Yo</título></capítulo> <capítulo><título>Mí</título></capítulo> <capítulo><título>Menda</título></capítulo> </bloque> <bloque> <título>Lo demás</título> <capítulo><título>La Nada</título></capítulo> <capítulo><título>El vacío</título></capítulo> </bloque> </libro> Febrero de 2011 CIFP Juan de Colonia
  • 16. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad III: codificación DTD Con el archivo DTD del ejercicio anterior. Convertirlo a codificación Windows-1252 y comprobar la necesidad de indicar la codificación en la declaración de XML en el prólogo. Probar si es compatible un documento XML en UTF-8 con un DTD en la codificación de Windows española. Febrero de 2011 CIFP Juan de Colonia
  • 17. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad V: CSS y XML Buscar información sobre cómo enlazar XML con CSS y preparar una hoja de estilos para el documento del libro. Es conveniente aplicar el formato “display: block;” a los elementos definidos para visualizarlos en líneas separadas. http://www.w3schools.com/Xml/xml_display.asp Febrero de 2011 CIFP Juan de Colonia
  • 18. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Atributos (I) □ Introducción <!ATTLIST –elemento– –nombre– –tipo– –opcionalidad– > ■ DTD □ XSD nombre + tipo + opcionalidad • Tipos: restricciones sobre los valores admisibles. • Opcionalidad: 18/43 – Atributos obligatorios/opcionales – Valores por defecto • Hay dos nombres reservados, de uso habitual. – Idioma (BCP 47) del elemento xml:lang – Preservar el espaciado xml:space – Aún requieren declaración para ser usados. <!ATTLIST ejemplo xml:lang CDATA "es-ES" xml:space (default|preserve) "preserve" > Febrero de 2011 CIFP Juan de Colonia
  • 19. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Atributos (II) □ Introducción • Tipos: restricciones sobre los valores admisibles ■ DTD – CDATA: general, texto no procesado. □ XSD ID: identificador de elementos, único. IDREF, IDREFS: referencia a un identificador existente. NMTOKEN, NMTOKENS: palabras, nombres válidos. ENTITY, ENTITIES: nombre de entidad definida antes. 19/43 Enumeración de valores permitidos: (a1|a2|b1|c2) • Opcionalidad y valores por defecto – #REQUIRED: obligatorio – #IMPLIED: opcional – Opcional con valor por defecto: "valor" – Opcional, valor por defecto y obligado: #FIXED "valor" <!ELEMENT e0 ANY > <!ATTLIST e0 id ID #REQUIRED refs IDREFS #IMPLIED a0 CDATA #IMPLIED a1 CDATA "220V" a2 CDATA #FIXED "siempre" a3 (pc|mac) #REQUIRED > Febrero de 2011 CIFP Juan de Colonia
  • 20. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Atributos (III) □ Introducción ■ DTD □ XSD <!DOCTYPE padre [ 20/43 <!ELEMENT padre (hijo+) > <!ELEMENT hijo EMPTY > <!ATTLIST hijo id ID #REQUIRED a0 CDATA #REQUIRED rel IDREF #IMPLIED > ]> <padre> <hijo id="c6" a0="eso" rel="c7"/> <hijo id="c7" a0="eso"/> </padre> Febrero de 2011 CIFP Juan de Colonia
  • 21. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad V: Diseño DTD Diseñar un modelo de documento DTD para la información de los horarios de los alumnos aplicando las posibilidades explicadas hasta el momento. Ej.: empleando identificadores únicos para los módulos. Febrero de 2011 CIFP Juan de Colonia
  • 22. XML (I): ESQUEMAS Y VOCABULARIOS. Entidades □ Introducción <!ENTITY –nombre– –definición– > ■ DTD □ XSD Constantes, valores reutilizables Varios tipos • Internas / externas 22/43 – Internas. Ej.: <!ENTITY HMundo "Hola mundo"> – Externas. Ej.: <!ENTITY ENT0 SYSTEM "algo.ent"> Ej.: <!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "xhtml-lat1.ent"> • Generales (&nombre;) / de parámetros (%nombre;) – De parámetros, para usar en el propio DTD: Ej.: <!ENTITY % comunes "id ID #IMPLIED"> Predefinidas: &lt; – &gt; – &amp; – &apos; – &quot; Febrero de 2011 CIFP Juan de Colonia
  • 23. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos DTD: Entidades □ Introducción <?xml version="1.0" encoding="utf-8"?> ■ DTD <!ENTITY % contenido "(#PCDATA|p)*"> □ XSD <!ELEMENT html (head,body)> <!ELEMENT head (title)> <!ELEMENT body %contenido;> <!ELEMENT title (#PCDATA)> <!ELEMENT p %contenido;> 23/43 <?xml version="1.0" encoding="utf-8"?> <!ENTITY % ENT0 SYSTEM "htmltrucado.ent"> %ENT0; <!ELEMENT html (head,body)> <!ELEMENT head (title)> <!ELEMENT body %contenido;> <!ELEMENT title (#PCDATA)> <!ELEMENT p %contenido;> <?xml version="1.0" encoding="utf-8"?> <!ENTITY % contenido "(#PCDATA|p)*"> <!ENTITY firma "<p>DHMA2011</p>"> Febrero de 2011 CIFP Juan de Colonia
  • 24. XML (I): ESQUEMAS Y VOCABULARIOS. Espacios de nombres □ Introducción XML Namespaces – xmlns □ DTD ■ XSD • Espacios de nombres. • Permiten la coexistencia de escenarios – Combinación de elementos en el mismo archivo. – Definiciones separadas 24/43 • Se identifican mediante un nombre, un URI – ATENCIÓN: no es una dirección web, sólo un nombre. – Puede no estar disponible si tratamos de acceder a él. Atributo xmlns. Heredado por los elementos hijo. • Espacio de nombres por defecto <html xmlns="http://www.w3.org/1999/xhtml"> • Espacios alternativos, identificados con prefijo <padre xmlns:svg="http://www.w3.org/2000/svg"> … <svg:ellipse cx="2cm" cy="4cm" rx="2cm" ry="1cm" /> Febrero de 2011 CIFP Juan de Colonia
  • 25. XML (I): ESQUEMAS Y VOCABULARIOS. Usando espacios de nombres ● En un mismo documento XML pueden coexistir varios vocabularios/gramáticas que llamamos «espacios de nombres» . ● Cada espacio de nombres se identifica mediante un nombre único, con formato URI, que generalmente no devuelve ninguna página. ● Se selecciona con el atributo «xmlns» y afecta a todos los nodos hijo. ● Se le puede asignar un prefijo para identificar solo a algunos elementos <padre xmlns:prefijo="…"> <prefijo:nombre> … </prefijo:nombre> Febrero de 2011 CIFP Juan de Colonia
  • 26. XML (I): ESQUEMAS Y VOCABULARIOS. Esquemas XML (I) □ Introducción XML Schema Definition Language (XSD) □ DTD ■ XSD – Confusión con el nombre genérico: Esquema XML • Modelo estructural del documento – Nombre adoptado de las bases de datos – Conjunto de restricciones de estructura y contenido verificables por medios automáticos. • Mejoras sobre DTD 26/43 – Formato XML  los esquemas son validables por separado – Mejoras en tipaje: aplicable también al contenido – Mejoras en tipaje: más tipos y permite ampliarlos  + permite una validación más estricta + mejora la comunicación entre aplicaciones, rigor en datos – Soporte para espacios de nombres  reutilización – Muy completo ≠ sencillo ... the syntax of XML Schema was obviously produced by someone who grew up at the ... the syntax of XML Schema was obviously produced by someone who grew up at the bottom of a deep well in the middle of a dark, wasteful moor where he was tortured daily by bottom of a deep well in the middle of a dark, wasteful moor where he was tortured daily by abusive giant squirrels and wishes to share his pain with the world. abusive giant squirrels and wishes to share his pain with the world. Robin Berjon (co-author SVG 1.1 spec) Robin Berjon (co-author SVG 1.1 spec) Febrero de 2011 CIFP Juan de Colonia
  • 27. XML (I): ESQUEMAS Y VOCABULARIOS. Esquemas XML (II) □ Introducción Objetos: Tipos predefinidos: □ DTD ■ XSD element – string attribute – decimal simpleType – float complexType – date group –… 27/43 attributeGroup Compositores sequence choice all Febrero de 2011 CIFP Juan de Colonia
  • 28. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos XSD: Elementos □ Introducción <xs:element name="título" type="xs:string"/> □ DTD <xs:element name="autor" type="xs:string"/> ■ XSD <xs:element name="capítulo"> <xs:complexType> <xs:sequence> 28/43 <xs:element ref="título"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bloque"> <xs:complexType> <xs:sequence> <xs:element ref="título"/> <xs:element ref="capítulo" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> Febrero de 2011 CIFP Juan de Colonia
  • 29. XML (I): ESQUEMAS Y VOCABULARIOS. El esquema XSD □ Introducción • Elemento raíz del esquema: schema XSD □ DTD <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ■ XSD targetNamespace="http://www.mio.es/xsd1" xmlns="http://www.mio.es/xsd1"> Vocabulario ... XML Schema </schema> Vocabulario definido 29/43 • Espacio de nombres del propio XML Schema. – Nombres con prefijo – Elementos de XML Schema para construir las definiciones. • Espacio de nombres objeto de la definición. – Nombres sin prefijo – Permite referencias entre elementos propios de forma clara. Vocabulario XML <raíz xmlns="http://www.mio.es/xsd1" a usar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mio.es/xsd1 xsdlibros.xsd"> ... </raíz> Localización del vocabulario Febrero de 2011 CIFP Juan de Colonia
  • 30. XML (I): ESQUEMAS Y VOCABULARIOS. xs – xsi □ Introducción Usamos dos especificaciones estándar. □ DTD ■ XSD – XML Schema: dos espacios de nombres implicados. – Prefijos estándar, ampliamente utilizados pero cambiables. • Schema Namespace – Nombre: http://www.w3.org/2001/XMLSchema 30/43 – En el archivo XSD que contiene las definiciones. – Habitualmente usa los prefijos xs: o xsd: – Elementos XML Schema para construir las definiciones. • Schema Instance Namespace – Nombre: http://www.w3.org/2001/XMLSchema-instance – En el archivo que contiene el documento XML con datos. – Habitualmente usa el prefijo xsi: – Localización de archivos XSD. – Opcional y muy reducido. Solo schemaLocation y noNamespaceSchemaLocation Febrero de 2011 CIFP Juan de Colonia
  • 31. XML (I): ESQUEMAS Y VOCABULARIOS. Elementos XSD □ Introducción • Elementos globales □ DTD – Hijos directos de <schema … > ■ XSD – Definidos con <element … > – Incorporación directa y obligatoria al espacio. – Atributo name para darle nombre y type para el tipo. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … > 31/43 <xs:element name="título" type="xs:string"/> <xs:element name="libro" type="grupo"/> ... – Se pueden reutilizar/referenciar posteriormente <xs:complexType name="grupo"> <xs:sequence> <xs:element ref="título"/> </xs:sequence> </xs:complexType> </xs:schema> – Tipos complejos: definición en elemento o separada. – Repeticiones: minOccurs="1" maxOccurs="unbounded" Febrero de 2011 CIFP Juan de Colonia
  • 32. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos XSD: Elementos (II) □ Introducción <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" □ DTD targetNamespace="http://www.mio.es/xsd2" xmlns="http://www.mio.es/xsd2"> <xs:element name="título" type="xs:string"/> ■ XSD <xs:element name="autor" type="xs:string"/> <xs:element name="capítulo"> <xs:complexType> <xs:sequence> <xs:element ref="título"/> </xs:sequence> </xs:complexType> </xs:element> 32/43 <xs:element name="bloque"> <xs:complexType> <xs:sequence> <xs:element ref="título"/> <xs:element ref="capítulo" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="libro"> <xs:complexType> <xs:sequence> <xs:element ref="título"/> <xs:element ref="autor" minOccurs="1" maxOccurs="unbounded"/> <xs:choice> <xs:element ref="bloque" minOccurs="1" maxOccurs="unbounded"/> <xs:element ref="capítulo" minOccurs="1" maxOccurs="unbounded"/> </xs:choice> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Febrero de 2011 CIFP Juan de Colonia
  • 33. XML (I): ESQUEMAS Y VOCABULARIOS. Atributos XSD □ Introducción • Atributos globales □ DTD – Hijos directos de <schema … > ■ XSD – Definidos con <attribute … > – Atributo name para darle nombre y type para el tipo. – use="required" o use="optional" con default="…" 33/43 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … > <xs:attribute name="cód" type="xs:decimal"/> ... – Se pueden referenciar posteriormente – Van al final (tras sequence/choice/all) <xs:complexType name="codificado"> ... <xs:attribute ref="cód" use="required"/> </xs:complexType> </xs:schema> Febrero de 2011 CIFP Juan de Colonia
  • 34. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad VI: Tipos simples Buscar en las referencias los tipos de datos simples predefinidos y ponerlos a prueba. W3Schools Dankert, E. XML Schema Tutorial Febrero de 2011 CIFP Juan de Colonia
  • 35. XML (I): ESQUEMAS Y VOCABULARIOS. simpleType vs. complexType □ Introducción • Tenemos tipos predefinidos que podemos adaptar □ DTD – restriction / extension ■ XSD – Sobre el tipo indicado con base="…" – También se pueden aplicar a los nuevos tipos creados. – Definiciones globales con nombre, reutilizables. – Definiciones locales sin nombre, en elementos y atributos. 35/43 • simpleType – Aplicables a texto: válido para contenido o atributos • complexType – Cuando hay atributos, elementos hijo o contenido mixto. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … > <xs:simpleType name="díasemana"> <xs:restriction base="xsd:string"> <xs:enumeration value="miércoles"/> <xs:enumeration value="viernes"/> </xs:restriction> </xs:simpleType> <xs:element name="jornada" type="díasemana"/> </schema> Febrero de 2011 CIFP Juan de Colonia
  • 36. XML (I): ESQUEMAS Y VOCABULARIOS. Ejemplos XSD: Tipos □ Introducción <?xml version="1.0" encoding="utf-8"?> □ DTD <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ■ XSD targetNamespace="http://www.mio.es/xsd3" xmlns="http://www.mio.es/xsd3"> <xs:simpleType name="díasemana"> <xs:restriction base="xs:string"> <xs:enumeration value="miércoles"/> 36/43 <xs:enumeration value="viernes"/> </xs:restriction> </xs:simpleType> <xs:element name="jornada" type="díasemana"/> <xs:element name="clase"> <xs:complexType> <xs:sequence> <xs:element ref="jornada" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Febrero de 2011 CIFP Juan de Colonia
  • 37. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad VII: esquemas Reconstruir el ejemplo anterior para que <jornada> sea un elemento vacío con dos atributos día1 y día2 donde indiquemos el día de la semana. Rehacer alguno de los ejercicios de diseño de DTD realizados empleando ahora esquemas XML Schema. Febrero de 2011 CIFP Juan de Colonia
  • 38. XML (I): ESQUEMAS Y VOCABULARIOS. Definiciones globales y locales □ Introducción • Globales: definiciones en primer nivel, en schema. □ DTD – Nombre obligatorio name="…", también para tipos. ■ XSD – Reutilizables usando ref="…" o type="…" • Locales: definiciones dentro de otras definiciones – Permite omitir nombres si no es elemento ni atributo. 38/43 • Se pueden construir esquemas alternativos con unas y otras. • Calificación: prefijos obligatorios o no. – Por defecto los elementos y atributos locales no requieren calificación por prefijo, se identifican por el contexto. – Incompatible con espacio de nombres por defecto. – Se puede forzar el uso del prefijo elementFormDefault="qualified" attributeFormDefault="qualified" Febrero de 2011 CIFP Juan de Colonia
  • 39. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad VIII: otros modelos Existen otros lenguajes para especificar las características de documentos XML. Relax NG es uno de los más citados con una sintaxis más sencilla que XML Schema. Buscar información sobre él y construir y validar ejemplos. Febrero de 2011 CIFP Juan de Colonia
  • 40. XML (I): ESQUEMAS Y VOCABULARIOS. Actividad IX: SVG y MathML Familiarizarse con los lenguajes SVG y MathML. Aprovechar la actividad para revisar conceptos básicos sobre formatos de imágenes y resoluciones e introducir el uso de la aplicación de diseño gráfico Inkscape, pero sin perder nunca de vista la parte técnica analizando el código XML/SVG/CSS. Febrero de 2011 CIFP Juan de Colonia
  • 41. XML (I): ESQUEMAS Y VOCABULARIOS. Referencias W3C Recommendation (2008, W3C) XExtensible Markup Language http://www.w3.org/TR/xml/ W3Schools (WWW) DTD Tutorial http://www.w3schools.com/DTD/ W3Schools (WWW) XML Schema Tutorial http://www.w3schools.com/Schema/ Boulanger, T. y Lecomte, S. (2009, ENI). XML práctico: bases esenciales, conceptos y casos prácticos. ISBN: 978-2-7460-4958-1. Dankert, E. (2005, edankert...) XML Grammars. http://www.edankert.com/grammars/ Webucator (2009) XML Schema Tutorial. http://www.learn-xml-schema-tutorial.com/ Wilde, E. (2010, UC Berkeley) XML Foundations –INFO 242 (CCN 42593)– . http://dret.net/lectures/xml-fall10/ Bibliografía actualizada en delicious: http://www.delicious.com/dhmartin/LM-ASIR Febrero de 2011 CIFP Juan de Colonia
  • 42. XML (I): ESQUEMAS Y VOCABULARIOS. Licencia Este material está disponible bajo una Licencia Creative Commons, http://creativecommons.org/licenses/by-nc-sa/3.0/es/ Febrero de 2011 CIFP Juan de Colonia
  • 43. XML (I): ESQUEMAS Y VOCABULARIOS. ¿Dudas o cuestiones? Febrero de 2011 CIFP Juan de Colonia