Трансформация XML документов — страница 10

  • Просмотров 3870
  • Скачиваний 307
  • Размер файла 49
    Кб

может автоматически вставлять необходимые поля и предлагать разработчику документа списки допустимых групп элементов. ● Разработчику нужна надежная структура для развивающегося языка или семейства языков. Модель документа предоставляет простой способ создания стандарта, такого, например, как HTML Version 4.0. Отслеживание новых версий языка жизненно важно для программ XML, поскольку старые программы могут оказаться

несовместимыми с более новыми версиями языка. Модели документов можно объединить для создания составных языков. Например, DocBook использует модель таблиц CALS, а не пытается определить свою. Конечно, могут быть основания и не использовать модель документов. Сопровождение модели может оказаться неудобным, особенно в начале, когда язык подвергается тестированию и дальнейшей разработке. Она может замедлить обработку, например, если

браузеры XML должны загружать модель документа из сети. Наконец, наличие авторитарной модели, указывающей, какие элементы можно использовать, а какие – нет, может просто сломать стиль работы. А, кроме того, нужно потратить силы на то, чтобы разработать модель или найти готовую, отвечающую потребностям. В конечном счете, автор сам решает, использовать модель документа или нет: XML спроектирован так, что позволяет работать в любом

случае. Некоторые модели документов (а именно, DTD) не очень хорошо работают с пространствами имен(пространства имен являются способом группировки элементов из различных источников, например, встраивания уравнений MathML внутрь документов HTML). Это создает проблемы, если DTD стремятся ограничить применяемые автором элементы предсказуемым конечным множеством. В настоящий момент исчерпывающего решения этой дилеммы нет. Невозможно

предвидеть все виды пространств имен и объявить их элементы и атрибуты внутри своего DTD – их может быть бесконечное число. 4. Documents Type Definitions (DTD) В XML-документах DTD определяет набор действительных элементов, идентифицирует элементы, которые могут находиться в других элементах, и определяет действительные атрибуты для каждого из них. Синтаксис DTD весьма своеобразен и от автора-разработчика требуются дополнительные усилия при

создании таких документов(сложность DTD является одной из причин того, что использование SGML, требующего определение DTD для любого документа, не получило столь широкого распространения как, например, HTML). Как уже отмечалось, в XML использовать DTD не обязательно - документы, созданные без этих правил, будут правильно обрабатываться программой-анализатором, если они удовлетворяют основным требованиям синтаксиса XML. Однако контроль