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.
Você precisa de declarar como segue um esquema em seu original de XML:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
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.
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"/>
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.
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"/>