Разлика между XML схема и DTD

XML схема срещу DTD

DTD или определение на типа документ и XML схема, която е известна също като XSD, са два начина за описание на структурата и съдържанието на XML документ. DTD е по-старият от двата и като такъв има ограничения, които XML схемата се е опитала да подобри. Първата разлика между DTD и XML схема е осъзнаването на пространството на имената; XML схема е, докато DTD не е. Осведомеността за пространството на имена премахва неяснотата, която може да доведе до определени елементи и атрибути от множество XML речници, като им дава пространства от имена, които поставят елемента или атрибута в контекст.

Част от причината XML Schema да е известна с пространството от имена, докато DTD не е, е фактът, че XML Schema е написана в XML, а DTD не. Следователно XML схемите могат да бъдат обработени програмно, както всеки XML документ. XML схема също така елиминира необходимостта от изучаване на друг език, тъй като е написан в XML, за разлика от DTD.

Друго ключово предимство на XML схемата е способността й да прилага силен тип. XML схема може да дефинира типа данни на определени елементи и дори да го ограничи до определени дължини или стойности. Тази способност гарантира, че данните, съхранявани в XML документа, са точни. DTD няма силни възможности за писане и няма начин да потвърди съдържанието към типове данни. XML схемата има множество от производни и вградени типове данни за валидиране на съдържание. Това осигурява предимството, посочено по-горе. Той също има еднакви типове данни, но тъй като всички процесори и валидатори трябва да поддържат тези типове данни, това често води до неуспех на по-старите XML парсери.

Характерна характеристика на DTD, която хората често разглеждат както като предимство, така и като недостатък, е способността да дефинират DTD в реално време, което липсва на XML схема. Това е добре, когато работите с малки файлове, тъй като ви позволява да съдържате както съдържанието, така и схемата в един и същ документ, но когато става въпрос за по-големи документи, това може да бъде недостатък, тъй като изтегляте съдържание всеки път, когато изтегляте схемата. , Това може да доведе до сериозни режийни разходи, които могат да влошат работата.

Резюме:

1. XML схемата е наясно в пространството на имена, докато DTD не е.

2. XML схемите са написани в XML, докато DTD не.

3. XML схемата е силно набрана, докато DTD не е.

4. XML схемата има множество от производни и вградени типове данни, които не са налични в DTD.

5. XML схема не позволява вградени дефиниции, докато DTD.