Schéma XML vs. DTD
DTD neboli definice typu dokumentu a schéma XML, které je také známé jako XSD, jsou dva způsoby, jak popsat strukturu a obsah dokumentu XML. DTD je starší ze dvou a jako takový má omezení, která se XML schéma snažilo vylepšit. Prvním rozdílem mezi schématem DTD a XML je povědomí o oboru názvů; Schéma XML je, zatímco DTD není. Povědomí o oboru názvů odstraňuje dvojznačnost, která může vést k tomu, že určité prvky a atributy budou mít z více slovníků XML tím, že jim poskytne jmenné prostory, které daný prvek nebo atribut uvedou do kontextu.
Součástí důvodu, proč je schéma XML vědomé oboru názvů, zatímco DTD není, je skutečnost, že schéma XML je napsáno v XML a DTD není. Schémata XML proto lze programově zpracovávat stejně jako jakýkoli dokument XML. Schéma XML také eliminuje potřebu naučit se jiný jazyk, protože je napsán v XML, na rozdíl od DTD.
Další klíčovou výhodou XML schématu je jeho schopnost implementovat silné psaní. Schéma XML může definovat datový typ určitých prvků a dokonce ho omezit na určité délky nebo hodnoty. Tato schopnost zajišťuje přesnost dat uložených v dokumentu XML. DTD postrádá silné schopnosti psaní a nemá způsob, jak ověřit obsah podle typů dat. Schéma XML obsahuje množství odvozených a vestavěných datových typů pro ověření obsahu. To poskytuje výše uvedenou výhodu. Má také jednotné datové typy, ale protože všechny procesory a validátory musí tyto datové typy podporovat, často způsobuje selhání starších analyzátorů XML.
Charakteristikou DTD, kterou lidé často považují za výhodu i nevýhodu, je schopnost definovat DTD inline, které XML schématu postrádá. To je dobré, když pracujete s malými soubory, protože to umožňuje obsahovat obsah i schéma ve stejném dokumentu, ale pokud jde o větší dokumenty, může to být nevýhoda, protože při každém načtení schématu stahujete obsah. . To může vést k závažným režijním nákladům, které mohou snížit výkon.
Souhrn:
1. XML Schema si je vědoma oboru názvů, zatímco DTD není.
2. Schémata XML jsou zapsána v XML, zatímco DTD nikoli.
3. Schéma XML je pevně zadáno, zatímco DTD není.
4. Schéma XML obsahuje velké množství odvozených a vestavěných datových typů, které nejsou dostupné v DTD.
5. Schéma XML neumožňuje vložené definice, zatímco DTD ano.