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"/>
Advertisements