lm-ut5: dtd, xml schema

43
Lenguajes de Marcas y SGI 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 –

Upload: david-martin

Post on 13-Jun-2015

2.826 views

Category:

Education


5 download

DESCRIPTION

Lenguajes de Marcas y SGI (CFGS Administrador de Sistemas Informáticos en Red)

TRANSCRIPT

Page 1: LM-UT5: DTD, XML Schema

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 –

Page 2: LM-UT5: DTD, XML Schema

Febrero de 2011 CIFP Juan de Colonia

XML (I): ESQUEMAS Y VOCABULARIOS.

ContenidosContenidos

Introducción

DTD

Espacios de nombres

XML Schemas

Page 3: LM-UT5: DTD, XML Schema

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.

Page 4: LM-UT5: DTD, XML Schema

Febrero de 2011 CIFP Juan de Colonia

XML (I): ESQUEMAS Y VOCABULARIOS.

XML por dentro...XML por dentro...

● Elementos● Atributos● Entidades● Texto de contenido

Page 5: LM-UT5: DTD, XML Schema

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

Page 6: LM-UT5: DTD, XML Schema

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

Page 7: LM-UT5: DTD, XML Schema

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

Page 8: LM-UT5: DTD, XML Schema

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

Page 9: LM-UT5: DTD, XML Schema

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

Page 10: LM-UT5: DTD, XML Schema

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

Page 11: LM-UT5: DTD, XML Schema

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

Page 12: LM-UT5: DTD, XML Schema

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

Page 13: LM-UT5: DTD, XML Schema

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

Page 14: LM-UT5: DTD, XML Schema

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

Page 15: LM-UT5: DTD, XML Schema

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>

Page 16: LM-UT5: DTD, XML Schema

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

Page 17: LM-UT5: DTD, XML Schema

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

Page 18: LM-UT5: DTD, XML Schema

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

Page 19: LM-UT5: DTD, XML Schema

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

Page 20: LM-UT5: DTD, XML Schema

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

Page 21: LM-UT5: DTD, XML Schema

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

Page 22: LM-UT5: DTD, XML Schema

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:

&lt; – &gt; – &amp; – &apos; – &quot;

□Introducción■DTD□XSD

Page 23: LM-UT5: DTD, XML Schema

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>">

Page 24: LM-UT5: DTD, XML Schema

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

Page 25: LM-UT5: DTD, XML Schema

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>

Page 26: LM-UT5: DTD, XML Schema

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)

Page 27: LM-UT5: DTD, XML Schema

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– …

Page 28: LM-UT5: DTD, XML Schema

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

Page 29: LM-UT5: DTD, XML Schema

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

Page 30: LM-UT5: DTD, XML Schema

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

Page 31: LM-UT5: DTD, XML Schema

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>

Page 32: LM-UT5: DTD, XML 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

Page 33: LM-UT5: DTD, XML Schema

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>

Page 34: LM-UT5: DTD, XML 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

Page 35: LM-UT5: DTD, XML Schema

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>

Page 36: LM-UT5: DTD, XML 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

Page 37: LM-UT5: DTD, XML Schema

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

Page 38: LM-UT5: DTD, XML Schema

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

Page 39: LM-UT5: DTD, XML Schema

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

Page 40: LM-UT5: DTD, XML Schema

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

Page 41: LM-UT5: DTD, XML Schema

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

Page 42: LM-UT5: DTD, XML Schema

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/

Page 43: LM-UT5: DTD, XML Schema

Febrero de 2011 CIFP Juan de Colonia

XML (I): ESQUEMAS Y VOCABULARIOS.

¿Dudas o cuestiones?¿Dudas o cuestiones?