tutoriais mais recente desenvolvimento web
 

XSD - A <schema> Element


O <schema> elemento é o elemento raiz de cada Schema XML.


O <schema> Elemento

O <schema> elemento é o elemento raiz de cada esquema XML:

<?xml version="1.0"?>

<xs:schema>
...
...
</xs:schema>

O <schema> elemento pode conter alguns atributos. A declaração de esquema muitas vezes é algo como isto:

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3ii.com"
xmlns="http://www.w3ii.com"
elementFormDefault="qualified">
...
...
</xs:schema>

O seguinte fragmento:

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

indica que os elementos e tipos de dados usados no esquema vêm do "http://www.w3.org/2001/XMLSchema" namespace. Ele também especifica que os elementos e tipos de dados que vêm do "http://www.w3.org/2001/XMLSchema" namespace devem ser prefixados com xs:

Este fragmento:

targetNamespace="http://www.w3ii.com"

indica que os elementos definidos por esse esquema (note, to, from, heading, body.) vêm do "http://www.w3ii.com" namespace.

Este fragmento:

xmlns="http://www.w3ii.com"

indica que o namespace padrão é "http://www.w3ii.com" .

Este fragmento:

elementFormDefault="qualified"

indica que todos os elementos utilizados pelo documento de instância XML que foram declaradas neste esquema deve ser namespace qualificado.


Fazendo referência a um esquema em um documento XML

Este documento XML tem uma referência a um esquema XML:

<?xml version="1.0"?>

<note xmlns="http://www.w3ii.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3ii.com note.xsd">

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

O seguinte fragmento:

xmlns="http://www.w3ii.com"

especifica a declaração de namespace padrão. Esta declaração diz ao esquema validador que todos os elementos usados neste documento XML são declarados no "http://www.w3ii.com" namespace.

Depois de ter o namespace XML Schema Instância disponíveis:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

você pode usar o schemaLocation atributo. Este atributo tem dois valores, separados por um espaço. O primeiro valor é o espaço de nomes de usar. O segundo valor é a localização do esquema XML para usar para esse namespace:

xsi:schemaLocation="http://www.w3ii.com note.xsd"