Validazione di Documenti XML
- Un documento XML è ben formato se rispetta le regole
generali di sintassi viste nella parte precedente.
- Un documento XML è valido se è ben formato e rispetta le
regole sintattiche e semantiche contenute del DTD associato.
Un documento senza DTD non è mai valido.
- Esistono parser validanti e non validanti. Questi ultimi
possono ignorare tutto l’eventuale DTD, tranne le dichiarazioni di entità
generali.
Le Document Type Definition (DTD)
- Sono utilizzate per validare i documenti XML.
- E’ possibile infatti definire una speciale grammatica che dichiara:
- tutti gli elementi utilizzabili;
- quali elementi possono essere nidificati in altri, in che ordine e con
quante occorrenze;
- quali attributi sono applicabili a ciascun elemento, se sono
obbligatori e quali sono i loro valori predefiniti.
- Si possono inoltre definire entità e notazioni poi
utilizzabili all’interno del documento XML o del DTD stesso.
Ad esempio, un DTD utile per validare il file XML di esempio proposto nelle
pagine precedenti potrebbe essere il seguente:
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
%HTMLlat1;
<!ELEMENT artist (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
<!ELEMENT length (#PCDATA)>
<!ELEMENT album (artist, title, year?, copyright?)>
<!ATTLIST album
ID ID #REQUIRED
media CDATA #IMPLIED "CompactDisc"
>
<!ELEMENT song (artist?, title, year?, comment?, length)>
<!ATTLIST song
genre (Rock|Pop|Classical|Jazz|Dance|Tecno) #IMPLIED
ID ID #IMPLIED
album IDREF #IMPLIED
track CDATA #IMPLIED
>
<!ELEMENT CD (album | song)+>
<!ATTLIST CD
number CDATA #REQUIRED
owner CDATA #FIXED ”Giuseppe Della Penna"
>
<!ELEMENT collection (CD+)>
Nel seguito ne analizzeremo le varie componenti.