06-XML Schema
06-XML Schema
06-XML Schema
sergio.lujan@ua.es
http://gplsi.dlsi.ua.es/~slujan/
XML Schema
Introduccin
XML Schema Definition Language (XSDL) es un estndar del World Wide Web
Consortium (W3C) que permite describir la estructura y el contenido de un documento
XML. Se trata, por tanto, de una tecnologa similar a Document Type Definition (DTD),
pero mucho ms potente y verstil.
Ventajas
XML Schema ofrece mltiples ventajas frente a DTD:
Disponible en http://www.w3.org/TR/1998/NOTE-dcd-19980731.html.
Disponible en http://www.ltg.ed.ac.uk/~ht/XMLData-Reduced.htm.
Disponible en http://www.w3.org/TR/1998/NOTE-XML-data-0105/.
SGBDR
XML
Entidad
Tabla
Documento
Instancia de entidad
Fila
Elemento
Atributo de entidad
Columna
Atributo
Valor de elemento
Subelemento
Disponible en http://www.xmlspy.com/.
Figura 1
IdLibro=1
Titulo=XML
en
10
minutos
<Anyo>2003</Anyo>
</Libro>
<Libro>
<IdLibro>2</IdLibro>
<Titulo>Los secretos de XML al descubierto</Titulo>
<EdtNombre>El escritor</EdtNombre>
<Anyo>2003</Anyo>
</Libro>
</Libros>
Tambin se podra haber decidido agrupar todos los autores bajo un mismo
elemento, tal como se muestra en el siguiente ejemplo:
<Libros>
<Libro IdLibro=1>
XML en 10 minutos
<Autores>
<Autor>Sergio Lujn Mora</Autor>
<Autor>Jaume Aragons Ferrero</Autor>
</Autores>
<EdtNombre>Libros de bolsillo</EdtNombre>
<Anyo>2003</Anyo>
</Libro>
<Libro IdLibro=2>
Los secretos de XML al descubierto
<Autores>
<Autor>Sergio Lujn Mora</Autor>
</Autores>
<EdtNombre>El escritor</EdtNombre>
<Anyo>2003</Anyo>
</Libro>
</Libros>
</xs:sequence>
</xs:complexType>
</xs:element>
El elemento sequence define una secuencia ordenada de sub-elementos.
Otros elementos similares de XML Schema son choice que define un grupo de
elementos mutuamente excluyentes y all que define un grupo no ordenado de
elementos.
</xs:sequence>
</xs:complexType>
</xs:element>
name=TITULO
type=xs:string
minOccurs=1
type=xs:string
minOccurs=0
type=xs:string
minOccurs=0
maxOccurs=1 />
<xs:element
name=AUTOR
maxOccurs=unbounded />
<xs:element
name=ANYO
maxOccurs=1 />
<xs:element
name=EDITORIAL
type=xs:string
minOccurs=0
maxOccurs=1 />
name=AUTOR
type=xs:string
minOccurs=0
maxOccurs=unbounded />
<xs:element name=ANYO type=xs:string minOccurs=0 />
<xs:element name=EDITORIAL type=xs:string minOccurs=0 />
11
name=AUTOR
type=xs:string
minOccurs=0
maxOccurs=unbounded />
<xs:element name=ANYO type=xs:string minOccurs=0 />
<xs:element name=EDITORIAL type=xs:string minOccurs=0 />
</xs:sequence>
<xs:attribute name=COD type=xs:string />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
12
</xs:schema>
Tipos de datos
En la construccin del XML Schema anterior, se ha empleado el atributo type
para definir el contenido de los elementos que contienen texto y el tipo de los atributos.
En XML Schema existe una jerarqua de tipos de datos, tal como se muestra en la
Figura 2.
Figura 2
13
Figura 3
14
Figura 4
15
Figura 5
16
Figura 6
17
Figura 7
18
Figura 8
XML Spy posee una opcin para convertir automticamente un DTD en un XML
Schema. Por ejemplo, tomemos el siguiente DTD:
<!ELEMENT BIBLIOTECA (LIBRO+)>
<!ELEMENT LIBRO (TITULO, AUTOR*, ANYO?, EDITORIAL?)>
<!ATTLIST LIBRO
COD CDATA #REQUIRED
>
<!ELEMENT AUTOR (#PCDATA)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT EDITORIAL (#PCDATA)>
<!ELEMENT ANYO (#PCDATA)>
19
Figura 9
20
Figura 10
21
Figura 11
22
Figura 12
23