XSD - Elemento <schema>

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

O elemento <schema>

O elemento <schema> é a raiz de cada Schema XML:

<?xml version="1.0"?>
<xs:schema>
...
...
</xs:schema>

<schema> O elemento schema pode conter atributos. Uma declaração schema geralmente parece assim:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.com"
elementFormDefault="qualified">
...
...
</xs:schema>

Explicação do código:

A seguir, o fragmento:

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

Mostra que os elementos e tipos de dados usados no schema vêm do espaço de nomes "http://www.w3.org/2001/XMLSchema". Além disso, ele especifica que os elementos e tipos de dados provenientes do espaço de nomes "http://www.w3.org/2001/XMLSchema" devem usar o prefixo xs:

Este fragmento:

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

Mostra que os elementos definidos por este schema (note, to, from, heading, body) vêm do espaço de nomes: "http://www.codew3c.com".

Este fragmento:

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

Aponta que o espaço de nomes padrão é "http://www.codew3c.com".

Este fragmento:

elementFormDefault="qualified"

Aponta que todos os elementos usados em qualquer documento de instância XML e declarados neste schema devem ser limitados por espaço de nomes.

Referência ao Schema no documento XML

Este documento XML contém referências ao XML Schema:

<?xml version="1.0"?>
<note xmlns="http://www.codew3c.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.codew3c.com note.xsd"
<to>George</to>
<from>John</from>
<heading>Recordatório</heading>
<body>¡Não se esqueça da reunião!</body>
</note>

Explicação do código:

A seguir, o fragmento:

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

Esta declaração especifica o espaço de nomes padrão. Esta declaração informará o validador de schema que todos os elementos usados neste documento XML estão declarados no espaço de nomes "http://www.codew3c.com".

Assim que você tiver o namespace da instância do XML Schema disponível:

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

Você pode usar a propriedade schemaLocation. Esta propriedade tem dois valores. O primeiro valor é o namespace a ser usado. O segundo valor é a localização do XML schema para o namespace:

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