lm-ut5: dtd, xml schema
DESCRIPTION
Lenguajes de Marcas y SGI (CFGS Administrador de Sistemas Informáticos en Red)TRANSCRIPT
Lenguajes de Marcas y SGILenguajes de Marcas y SGI
UT 5: XML (I).Definición de esquemas y vocabularios.
CFGS «Administración de SistemasInformáticos en Red»
CIFP Juan de Colonia (Burgos)
David H. Martín Alonso
– Curso 2010/2011 –
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
ContenidosContenidos
Introducción
DTD
Espacios de nombres
XML Schemas
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
XML por fuera...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...XML por dentro...
● Elementos● Atributos● Entidades● Texto de contenido
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
5/43
¿metalenguaje?¿metalenguaje?XML es solo un metalenguaje.
• Formato general, básico, común, obligatorio.• Base para lenguajes con usos reales, concretos.
Diversos modelos para desarrollar cada lenguaje– Gramáticas, vocabularios, etc.
• Document Type Definition (DTD).• Esquemas (XMLSchema).• Espacios de nombres.
Necesidad de corrección a los dos niveles:• Documentos bien formados.• Documentos válidos.
■ Introducción□DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
6/43
xmllintxmllintUtilidad de texto para «sanear» archivos XML.
– Incluido en la biblioteca «libxml» .• Dar formato.• Verificar.• Validar frente a lenguajes.
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.
$> 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…
■ Introducción□DTD□XSD
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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.
Actividad I: xmllintActividad I: xmllint
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
8/43
DTDDTDDocument Type Definition
• Modelo estructural del documento– Elementos– Atributos– Descendientes, jerarquía– Contenido
• 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
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
9/43
Ejemplos DTD: DOCTYPEEjemplos DTD: DOCTYPE
<?xml version="1.0" encoding="utf-8" standalone="yes"?><!DOCTYPE huérfano [
<!ELEMENT huérfano EMPTY>]><huérfano />
<!DOCTYPE –nombre– [ –declaraciones– ]>
• 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
separado.
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
10/43
Ejemplos DTD: Elementos (I)Ejemplos DTD: Elementos (I)<!ELEMENT –nombre– –contenido– >
• Todos los elementos permitidos deben tener descripción.
• Cada elemento debe indicar nombre y contenido.• Contenidos especiales:
– 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>
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
11/43
Ejemplos DTD: Elementos (II)Ejemplos DTD: Elementos (II)
<?xml version="1.0" encoding="utf-8" standalone="yes"?><!DOCTYPE huérfano [
<!ELEMENT huérfano (a, b)><!ELEMENT a ANY><!ELEMENT b ANY>
]><huérfano><a/><b/></huérfano>
• Los descendientes van entre paréntesis.• El operador coma « , » separa los descendientes
exigidos y en orden.
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
12/43
Ejemplos DTD: Elementos (III)Ejemplos DTD: Elementos (III)
<!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>
– El operador « | » separa descendientes alternativos.– Los paréntesis « () » permiten crear subgrupos.– 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.
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
13/43
Ejemplos DTD: Elementos (IV)Ejemplos DTD: Elementos (IV)
<!ELEMENT table(caption?, (col*|colgroup*), thead?, tfoot?,(tbody+|tr+))>
<!ELEMENT caption %Inline;><!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;>
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
14/43
<!DOCTYPE ...><!DOCTYPE ...>DTD internos
<!DOCTYPE elemento0 [ <!ELEMENT elemento0 ANY> ]>DTD externos
– Con prólogo donde se indica la codificación:<?xml version="1.0" encoding="utf-8"?>
• 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>]>
□Introducción■DTD□XSD
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
Diseñar un DTD para almacenar libros, permitiendo la
incorporación de los bloques o simplemente
capítulos que lo componen.
Actividad II: diseño de DTDActividad II: diseño de DTD
<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>
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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.
Actividad III: codificación DTDActividad III: codificación DTD
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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
Actividad V: CSS y XMLActividad V: CSS y XML
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
18/43
Ejemplos DTD: Atributos (I)Ejemplos DTD: Atributos (I)<!ATTLIST –elemento– –nombre– –tipo– –opcionalidad– >
nombre + tipo + opcionalidad• Tipos: restricciones sobre los valores admisibles.• Opcionalidad:
– 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" >
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
19/43
Ejemplos DTD: Atributos (II)Ejemplos DTD: Atributos (II)
<!ELEMENT e0 ANY ><!ATTLIST e0
id ID #REQUIREDrefs IDREFS #IMPLIEDa0 CDATA #IMPLIEDa1 CDATA "220V"a2 CDATA #FIXED "siempre"a3 (pc|mac) #REQUIRED >
• Tipos: restricciones sobre los valores admisibles– CDATA: general, texto no procesado.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.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"
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
20/43
Ejemplos DTD: Atributos (III)Ejemplos DTD: Atributos (III)
<!DOCTYPE padre [<!ELEMENT padre (hijo+) ><!ELEMENT hijo EMPTY ><!ATTLIST hijo
id ID #REQUIREDa0 CDATA #REQUIREDrel IDREF #IMPLIED
>]><padre><hijo id="c6" a0="eso" rel="c7"/><hijo id="c7" a0="eso"/></padre>
□Introducción■DTD□XSD
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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.
Actividad V: Diseño DTDActividad V: Diseño DTD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
22/43
EntidadesEntidades<!ENTITY –nombre– –definición– >
Constantes, valores reutilizablesVarios tipos
• Internas / externas– 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:
< – > – & – ' – "
□Introducción■DTD□XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
23/43
Ejemplos DTD: EntidadesEjemplos DTD: Entidades<?xml version="1.0" encoding="utf-8"?><!ENTITY % contenido "(#PCDATA|p)*"><!ELEMENT html (head,body)><!ELEMENT head (title)><!ELEMENT body %contenido;><!ELEMENT title (#PCDATA)><!ELEMENT p %contenido;>
□Introducción■DTD□XSD
<?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.
24/43
Espacios de nombresEspacios de nombresXML Namespaces – xmlns
• Espacios de nombres.• Permiten la coexistencia de escenarios
– Combinación de elementos en el mismo archivo.– Definiciones separadas
• 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" />
□Introducción□DTD■XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
Usando espacios de nombresUsando 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.
26/43
Esquemas XML (I)Esquemas XML (I)XML Schema Definition Language (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
– 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
□Introducción□DTD■XSD
... 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 abusive giant squirrels and wishes to share his pain with the world.
Robin Berjon (co-author SVG 1.1 spec)
... 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 abusive giant squirrels and wishes to share his pain with the world.
Robin Berjon (co-author SVG 1.1 spec)
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
27/43
Esquemas XML (II)Esquemas XML (II)Objetos:
elementattributesimpleTypecomplexTypegroupattributeGroup
Compositoressequencechoiceall
□Introducción□DTD■XSD
Tipos predefinidos:– string– decimal– float– date– …
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
28/43
Ejemplos XSD: ElementosEjemplos XSD: Elementos<xs:element name="título" type="xs:string"/><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>
<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>
□Introducción□DTD■XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
29/43
El esquema XSDEl esquema XSD□Introducción□DTD■XSD
• Elemento raíz del esquema: schema
• 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.
<raíz xmlns="http://www.mio.es/xsd1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mio.es/xsd1 xsdlibros.xsd"> ...
</raíz>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.mio.es/xsd1"xmlns="http://www.mio.es/xsd1">
...</schema>
VocabularioXML Schema
Vocabulariodefinido
Vocabularioa usar
Localizacióndel vocabulario
XML
XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
30/43
xs – xsixs – xsi□Introducción□DTD■XSD
Usamos dos especificaciones estándar.– XML Schema: dos espacios de nombres implicados.– Prefijos estándar, ampliamente utilizados pero cambiables.
• Schema Namespace– Nombre: http://www.w3.org/2001/XMLSchema– 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.
31/43
Elementos XSDElementos XSD□Introducción□DTD■XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … ><xs:element name="título" type="xs:string"/><xs:element name="libro" type="grupo"/>...
• Elementos globales– Hijos directos de <schema … >– Definidos con <element … >– Incorporación directa y obligatoria al espacio.– Atributo name para darle nombre y type para el tipo.
– Se pueden reutilizar/referenciar posteriormente
– Tipos complejos: definición en elemento o separada.– Repeticiones: minOccurs="1" maxOccurs="unbounded"
<xs:complexType name="grupo"> <xs:sequence> <xs:element ref="título"/> </xs:sequence>
</xs:complexType></xs:schema>
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
32/43
Ejemplos XSD: Elementos (II)Ejemplos XSD: Elementos (II)<?xml version="1.0" encoding="utf-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mio.es/xsd2" xmlns="http://www.mio.es/xsd2"><xs:element name="título" type="xs:string"/><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><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>
□Introducción□DTD■XSD
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
33/43
Atributos XSDAtributos XSD□Introducción□DTD■XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" … ><xs:attribute name="cód" type="xs:decimal"/>...
• Atributos globales– Hijos directos de <schema … >– Definidos con <attribute … >– Atributo name para darle nombre y type para el tipo.– use="required" o use="optional"
con default="…"
– 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>
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
Buscar en las referencias los tipos de datos simples
predefinidos y ponerlos a prueba.
W3Schools
Dankert, E.
XML Schema Tutorial
Actividad VI: Tipos simplesActividad VI: Tipos simples
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
35/43
simpleType vs. complexTypesimpleType vs. complexType□Introducción□DTD■XSD
• Tenemos tipos predefinidos que podemos adaptar– restriction / extension– 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.
• 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.
36/43
Ejemplos XSD: TiposEjemplos XSD: Tipos<?xml version="1.0" encoding="utf-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
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"/> <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>
□Introducción□DTD■XSD
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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.
Actividad VII: esquemasActividad VII: esquemas
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
38/43
Definiciones globales y localesDefiniciones globales y locales• Globales: definiciones en primer nivel, en schema.
– Nombre obligatorio name="…", también para tipos.– Reutilizables usando ref="…" o type="…"
• Locales: definiciones dentro de otras definiciones– Permite omitir nombres si no es elemento ni atributo.
• 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 prefijoelementFormDefault="qualified"attributeFormDefault="qualified"
□Introducción□DTD■XSD
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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.
Actividad VIII: otros modelosActividad VIII: otros modelos
XML (I): ESQUEMAS Y VOCABULARIOS.
Febrero de 2011 CIFP Juan de Colonia
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.
Actividad IX: SVG y MathMLActividad IX: SVG y MathML
Febrero de 2011 CIFP Juan de Colonia
XML (I): ESQUEMAS Y VOCABULARIOS.
ReferenciasReferencias
W3C Recommendation (2008, W3C) XExtensible Markup Languagehttp://www.w3.org/TR/xml/
W3Schools (WWW) DTD Tutorialhttp://www.w3schools.com/DTD/
W3Schools (WWW) XML Schema Tutorialhttp://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.
LicenciaLicencia
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?¿Dudas o cuestiones?