XML shēma salīdzinājumā ar DTD
DTD jeb Document Type Definition un XML Schema, ko sauc arī par XSD, ir divi veidi, kā aprakstīt XML dokumenta struktūru un saturu. DTD ir vecāks no abiem, un tam ir ierobežojumi, kurus XML shēma ir mēģinājusi uzlabot. Pirmā atšķirība starp DTD un XML shēmu ir vārda telpas izpratne; XML shēma ir, bet DTD nav. Nosaukumu telpas apzināšanās novērš neskaidrības, kas var izraisīt noteiktu elementu un atribūtu iegūšanu no vairākām XML vārdnīcām, piešķirot tiem nosaukumvietas, kas elementu vai atribūtu ievieto kontekstā.
Daļa no iemesliem, kāpēc XML shēma apzinās vārdu zonu, bet DTD nav, ir fakts, ka XML shēma ir rakstīta XML formātā, bet DTD nav. Tāpēc XML shēmas var programmatiski apstrādāt tāpat kā jebkuru XML dokumentu. XML shēma arī novērš nepieciešamību mācīties citu valodu, jo atšķirībā no DTD tā ir rakstīta XML.
Vēl viena galvenā XML shēmas priekšrocība ir spēja ieviest spēcīgu mašīnrakstīšanu. XML shēma var noteikt noteiktu elementu datu tipu un pat ierobežot to ar noteiktu garumu vai vērtībām. Šī spēja nodrošina XML dokumentā saglabāto datu pareizību. DTD trūkst spēcīgu mašīnrakstīšanas iespēju, un tam nav iespējas apstiprināt saturu datu tipiem. XML shēmai ir daudz atvasinātu un iebūvētu datu veidu, lai validētu saturu. Tas nodrošina iepriekš minēto priekšrocību. Tam ir arī vienoti datu tipi, taču, tā kā visiem datu apstrādātājiem un vērtētājiem ir jāatbalsta šie datu tipi, vecāku XML parsētāju darbība bieži neizdodas..
DTD iezīme, ko cilvēki bieži uzskata gan par priekšrocību, gan trūkumu, ir spēja definēt DTD inline, kurai trūkst XML shēmas. Tas ir labi, strādājot ar maziem failiem, jo tas ļauj vienā saturā saturēt gan saturu, gan shēmu, bet, runājot par lielākiem dokumentiem, tas var būt trūkums, jo saturu velkot katru reizi, kad izgūstat shēmu . Tas var izraisīt nopietnas pieskaitāmās izmaksas, kas var pasliktināt veiktspēju.
Kopsavilkums:
1. XML shēma ir zināma vārda telpā, bet DTD nav.
2. XML shēmas ir rakstītas XML formātā, bet DTD nav.
3. XML shēma ir stingri ierakstīta, bet DTD nav.
4. XML shēmā ir daudz atvasinātu un iebūvētu datu tipu, kas nav pieejami DTD.
5. XML shēma nepieļauj inline definīcijas, bet DTD to dara.