Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/xml schema»

De WikiEducator
Saltar a: navegación, buscar
m (Un ejemplo)
Línea 73: Línea 73:
 
Documento con la referencia al esquema:
 
Documento con la referencia al esquema:
 
<source lang="xml">
 
<source lang="xml">
?xml version="1.0"?>
+
<?xml version="1.0"?>
  
 
<note
 
<note
Línea 85: Línea 85:
 
</note>
 
</note>
 
</source>
 
</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:45 19 ene 2012


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)