Rozdiel medzi schémou XML a DTD

Schéma XML vs. DTD

DTD alebo Definícia typu dokumentu a Schéma XML, ktoré sa tiež nazýva XSD, sú dva spôsoby, ako opísať štruktúru a obsah dokumentu XML. DTD je starší z týchto dvoch a ako taký má obmedzenia, ktoré sa schéma XML pokúsila vylepšiť. Prvým rozdielom medzi schémou DTD a XML je povedomie o mennom priestore; Schéma XML je, zatiaľ čo DTD nie. Povedomie o priestore názvov odstraňuje nejednoznačnosť, ktorá môže vyústiť do určitých prvkov a atribútov z viacerých slovníkov XML tým, že im poskytne priestor názvov, ktorý daný prvok alebo atribút uvedie do kontextu.

Súčasťou dôvodu, prečo je schéma XML si vedomá menného priestoru, zatiaľ čo DTD nie je, je skutočnosť, že schéma XML je napísaná v XML a DTD nie. Preto môžu byť schémy XML programovo spracovávané rovnako ako akýkoľvek dokument XML. Schéma XML tiež eliminuje potrebu učiť sa iný jazyk, ako je napísaný v XML, na rozdiel od DTD.

Ďalšou kľúčovou výhodou schémy XML je jej schopnosť implementovať silné písanie. Schéma XML môže definovať typ údajov určitých prvkov a dokonca ho obmedziť na určité dĺžky alebo hodnoty. Táto schopnosť zaisťuje presnosť údajov uložených v dokumente XML. DTD nemá silné schopnosti písať a nemá spôsob, ako overiť obsah podľa typov údajov. Schéma XML obsahuje množstvo odvodených a zabudovaných typov údajov na overenie obsahu. To poskytuje vyššie uvedenú výhodu. Má tiež jednotné typy údajov, ale keďže všetky procesory a validátory musia tieto typy údajov podporovať, často spôsobuje zlyhanie starších analyzátorov XML..

Charakteristikou DTD, ktorú ľudia často považujú za výhodu aj za nevýhodu, je schopnosť definovať DTD inline, ktorému schému XML chýba. Je to dobré pri práci s malými súbormi, pretože to umožňuje obsahovať obsah aj schému v rovnakom dokumente, ale pokiaľ ide o väčšie dokumenty, môže to byť nevýhoda, pretože pri každom načítaní schémy sťahujete obsah. , To môže viesť k vážnym režijným nákladom, ktoré môžu znížiť výkon.

Zhrnutie:

1. XML schéma si je vedomá namespace, zatiaľ čo DTD nie.

2. Schémy XML sú napísané v XML, zatiaľ čo DTD nie.

3. Schéma XML je výrazne napísané, zatiaľ čo DTD nie.

4. Schéma XML obsahuje množstvo odvodených a zabudovaných typov údajov, ktoré nie sú dostupné v DTD.

5. Schéma XML neumožňuje vložené definície, zatiaľ čo systém DTD áno.