XSD - Panoramica
XML Schema Definition, comunemente noto come XSD, è un modo per descrivere con precisione il linguaggio XML. XSD controlla la validità della struttura e del vocabolario di un documento XML rispetto alle regole grammaticali del linguaggio XML appropriato.
Un documento XML può essere definito come:
Well-formed- Se il documento XML aderisce a tutte le regole XML generali, come i tag, devono essere nidificati correttamente, i tag di apertura e di chiusura devono essere bilanciati e i tag vuoti devono terminare con "/>", allora viene chiamato ben formato .
OR
Valid- Un documento XML che si dice valido quando non solo è ben formato , ma è anche conforme all'XSD disponibile che specifica quali tag utilizza, quali attributi questi tag possono contenere e quali tag possono essere presenti all'interno di altri tag, tra le altre proprietà .
Il diagramma seguente mostra come XSD viene utilizzato per strutturare i documenti XML:
Ecco un semplice codice XSD. Dai un'occhiata.
<?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>
Caratteristiche
Ecco un elenco di alcune delle caratteristiche popolari di XSD:
- Gli XSD possono essere estensibili per aggiunte future.
- XSD è più ricco e potente del DTD.
- XSD è scritto in XML.
- XSD supporta i tipi di dati.
- XSD supporta gli spazi dei nomi.
- XSD è la raccomandazione del W3C.