XML - Esquemas


Advertisements

O esquema de XML é sabido geralmente como XML Schema Definition (XSD). É usado para descrever e validar a estrutura e o índice de dados de XML. O esquema de XML define os elementos, os atributos e os tipos de dados. O elemento do esquema apoia Namespaces. É similar a um esquema do base de dados que descreva os dados em um base de dados.

Sintaxe

Você precisa de declarar como segue um esquema em seu original de XML:


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

Example

The following example shows how to use schema:

<?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>

A ideia básica atrás dos esquemas de XML é que descrevem o formato legítimo que um original de XML pode tomar.

Elementos

Como nós vimos no XML - Elementos o capítulo, elementos é os blocos de apartamentos de original de XML. Um elemento pode ser definido dentro de um XSD como segue:

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

Tipos da definição

Você pode definir elementos do esquema de XML em seguintes maneiras:

Tipo simples - O tipo elemento simples é usado somente no contexto do texto. Alguns de tipos simples predefinidos são: xs:inteiro, xs:booleano, xs:string, xs:data. Por exemplo:

<xs:element name="phone_number" type="xs:int" />

Tipo complexo - Um tipo complexo é um recipiente para outras definições do elemento. Isto permite que você especifique que criança os elementos um elemento podem conter e fornecer alguma estrutura dentro de seus originais de XML. Por exemplo:

<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> 

No exemplo acima, Endereço o elemento consiste em elementos da criança. Este é um recipiente para o outro < xs: element> as definições, de que reservam construir uma hierarquia simples dos elementos no original de XML.

Tipos globais - Com tipo global, você pode definir um único datilografa dentro seu original, que pode ser usado por todas referências restantes. Por exemplo, supõe que você quer generalizar pessoa e Empresa para endereços diferentes da empresa. Em tal caso, você pode definir um tipo geral como abaixo:

<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> 

Deixe-nos agora usar o este datilografam dentro nosso exemplo como abaixo:

<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> 

Em vez de ter que definir duas vezes o nome e a empresa (uma vez para Endereço1 e uma vez para Endereço2), nós temos agora uma única definição. Isto faz a manutenção mais simples, isto é, se você decide adicionar elementos do “código postal” ao endereço, você precisa de adicioná-los em apenas um lugar.

Atributos

Os atributos em XSD fornecem a informação extra dentro de um elemento. Os atributos têm nome e tipo propriedade como mostrado abaixo:

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