XSD - Sintaxe
Um XML XSD é mantido em um documento separado e, em seguida, o documento pode ser vinculado a um documento XML para usá-lo.
Sintaxe
A sintaxe básica de um XSD é a seguinte -
<?xml version = "1.0"?>
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
targetNamespace = "http://www.tutorialspoint.com"
xmlns = "http://www.tutorialspoint.com" elementFormDefault = "qualified">
<xs:element name = 'class'>
<xs:complexType>
<xs:sequence>
<xs:element name = 'student' type = 'StudentType' minOccurs = '0'
maxOccurs = 'unbounded' />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name = "StudentType">
<xs:sequence>
<xs:element name = "firstname" type = "xs:string"/>
<xs:element name = "lastname" type = "xs:string"/>
<xs:element name = "nickname" type = "xs:string"/>
<xs:element name = "marks" type = "xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name = 'rollno' type = 'xs:positiveInteger'/>
</xs:complexType>
</xs:schema>
Elemento <Schema>
O esquema é o elemento raiz do XSD e sempre é necessário.
<xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
O fragmento acima especifica que os elementos e tipos de dados usados no esquema são definidos em http://www.w3.org/2001/XMLSchema namespace e esses elementos / tipos de dados devem ser prefixados com xs. É sempre necessário.
targetNamespace = "http://www.tutorialspoint.com"
O fragmento acima especifica que os elementos usados neste esquema são definidos em namespace. É opcional.
xmlns = "http://www.tutorialspoint.com"
O fragmento acima especifica que o namespace padrão é .
elementFormDefault = "qualified"
O fragmento acima indica que quaisquer elementos declarados neste esquema devem ser qualificados por namespace antes de serem usados em qualquer documento XML. É opcional.
Esquema de Referência
Dê uma olhada no seguinte Esquema de Referência -
<?xml version = "1.0"?>
<class xmlns = "http://www.tutorialspoint.com"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.tutorialspoint.com student.xsd">
<student rollno = "393">
<firstname>Dinkar</firstname>
<lastname>Kad</lastname>
<nickname>Dinkar</nickname>
<marks>85</marks>
</student>
<student rollno = "493">
<firstname>Vaneet</firstname>
<lastname>Gupta</lastname>
<nickname>Vinni</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>Jasvir</firstname>
<lastname>Singh</lastname>
<nickname>Jazz</nickname>
<marks>90</marks>
</student>
</class>
xmlns = "http://www.tutorialspoint.com"
O fragmento acima especifica a declaração de namespace padrão. Este namespace é usado pelo validador de esquema para verificar se todos os elementos fazem parte deste namespace. É opcional.
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.tutorialspoint.com student.xsd">
Depois de definir a instância XMLSchema xsi, use schemaLocationatributo. Este atributo possui dois valores, namespace e localização do XML Schema, a serem usados separados por um espaço. É opcional.