Iniziamo subito con il dare le soluzioni alle domande poste nell’articolo della settimana scorsa
- Esistono documenti validi che non siano ben formati?
Se un documento XML non è ben formato non è un documento XML standard.
Partendo da questa premessa, appare chiaro che non ha senso parlare di validità di un oggetto fuori dalla specifica.
- Esistono documento ben formati che non siano validi?
Certo. Proviamo a vedere l’esempio di DTD della settimana scorsa, supponendo che si tratti del fil e rubrica.dtd:
tipo (Amico | Collega | Parente) #REQUIRED
>/
Questo DTD, come sappiamo, descrive una grammatica per i documenti XML.
Pertanto il documento XML
Mario
Rossi
Viale Monza 256 – Milano
20100
02-1234567
333-1234567
[email protected]
/
è un documento XML ben formato e valido, in quanto non è collegato a nessuna grammatica.
Nel momento in cui, però, lo colleghiamo ala grammatica fornita dal file rubrica.dtd
Mario
Rossi
Viale Monza 256 – Milano
20100
02-1234567
333-1234567
[email protected]
/
ecco che il documento XML rimane ben formato, in quanto segue le specifiche sintattiche di XML, ma non è più valido.
La ragione di quanto detto sta nel fatto che la grammatica impone la presenza dell’attributo
tipo (Amico | Collega | Parente) #REQUIRED
>/
che come si può vedere è obbligatorio.
Ci troviamo pertanto in presenza di un documento XML ben formato, ma non valido.
Se avessimo scritto il documento nel modo seguente
Mario
Rossi
Viale Monza 256 – Milano
20100
02-1234567
333-1234567
[email protected]
/
avremmo ottenuto un documento ben formato e valido.
Da quanto detto appare chiaro che la caratteristica essenziale di un documento XML sia la sua “forma”, ovvero la capacità di rispettare le regole sintattiche proprie del formato XML stesso.
La “sostanza”, ovvero la validità semantica delle informazioni in esso contenute, sono garantite dalla presenza di una grammatica, sia essa interna o esterna, in DTD o in Xml-Schema.Nel prossimo articolo affronteremo le caratteristiche proprie della scrittura di grammatiche DTD.