
- XML - Home
- XML - Información General
- XML - Sintaxis
- XML - Documentos
- XML - Declaración
- XML - Las Etiquetas
- XML - Elementos
- XML - Los Atributos
- XML - Comentarios
- XML - Entidades de Caracteres
- XML - CDATA Las Secciones
- XML - Espacios en Blanco
- XML - Procesamiento
- XML - Codificación
- XML - Validación
- Herramientas XML
- XML - Los Espectadores
- XML - Editores
- XML - Analizadores
- XML - Procesadores
XML - Esquemas
Esquema XML es comnmente conocido como definicin de esquemas XML (XSD). Se utiliza para describir y validar la estructura y el contenido de los datos XML. Esquema XML define los elementos, atributos y tipos de datos. Elemento de esquema admite espacios. Es similar a un esquema de la base de datos que describe los datos de una base de datos.
Sintaxis
Usted necesidad de declarar un esquema en el documento XML de la siguiente manera:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
Ejemplo
El siguiente ejemplo muestra cmo utilizar esquema:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="contact"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="company" type="xs:string" /> <xs:element name="phone" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
La idea bsica detrs de esquemas XML es que describe a la legtima formato que un documento XML puede tener.
Elementos
Como hemos visto en el XML - Elements el captulo, los elementos son los bloques de creacin de documentos XML. Un elemento se puede definir dentro de un XSD de la siguiente manera:
<xs:element name="x" type="y"/>
Definicin Tipos
Puede definir elementos de esquema XML de las siguientes maneras:
Tipo Simple - tipo Simple elemento se utiliza slo en el contexto del texto. Algunos de tipos simples predefinidos son: xs:integer, xs:boolean, xs:string, xs:date. Por ejemplo:
<xs:element name="phone_number" type="xs:int" />
Tipo complejo - un tipo complejo es un contenedor para otras definiciones de elementos. Esto le permite especificar qu elementos secundarios un elemento puede contener y de proporcionar una estructura de los documentos XML. Por ejemplo:
<xs:element name="Address"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="company" type="xs:string" /> <xs:element name="phone" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element>
En el ejemplo anterior, la Direccin elemento consiste de elementos secundarios. Este es un contenedor de otros <xs:element> definiciones, que permite construir una simple jerarqua de elementos del documento XML.
Tipos Mundial - Con tipo global, puede definir un tipo nico en el documento, que puede ser usado por todas las otras referencias. Por ejemplo, supongamos que desea generalizar la persona y empresa para diferentes direcciones de la empresa. En tal caso, se puede definir un tipo general, como se indica a continuacin:
<xs:element name="AddressType"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="company" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element>
Ahora vamos a utilizar este tipo de nuestro ejemplo de la siguiente manera:
<xs:element name="Address1"> <xs:complexType> <xs:sequence> <xs:element name="address" type="AddressType" /> <xs:element name="phone1" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Address2"> <xs:complexType> <xs:sequence> <xs:element name="address" type="AddressType" /> <xs:element name="phone2" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element>
En vez de tener que definir el nombre y la empresa dos veces (una vez para la Direccin1 y una vez que la direccin2), ahora tenemos una definicin nica. Esto hace que el mantenimiento sea ms sencillo, es decir, si decide agregar el "Cdigo postal" los elementos de la direccin, es necesario agregar en un solo lugar.
Atributos
En XSD atributos proporcionan informacin adicional dentro de un elemento. Los Atributos nombre y tipo propiedad como se muestra a continuacin:
<xs:attribute name="x" type="y"/>