Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/xml schema»
De WikiEducator
(Página creada con '{{MiTitulo|XML Schema}} == XML Schema == XML Schema es una alternativa a DTD basada en XML. Describe la estructura de un documento XML. ===Objetivo === * Definir la estructura…') |
|||
Línea 23: | Línea 23: | ||
* El modelo de contenido de cada elemento | * El modelo de contenido de cada elemento | ||
* Los tipos de datos del contenido | * Los tipos de datos del contenido | ||
+ | |||
===Componentes de un esquema=== | ===Componentes de un esquema=== | ||
* Componentes primarios: tipos de datos, elementos y atributos | * Componentes primarios: tipos de datos, elementos y atributos | ||
Línea 28: | Línea 29: | ||
* Componentes de ayuda. Se usan en otros componentes | * Componentes de ayuda. Se usan en otros componentes | ||
+ | ===Un ejemplo=== | ||
+ | (fuente: http://www.w3schools.com/schema/schema_howto.asp) | ||
+ | <source lang="xml"> | ||
+ | <?xml version="1.0"?> | ||
+ | <note> | ||
+ | <to>Tove</to> | ||
+ | <from>Jani</from> | ||
+ | <heading>Reminder</heading> | ||
+ | <body>Don't forget me this weekend!</body> | ||
+ | </note> | ||
+ | </source> | ||
+ | |||
+ | DTD: | ||
+ | <source lang="xml"> | ||
+ | <!ELEMENT note (to, from, heading, body)> | ||
+ | <!ELEMENT to (#PCDATA)> | ||
+ | <!ELEMENT from (#PCDATA)> | ||
+ | <!ELEMENT heading (#PCDATA)> | ||
+ | <!ELEMENT body (#PCDATA)> | ||
+ | </source> | ||
+ | |||
+ | XML Schema: | ||
+ | <source lang="xml"> | ||
+ | <?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> | ||
+ | </source> | ||
+ | |||
+ | Documento con la referencia al esquema: | ||
+ | <source lang="xml"> | ||
+ | ?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> | ||
+ | </source> | ||
===Elemento schema === | ===Elemento schema === | ||
* Declaración del espacio de nombres de la recomendación del W3C | * Declaración del espacio de nombres de la recomendación del W3C |
Revisión de 10:35 19 ene 2012
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)