Che differenza c’è tra un DTD e un XML Schema?

Utente HTML.it
chiede

Che differenza c’è tra un DTD e un XML Schema?

Redazione HTML.it
risponde

Gli XML Schema e i DTD hanno l’obiettivo comune di consentire la definizione di una grammatica per un linguaggio di markup e di conseguenza la definizione di regole di validità per un documento XML. Tuttavia gli XML Schema presentano alcuni vantaggi rispetto ai DTD. In particolare:

– I DTD utilizzano una sintassi che ha poco in comune con XML. A prima vista questo aspetto puó essere considerato di poco conto, ma ha invece la sua importanza se consideriamo che non possiamo riutilizzare gli stessi strumenti che usiamo per XML quando lavoriamo con un DTD. Gli XML Schema sono essi stessi documenti XML, per cui si puó riutilizzare tutto quello che questa tecnologia mette a disposizione.
– Al contrario degli XML Schema, i DTD non consentono la definizione di tipi di dati, pertanto non possiamo avere un controllo accurato sul contenuto degli elementi di un documento XML né sul valore degli attributi.
– Un documento XML puó dipendere da un solo DTD che definisce tutta la grammatica applicabile. Gli schemi XML consentono di definire ambiti di validità (namespace) di una grammatica, consentendo la presenza in un documento XML di tag definiti in schemi diversi.

Il prezzo da pagare per un più accurato controllo offerto dagli schemi XML è la loro maggiore complessità rispetto ai DTD.