XSD - Syntaxe

Un XSD XML est conservé dans un document séparé, puis le document peut être lié à un document XML pour l'utiliser.

Syntaxe

La syntaxe de base d'un XSD est la suivante -

<?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>

Élément <Schema>

Le schéma est l'élément racine de XSD et il est toujours requis.

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

Le fragment ci-dessus spécifie que les éléments et les types de données utilisés dans le schéma sont définis dans http://www.w3.org/2001/XMLSchema namespace et ces éléments / types de données doivent être préfixés par xs. C'est toujours nécessaire.

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

Le fragment ci-dessus spécifie que les éléments utilisés dans ce schéma sont définis dans espace de noms. C'est facultatif.

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

Le fragment ci-dessus spécifie que l'espace de noms par défaut est .

elementFormDefault = "qualified"

Le fragment ci-dessus indique que tous les éléments déclarés dans ce schéma doivent être qualifiés d'espace de noms avant de les utiliser dans un document XML.

Schéma de référencement

Jetez un œil au schéma de référencement suivant -

<?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"

Le fragment ci-dessus spécifie la déclaration d'espace de noms par défaut. Cet espace de noms est utilisé par le validateur de schéma vérifiant que tous les éléments font partie de cet espace de noms. C'est facultatif.

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.tutorialspoint.com student.xsd">

Après avoir défini l'instance XMLSchema xsi, utilisez schemaLocationattribut. Cet attribut a deux valeurs, l'espace de noms et l'emplacement du schéma XML, à utiliser séparés par un espace. C'est facultatif.