DTD
Una definizione di tipo di documento (DTD, Document Type Definition) è costituita da una serie di definizioni di tipo elemento, attributi, entità e notazioni e dichiara, inoltre, quali di queste sono lecite all’interno del documento e in quali suoi punti.
Poiché ci sono tanti modi per rappresentare uno stesso oggetto, è preferibile utilizzare una DTD in modo tale da essere coerenti con la visualizzazione di uno o più documenti. Ogni oggetto viene espresso come un elemento XML. Per ogni elemento, denominato dal nome dell’oggetto, sarà specificato il contenuto (elementi figli). Il modello del contenuto specificherà quali sottoelementi sono consentiti e in quale ordine. La barra verticale “|” indica che è possibile scegliere tra gli elementi componenti. E’ possibile inserire spazi bianchi prima o dopo la barra verticale. Non c’è un limite massimo per inserire le scelte. Tutto dipende dalle singole circostanze.
Le sequenze di taluni elementi sono contenute all’interno di una coppia di parentesi tonde e possono avere qualsiasi lunghezza. Ogni elemento contenuto è separato da una virgola; uno spazio tra un elemento e la virgola può esserci o meno.
Se una particella contenuta è opzionale o ripetibile, allora essa sarà seguita da particolari caratteri:
- ? la particella è facoltativa (0 o 1 volta);
- * facoltativa e ripetibile (0 o più volte);
- + obbligatoria e ripetibile (1 o più volte).
Tali caratteri prendono il nome di indicatori di evento; essi non possono essere preceduti da alcun spazio bianco.
Se per alcuni elementi bisogna specificare altre caratteristiche, allora bisogna dichiarare una lista di attributi. Gli attributi sono delle stringhe che, al contrario degli elementi, possono non rispettare un ordine.
Gli attributi sono memorizzati in una lista che, per l’elemento cui si riferisce, riporta il nome, il tipo e il valore predefinito. Il valore predefinito verrà usato dall’elaboratore nel caso non ne venga assegnato uno all’attributo; questo valore, però, non deve essere specificato obbligatoriamente.
Se un attributo è sottinteso, allora l’elaboratore potrà comprenderlo dalla specifica stringa #IMPLIED a tale attributo verrà assegnato un qualsiasi valore che il sistema ritenga opportuno. Se è obbligatorio, allora bisognerà segnalarlo scrivendo #REQUIRED.
Un particolare costrutto XML è rappresentato dalla sezione CDATA esso consente di chiedere all’elaboratore di non interpretare un blocco di testo come markup . Esso è utilizzato per indicare dati di tipo carattere.