Schema XML
XSD (XML Schema Definition) è un linguaggio schema utilizzato per descrivere la struttura e le restrizioni di contenuto dei documenti XML in modo molto preciso, al di là delle regole sintattiche imposte dal linguaggio XML stesso . In questo modo si ottiene una percezione del tipo di documento con un alto livello di astrazione. È stato sviluppato dal World Wide Web Consortium (W3C) e ha raggiunto il livello di raccomandazione nel maggio 2001.
Terminologia
Il termine "Schema XML" viene utilizzato con vari significati all'interno dello stesso contesto di descrizione del documento ed è importante tenere conto delle seguenti considerazioni:
- "XML Schema" è il nome ufficiale dato alla raccomandazione del W3C, che ha prodotto il primo linguaggio dello schema separato da XML (la definizione del tipo di documento ( DTD ) fa parte di XML).
- È comune fare riferimento genericamente agli schemi come "schema XML", ma si consiglia di utilizzare il termine " documento schema " o " definizione dello schema " e riservare "schema XML" per la denominazione di questo linguaggio specifico.
- Sebbene "schemi XML" sia usato genericamente, XSDL ( XML Schema Definition Language ) è il nome tecnico dei linguaggi di schema XML come:
- Definizione del tipo di documento (DTD)
- Schema XML
- RELAX NG
- Schematron
- Lingua di instradamento dello spazio dei nomi (NRL)
- Linguaggi di definizione dello schema del documento (DSDL)
- Document Definition Markup Language (DDML)
- Descrizione della struttura del documento (DSD)
- SGML
- Schema per XML orientato agli oggetti (SOX)
Schema W3C XML
Il World Wide Web Consortium (W3C) ha iniziato a lavorare su XML Schema nel 1998. La prima versione è diventata una raccomandazione ufficiale nel maggio 2001. Una seconda edizione rivista è disponibile da ottobre 2004.
Questa raccomandazione si sviluppa in tre parti:
- XML Schema Part 0 Primer - è un'introduzione non normativa al linguaggio, che fornisce un gran numero di esempi e spiegazioni dettagliate per un primo approccio all'XML Schema.
- XML Schema Part 1 Structures : è una descrizione estensiva dei componenti del linguaggio.
- XML Schema Part 2 Datatypes – Integra la Parte 1 con la definizione dei tipi di dati XML Schema incorporati e le relative restrizioni.
(vedi link esterni )
Componenti
XML Schema è un linguaggio schema scritto in XML , basato sulla grammatica e destinato a fornire una maggiore potenza espressiva rispetto ai DTD , che sono meno capaci di descrivere documenti a livello formale.
I documenti Schema (di solito con l' estensione XML Schema Definition (XSD) .xsd) sono stati concepiti come un'alternativa ai DTD più complessi, cercando di superarne i punti deboli e cercare nuove capacità durante la definizione di strutture per documenti XML. Il contributo principale di XML Schema è il gran numero di tipi di dati che incorpora. In questo modo, XML Schema aumenta le possibilità e le funzionalità delle applicazioni di elaborazione dati, inclusi tipi di dati complessi come date, numeri e stringhe.
Tipi di componenti
Gli schemi XML Schema superano molti dei limiti e dei punti deboli dei DTD. È stato progettato interamente attorno agli spazi dei nomi e supporta i tipi di dati tipici del linguaggio di programmazione , nonché i tipi personalizzati semplici e complessi. Uno schema è definito tenendo conto del suo uso finale.
Spazi dei nomi
La programmazione di XML Schema si basa su namespace o namespace , possiamo trovare un'analogia tra questi ei cosiddetti pacchetti in Java . Ogni spazio dei nomi contiene elementi e attributi strettamente correlati allo spazio dei nomi. Pertanto, quando si definisce un elemento o un attributo di uno spazio dei nomi, verrà sempre creata una connessione tra i suoi diversi campi. Inoltre, questo modo di lavorare ci consente di mettere in relazione elementi che non si trovano nello stesso spazio dei nomi.
Dopo aver scritto uno schema XML, è possibile confermarne il corretto completamento utilizzando la convalida dello schema XML: convalida XML .5623
Esempio
Un esempio della struttura di un documento schema vuoto sarebbe il seguente:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema" version= "0.1" xml:lang = "è" >
</xsd:schema>
Un esempio di definizione con XML Schema potrebbe essere il seguente:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema" >
<xsd:element name= "Libro" >
<xsd:complexType>
<xsd:sequence>
<xsd:nome elemento = "Titolo" type= "xsd:string" />
<xsd:nome elemento = "Autori" type= "xsd:string" maxOccurs= "10" />
<xsd:element name= "Publisher" type= "xsd:string" />
</xsd:sequence>
<xsd:attribute name= "price" type= "xsd:double" />
</xsd:complexType>
</xsd:elemento>
</xsd:schema>
Possiamo vedere come in entrambi i casi vengono avviate le dichiarazioni indicando la versione di XML che verrà utilizzata e la codifica che verrà utilizzata. Questi due campi sono necessari per poter interpretare lo schema.
La seguente riga di codice dichiara lo schema element , la radice del documento di definizione dello schema. Inoltre, viene dichiarato lo spazio dei nomi in cui risiedono i nomi degli elementi del documento . Questa definizione dello schema impone che qualsiasi documento XML conforme ad esso deve avere un elemento radice chiamato "Book" che avrà tre figli (elementi nidificati) e un attributo. I figli sono “Titolo”, “Editore” che deve comparire una volta e “Autori” che possono comparire da una a dieci volte. Il fatto che siano raggruppati in sequenza indica che gli elementi devono apparire in ordine, ovvero prima il “Titolo”, poi gli “Autori” e infine l'“Editore”. Tutti e tre gli elementi sono di tipo string . L'attributo del libro si chiama "prezzo" ed è di tipo double .
Vedi anche
Esercitazioni
- Tutorial online con esempi (in inglese)
- Tutorial XSD per principianti — Teoria, esempi ed esercizi risolti con Creative Commons License.
- Spiegazione e uso dei Namespace
- Convalida dello schema XML