WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Описания типа документа (DTDs)

Описания типа документа (DTDs)


Дата публикации: 02-02-2008

Описания типа документа (DTDs, Document Type Definitions) были первым стандартным механизмом, используемым для проверки допустимости, и, по большому счету, остаются им по сей день. Они определяют роли и структуру XML-элементов и описываются с помощью синтаксиса, отличающегося от применяемого в XML. В отношении проверки допустимости они полагаются на пост-обработку. Для простых схем XML - DTDs вполне достаточно. Однако, DTDs - это шаг назад, если говорить о направлении развития XML-технологий: DTDs не поддерживают пространства имен и используют синтаксис, отличный от принятого в XML.

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

Большинство XML-технологий (RDF, XSLT и Xlink), а также языки описания схем (RELAX, XML Schema, SOX) представляются как XML. Это единообразие способствует легкости в изучении этих подходов. Это значит, что разработчики могут применять существующие инструментальные средства XML. Таким образом, DTDs - это помеха для программистов, поскольку для того, чтобы определять свои схемы XML, они должны изучить дополнительный синтаксис. Но этим дело не заканчивается - использование DTDs имеет более серьезные ограничения.

DTDs в некоторой степени ограничены в выразительности; следовательно, их невозможно использовать для проверки допустимости некоторых структур XML-документа. Например, для следующего XML-документа:


<TennisMatch tournament='US Open'>
 <Competition type='Doubles' gender='Female'>
   <Player name='Venus Williams'/>
   <Player name='Serena Williams'/> ....
   <Player name='Martina Hingis'/>
   <Player name='Lindsey Davinport'/>
 </Competition>
</TennisMatch>

с DTD было бы невозможно объявить, что элемент Competition может иметь только четное число элементов Player. Рассмотрим еще один пример:


<shortStory author='AUTHOR1'>
  <character name='CHARACTER1'/>
  <character name='CHARACTER2'>
</shortStory>

<anthology author='AUTHOR1'>
  <shortStory>
    <character name='CHARACTER1'/>
    <character name='CHARACTER2'>
  </shortStory>
</anthology>

Для подобного документа в DTD невозможно задание следующего ограничения: элемент shortStory может содержать атрибут author, только если он не является наследником элемента antholog.

Эти недостатки DTD не остались незамеченными: сейчас специалисты консорциума W3C разрабатывают язык XML Schema (в настоящий момент он имеет статус рабочей Рекомендации W3C), который обладает большей выразительностью и мощью по сравнению с DTDs. Язык XML Schema является XML-приложением и, очевидно, станет стандартным способом формального объявления схем XML. Тем не менее, стоит обратить внимание на

RELAX

(REgular LAnguage description for XML, Регулярный язык описания XML), альтернативный язык описания схемы, разработанный Мурата Макото (Murata Makoto). Технический отчет об этом языке был представлен на рассмотрение Международной организации стандартизации (International Standardization Organization). В предыдущих статьях XML.com уже рассказывалось о RELAX. Пока XML Schema не будет одобрен как стандарт описания схемы, используются другие альтернативы, такие как RELAX и Schematron (они будут применяться и после того, как это произойдет). По моему мнению, Schematron - наиболее обещающий из них.

 

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"Долг платежом красен, а сайт контентом прекрасен."

Опрос

Какими социальными сетями Вы пользуетесь?

Vkontakte.ru
Одноклассники
Мой Мир - mail.ru
Google Plus
Facebook
ЖЖ
Другие
Не пользуюсь