XSD - Sintaxis

Un XML XSD se guarda en un documento separado y luego el documento se puede vincular a un documento XML para usarlo.

Sintaxis

La sintaxis básica de un XSD es la siguiente:

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

El esquema es el elemento raíz de XSD y siempre es necesario.

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

El fragmento anterior especifica que los elementos y tipos de datos utilizados en el esquema se definen en http://www.w3.org/2001/XMLSchema espacio de nombres y estos elementos / tipos de datos deben tener el prefijo xs. Siempre es obligatorio.

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

El fragmento anterior especifica que los elementos utilizados en este esquema se definen en espacio de nombres. Es opcional.

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

El fragmento anterior especifica que el espacio de nombres predeterminado es .

elementFormDefault = "qualified"

El fragmento anterior indica que cualquier elemento declarado en este esquema debe estar calificado como espacio de nombres antes de usarlo en cualquier Documento XML. Es opcional.

Esquema de referencia

Eche un vistazo al siguiente esquema de referencia:

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

El fragmento anterior especifica la declaración de espacio de nombres predeterminada. El validador de esquemas utiliza este espacio de nombres y comprueba que todos los elementos forman parte de este espacio de nombres. Es opcional.

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

Después de definir XMLSchema-instance xsi, use schemaLocationatributo. Este atributo tiene dos valores, espacio de nombres y ubicación del esquema XML, que se utilizarán separados por un espacio. Es opcional.