XML Schema vs DTD
DTD, eller Document Type Definition, og XML Schema, som også kalles XSD, er to måter å beskrive strukturen og innholdet av et XML-dokument på. DTD er den eldre av de to, og som sådan har det begrensninger som XML Schema har forsøkt å forbedre. Den første forskjellen mellom DTD og XML Schema, er navneområdebevissthet; XML-skjema er, mens DTD ikke er. Namespace-bevissthet fjerner tvetydigheten som kan resultere i å ha visse elementer og attributter fra flere XML-vokabularier, ved å gi dem navneområder som setter elementet eller attributten i kontekst.
En del av grunnen til at XML Schema er navneområdet oppmerksomt mens DTD ikke er, er det faktum at XML Schema er skrevet i XML, og DTD er ikke. Derfor kan XML-skjemaer behandles programmatisk, akkurat som et hvilket som helst XML-dokument. XML Schema eliminerer også behovet for å lære et annet språk, som det er skrevet i XML, i motsetning til DTD.
En annen viktig fordel ved XML Schema, er dens evne til å implementere sterk maskinskriving. Et XML-skjema kan definere datatypen til enkelte elementer, og til og med begrense den til innenfor bestemte lengder eller verdier. Denne muligheten sikrer at dataene som er lagret i XML-dokumentet, er nøyaktige. DTD mangler sterke skriveegenskaper, og har ingen måte å validere innholdet til datatyper. XML Schema har et vell av avledede og innebygde datatyper for å validere innhold. Dette gir fordelen nevnt ovenfor. Det har også enhetlige datatyper, men da alle prosessorer og validatorer trenger å støtte disse datatyper, fører det ofte til at eldre XML-parsere mislykkes..
Et karakteristisk for DTD som folk ofte anser både som en fordel og ulempe, er evnen til å definere DTDs inline, hvilket XML-skjema mangler. Dette er bra når du arbeider med små filer, da det gir deg mulighet til å inneholde både innholdet og skjemaet i samme dokument, men når det kommer til større dokumenter, kan dette være en ulempe, da du trekker innhold hver gang du henter skjemaet . Dette kan føre til alvorlige overhead som kan forringe ytelsen.
Sammendrag:
1. XML Schema er navneområde oppmerksom, mens DTD ikke er.
2. XML-skjemaer er skrevet i XML, mens DTD ikke er.
3. XML Schema er sterkt skrevet, mens DTD ikke er.
4. XML Schema har et vell av avledede og innebygde datatyper som ikke er tilgjengelige i DTD.
5. XML Schema tillater ikke inlinedefinisjoner, mens DTD gjør det.