XML Schema
De WikiEducator
< Usuario:Lmorillas | modulo lenguajes de marcas | xml
Revisión a fecha de 11:35 19 ene 2012; Lmorillas (Discusión | contribuciones)
Contenido
XML Schema
XML Schema es una alternativa a DTD basada en XML. Describe la estructura de un documento XML.
Objetivo
- Definir la estructura correcta de bloques de un documento XML
- Define los elementos y atributos que pueden aparecer
- Define qué elementos son hijos, cuántos hijos y en qué orden.
- Define si un elemento puede contener texto o tiene que estar vacío.
- Define los tipos de datos de elementos y atributos.
- Define valores fijos y por defecto
A diferencia del DTD:
- es un modelo extensible y tiene más poder expresivo.
- están escritos en XML
- soporta tipos de datos y namespaces
- son una recomendación del W3C
El tipo de documento XML
La estructura de un documento XML la forman:
- Su vocabulario (elementos y atributos)
- El modelo de contenido de cada elemento
- Los tipos de datos del contenido
Componentes de un esquema
- Componentes primarios: tipos de datos, elementos y atributos
- Componentes secundarios: definiciones especiales (grupos de atributos, restricciones y anotaciones)
- Componentes de ayuda. Se usan en otros componentes
Un ejemplo
(fuente: http://www.w3schools.com/schema/schema_howto.asp)
<?xml version="1.0"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
DTD:
<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
XML Schema:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com" elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Documento con la referencia al esquema:
?xml version="1.0"?> <note <xmlns="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com note.xsd"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
Elemento schema
- Declaración del espacio de nombres de la recomendación del W3C
- Los hijos directos de schema son declaraciones y definiciones globales
- Elemento raíz.
- Sequence: los elementos tienen que aparecer en el mismo orden (especificador)
- Tipos simples (limitan el texto que se puede insertar como valor)
- Tipos complejos (pueden ser anónimos)