XML Schema e Documenti XML

20 marzo 2006

Nell’articolo «Uno sguardo ad XML» abbiamo avuto modo di esplorare i principi di base dell’XML e, in particolare, avevamo parlato del ruolo dei Document Type Definition (DTD) nella definizione della struttura di un documento.

Infatti, anche se XML ci consente la massima libertà nella definizione dei tag, abbiamo la necessità di imporre dei vincoli alla struttura di un documento per evitare l’insorgere incontrollato di tag e per consentire un’elaborazione accurata da parte di determinati programmi (per esempio, processori XSLT ed altri programmi di trasformazione). In pratica quello che facciamo con i DTD è definire la grammatica di un linguaggio a marcatori basato su XML utilizzabile per una specifica classe di documenti.

Tuttavia i DTD presentano alcuni aspetti che non soddisfano pienamente le attese degli sviluppatori. Ad esempio, secondo i DTD il contenuto dei tag ` sempre testo (#PCDATA); non è prevista la possibilità di definire tipi di dato e pertanto non è possibile ottenere un controllo accurato sul contenuto dei tag e sul valore degli attributi. Non c’è possibilità di comporre documenti XML che facciano riferimento a DTD diversi. Come se non bastasse, la sintassi utilizzata per definire i DTD ha poco a che vedere con XML. A prima vista quest’ultimo aspetto può essere considerato di poco conto, ma ha invece la sua importanza se consideriamo che in linea di principio non possiamo riutilizzare gli stessi strumenti che usiamo per XML quando lavoriamo con un DTD.

A questi problemi cercano di dare una soluzione gli XML Schema.

XML Schema

Uno XML Schema è un documento XML che utilizza un insieme di tag speciali per definire la struttura di un documento XML. Da questa definizione emerge subito una novità interessante: viene utilizzato un documento XML per validare un altro documento XML!

Il vincolo che dobbiamo rispettare nella creazione di uno schema è l’uso dei tag definiti dall’XML Schema Language definito dal W3C nei documenti www.w3.org/TR/xmlschema-0, www.w3.org/TR/xmlschema-1 e www.w3.org/TR/xmlschema-2. In particolare uno XML Schema ha la seguente struttura generale:

<?xml version”1.0″?>
<xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”>
… Definizione della grammatica …
</xs:schema>

L’elemento root del documento è rappresentato dal tag <xs:schema>, il quale specifica tramite l’attributo xmlns che in questo documento saranno utilizzati dei tag definiti da uno specifico standard del W3C.

Tipi di dato

Una delle principali novità introdotte dagli XML Schema rispetto ai DTD è la possibilità non solo di definire il tipo di dato di un elemento, ma anche di poter personalizzare un tipo di dato. Esistono due categorie di tipi di dato: semplici e complessi.

I tipi di dato semplici sono relativi a quegli elementi che non possono contenere altri elementi e non prevedono attributi. Sono previsti numerosi tipi di dato predefiniti; a titolo d’esempio, possiamo imporre il vincolo che un elemento contenga informazioni di tipo stringa, intero, booleano, data, ecc.

È possibile definire tipi semplici personalizzati derivandoli da quelli predefiniti. Ad esempio, possiamo definire un tipo di dato come restrizione del tipo stringa, vincolando i valori ad uno specifico insieme di stringhe o ad un pattern individuato da un’espressione regolare.

I tipi di dato complessi si riferiscono alla definizione degli elementi con attributi e che possono contenere altri elementi. La definizione del tipo complesso consiste generalmente nella definizione della struttura prevista dall’elemento. Se l’elemento può contenere altri elementi possiamo definire l’insieme degli elementi che possono stare al suo interno come sequenza, come insieme di valori alternativi o come gruppo.

Se vuoi aggiornamenti su XML Schema e Documenti XML inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su XML Schema e Documenti XML

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy