XML - Esquemas



Esquema XML es comúnmente conocido como definición 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 cómo 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 básica detrás de esquemas XML es que describe a la legítima formato que un documento XML puede tener.

Elementos

Como hemos visto en el XML - Elements el capítulo, los elementos son los bloques de creación de documentos XML. Un elemento se puede definir dentro de un XSD de la siguiente manera:

<xs:element name="x" type="y"/>

Definición Tipos

Puede definir elementos de esquema XML de las siguientes maneras:

Tipo Simple - tipo Simple elemento se utiliza sólo 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 Dirección elemento consiste de elementos secundarios. Este es un contenedor de otros <xs:element> definiciones, que permite construir una simple jerarquía 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 continuación:

<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 Dirección1 y una vez que la dirección2), ahora tenemos una definición única. Esto hace que el mantenimiento sea más sencillo, es decir, si decide agregar el "Código postal" los elementos de la dirección, es necesario agregar en un solo lugar.

Atributos

En XSD atributos proporcionan información adicional dentro de un elemento. Los Atributos nombre y tipo propiedad como se muestra a continuación:

<xs:attribute name="x" type="y"/>
Advertisements