XSD - Sintassi

Un XSD XML viene conservato in un documento separato e quindi il documento può essere collegato a un documento XML per utilizzarlo.

Sintassi

La sintassi di base di un XSD è la seguente:

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

Lo schema è l'elemento radice di XSD ed è sempre obbligatorio.

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

Il frammento precedente specifica che gli elementi ei tipi di dati utilizzati nello schema sono definiti in http://www.w3.org/2001/XMLSchema spazio dei nomi e questi elementi / tipi di dati dovrebbero essere preceduti da xs. È sempre necessario.

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

Il frammento precedente specifica che gli elementi utilizzati in questo schema sono definiti in http://www.tutorialspoint.comspazio dei nomi. È facoltativo.

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

Il frammento precedente specifica che lo spazio dei nomi predefinito è http://www.tutorialspoint.com.

elementFormDefault = "qualified"

Il frammento precedente indica che qualsiasi elemento dichiarato in questo schema deve essere qualificato come spazio dei nomi prima di utilizzarlo in qualsiasi documento XML. È facoltativo.

Schema di riferimento

Dai un'occhiata al seguente schema di riferimento:

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

Il frammento precedente specifica la dichiarazione dello spazio dei nomi predefinito. Questo spazio dei nomi viene utilizzato dal validatore dello schema, controlla che tutti gli elementi facciano parte di questo spazio dei nomi. È facoltativo.

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

Dopo aver definito l'xsi dell'istanza XMLSchema, utilizzare schemaLocationattributo. Questo attributo ha due valori, spazio dei nomi e posizione dello schema XML, da utilizzare separati da uno spazio. È facoltativo.