Разница между XML-схемой и DTD

Схема XML против DTD

DTD, или Определение типа документа, и Схема XML, также известная как XSD, представляют собой два способа описания структуры и содержимого документа XML. DTD является более старым из двух, и поэтому имеет ограничения, которые пытается улучшить XML-схема. Первое различие между DTD и XML-схемой - это понимание пространства имен; Схема XML есть, а DTD нет. Осознание пространства имен устраняет неоднозначность, которая может привести к наличию определенных элементов и атрибутов из нескольких словарей XML, предоставляя им пространства имен, которые помещают элемент или атрибут в контекст.

Одна из причин, по которой XML-схема поддерживает пространство имен, а DTD нет, заключается в том, что XML-схема написана на XML, а DTD - нет. Следовательно, XML-схемы могут быть программно обработаны, как и любой XML-документ. Схема XML также устраняет необходимость изучать другой язык, так как он написан на XML, в отличие от DTD.

Еще одним ключевым преимуществом XML Schema является его способность реализовывать строгую типизацию. Схема XML может определять тип данных определенных элементов и даже ограничивать его определенными длинами или значениями. Эта способность гарантирует, что данные, хранящиеся в документе XML, являются точными. В DTD отсутствуют сильные возможности типизации и нет возможности проверить содержимое по типам данных. XML-схема имеет множество производных и встроенных типов данных для проверки содержимого. Это обеспечивает преимущество, указанное выше. Он также имеет унифицированные типы данных, но, поскольку все процессоры и валидаторы должны поддерживать эти типы данных, это часто приводит к сбою старых синтаксических анализаторов XML..

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

Резюме:

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

2. XML-схемы пишутся на XML, а DTD не.

3. XML-схема строго типизирована, а DTD - нет..

4. XML-схема имеет множество производных и встроенных типов данных, которые недоступны в DTD..

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