
- •Основной критерий для валидного документа
- •Требования корректности формирования и валидности
- •Преимущества использования валидных xml-документов
- •Добавление dtd
- •Форма записи dtd
- •Создание dtd
- •Объявление типов элементов
- •Форма записи объявления типа элемента
- •Описание содержимого элемента
- •Задание содержимого элемента
- •Символ Значение
- •Задание смешанного содержимого
- •Объявление атрибутов
- •Форма записи объявления списка атрибутов
- •Тип атрибута
- •Задание маркерного типа
- •Задание нумерованных типов
- •Объявление значения по умолчанию
- •Использование внешних подмножеств dtd
- •Использование только внешнего подмножества dtd
- •Использование и внешних, и внутренних подмножеств dtd
- •Условия игнорирование разделов внешнего подмножества dtd
- •Преобразование корректно сформированного документа в валидный
- •Сделаем документ валидным
Основы XML
5. Лекция: Создание валидных XML-документов: версия для печати и PDA Валидные XML-документы отвечают более строгому набору критериев, чем обычные корректно сформированные документы, с которыми вы имели дело в предыдущих лекциях. В этой лекции вы прежде всего познакомитесь с основными требованиями для валидных XML-документов и оцените преимущества валидных документов. Затем вы узнаете, как создавать объявление типа документа, которое требуется для всех валидных XML-документов. После этого будут представлены подробные инструкции по определению элементов и атрибутов в валидном документе. В завершение вы выполните упражнение по преобразованию документа, созданного вами в лекции 2, в валидный документ.
Основной критерий для валидного документа
Каждый XML-документ должен быть корректно сформированным, т.е. отвечать минимальным требованиям по составлению XML-документа. Если документ не является корректно сформированным, он не может считаться XML-документом.
Корректно сформированный XML-документ также может быть валидным. Валидным (valid) называется корректно сформированный (well-formed) документ, отвечающий двум дополнительным требованиям:
пролог документа должен содержать специальное объявление типа документа, которое содержит определение типа документа (DTD), задающее структуру документа;
остальной документ должен отвечать структуре, заданной в DTD.
В последующих разделах этой лекции, а также в лекции 6, вы узнаете, как создавать документы, отвечающие этим двум общим требованиям.
Требования корректности формирования и валидности
Требования корректности формирования представляют собой набор правил, определенных в спецификации XML, которым вы должны следовать – в дополнение к основным синтаксическим требованиям – чтобы создать правильно составленный документ. Поскольку XML-документ должен быть корректно сформированным, любое отклонение от требований корректности формирования считается фатальной ошибкой (fatal error). Если XML-процессор сталкивается с фатальной ошибкой, он должен остановить нормальную обработку документа и не пытаться ее возобновить.
Требования валидности представляют собой дополнительный набор правил в спецификации XML, которым вы должны следовать, чтобы создать валидный документ. Поскольку валидность является не обязательной для XML-документа, отклонение от требований валидности считается лишь ошибкой (error), но не фатальным сбоем. Если XML-процессор встречает ошибку, он может просто выдать сообщение о ней и продолжить выполнение обработки. Требования валидности состоят из специальных правил по созданию соответствующего объявления типа с его DTD, а также созданию документа, отвечающего описанию внутри вашего DTD.
Преимущества использования валидных xml-документов
Может показаться, что при создании валидного XML-документа выполняется ряд лишних действий: вы должны сначала полностью описать структуру документа в DTD, а затем создать сам документ, отвечающий всем спецификациям, содержащимся в DTD. Может сложиться впечатление, что гораздо проще непосредственно добавлять любые необходимые элементы и атрибуты, как вы это делали в примерах, работая с корректно сформированными документами в предыдущих лекциях.
Однако, если вы хотите быть уверенным, что ваш документ отвечает определенной структуре или набору стандартов, включение DTD, которое описывает эту структуру, дает возможность XML-процессору (например, Microsoft Internet Explorer 5) проверить, соответствует ли документ структуре. Другими словами, DTD обеспечивает стандартный шаблон для процессора, чтобы при проверке валидности он мог следовать требуемой структуре и гарантировать, что ваш документ соответствует установленным стандартам. Если какая-либо часть документа не отвечает DTD-спецификации, процессор может отобразить сообщение об ошибке, чтобы вы могли отредактировать документ и исправить несоответствия.
Использование валидных документов особенно полезно для проверки однородности среди группы схожих документов. Фактически, стандарт XML определяет DTD как "грамматику для определенного класса документов".
Предположим, компании, занимающейся публикацией в Web, требуется, чтобы все ее редакторы создавали XML-документы, отвечающие единой структуре. Создание одного DTD и включение его во все документы может обеспечить условия соответствия документов требуемой структуре, в то время как редакторы будут избавлены от необходимости добавлять новые элементы, помещать информацию в неправильном порядке, присваивать неправильные типы данных и т.д. Конечно, валидность документа должна быть проверена при его обработке процессором.
Включение DTD и проверка валидности имеют особое значение, если документ будет обрабатываться программой пользователя, ориентированной на определенную структуру документа. Если все пользователи программного обеспечения включат в свои XML-документы соответствующие DTD, и все документы пройдут проверку на валидность, то пользователи могут быть уверены, что их документы будут распознаны программой-обработчиком. Например, если группа математиков создает математические документы, которые будут отображаться специальной программой, все они могут включить в свои документы одинаковые DTD, которые содержат определения требуемой структуры, элементов, атрибутов и других компонентов.
На деле большинство реальных XML-приложений, список которых приведен в конце лекции 1, например, MathML, состоят из стандартного DTD, которое все пользователи приложения включают в свои XML-документы, чтобы при проверке валидности обеспечивалось соответствие структуре приложения, и документы были распознаны любой программой, разработанной для этого приложения.
Совет. Если вы открываете XML-документ (самостоятельный или с присоединенной таблицей стилей) непосредственно в Internet Explorer 5, процессор Internet Explorer 5 проверяет весь документ (в том числе объявление типа документа, если оно присутствует) на корректность формы составления, и выводит сообщение о фатальной ошибке при любом обнаруженном несоответствии. Однако процессор Internet Explorer 5 не проверяет документ на валидность.
Чтобы проверить документ на валидность, вы можете использовать сценарий проверки на валидность, приведенный в лекции 9 в разделе "Проверка валидности XML-документа". Вы можете прочесть приведенные в этом разделе указания сейчас, чтобы иметь возможность осуществлять проверку на валидность создаваемых вами XML-документов.