XML offre la libertà di definire i tag a seconda delle necessità, ma perché non si generi confusione è necessario un meccanismo che ne vincoli l’utilizzo all’interno dei documenti
si può stabilire quali tag possono essere utilizzati e come per rispecchiare una struttura logica predefinita
occorre quindi definire un insieme di regole per validificare i tag e il loro contenuto
gli approcci per definire queste regole di markup sono due:
- Dtd - Document Type Definition
utilizzando i Dtd si ha un maggior controllo sulla struttura e sull’uso dei tag in un documento XML, evitando che la libertà nella definizione dei tag possa far perdere il controllo sui contenuti.
l’uso dei Dtd per definire la grammatica di un linguaggio di markup non sempre è del tutto soddisfacente
i Dtd non consentono:
- di specificare un tipo di dato per il valore degli attributi (ex. valori numerici)
- specificare il numero minimo o massimo di occorrenze di un tag in un documento
in determinati contesti occorre avere un controllo ancora più accurato sulla validità di un documento XML
se abbiamo bisogno di un maggiore controllo sugli elementi che possono trovarsi all’interno di uno specifico tipo di documenti XML, i Dtd non risultano più sufficienti
- XML Schema
è un documento XML che descrive la grammatica di un linguaggio XML utilizzando un linguaggio di markup specifico
i software che verificano la validità di un file XML nei sistemi si chiamano parser:
- parser non validante è un parser che verifica soltanto se un documento è ben formato
- parser validante è un parser che, oltre a verificare che un documento è ben formato, verifica se è corretto rispetto ad una data grammatica