XSD - O elemento <schema>
O elemento <schema> é o elemento raiz de todo XML Schema.
O elemento <schema>
O elemento <schema> é o elemento raiz de todo XML Schema:
<?xml version="1.0"?>
<xs:schema>
...
...
</xs:schema>
O elemento <schema> pode conter alguns atributos. Uma declaração de esquema geralmente se parece com isso:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.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 namespace "http://www.w3.org/2001/XMLSchema". Ele também especifica que os elementos e tipos de dados provenientes do namespace "http://www.w3.org/2001/XMLSchema" devem ser prefixados com xs:
Este fragmento:
targetNamespace="https://www.w3schools.com"
indica que os elementos definidos por este esquema (nota, para, de, cabeçalho, corpo.) vêm do namespace "https://www.w3schools.com".
Este fragmento:
xmlns="https://www.w3schools.com"
indica que o namespace padrão é "https://www.w3schools.com".
Este fragmento:
elementFormDefault="qualified"
indica que quaisquer elementos usados pelo documento de instância XML que foram declarados neste esquema devem ser qualificados por namespace.
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="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.w3schools.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="https://www.w3schools.com"
especifica a declaração de namespace padrão. Essa declaração informa ao validador de esquema que todos os elementos usados neste documento XML são declarados no namespace "https://www.w3schools.com".
Depois de ter o namespace XML Schema Instance disponível:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
você pode usar o atributo schemaLocation. Este atributo tem dois valores, separados por um espaço. O primeiro valor é o namespace a ser usado. O segundo valor é o local do esquema XML a ser usado para esse namespace:
xsi:schemaLocation="https://www.w3schools.com note.xsd"