В XML, наряду с концепцией «хорошо оформленного документа», рассматривается концепция «действительного XML документа».
Правильный документ гарантирует целостность структуры данных. Благодаря этому значительно упрощается доставка и обмен данными, которые корректируются параметрами XSLT.
Для определения правильности документа необходимо:
- Определить использование только заданного набора дескрипторов.
- Проверить, чтобы порядок следования элементов и их атрибутов полностью соответствовал содержанию документа или определенным правилам.
Другими словами, в XML-документе должна быть правильно реализована схема документа, определяющая его структуру.
Как правильно определить структуру. Вернемся к примеру создания XML документа для инструкции по мытью машины. Документ XML хорошо оформлен, но с точки зрения правильности он избыточен (на каждый ингредиент отводится по два элемента). Логично было бы использовать один элемент с атрибутом
<items quantity= “…”>.
А XML код будет выглядеть так:
|
|
<?xml version= “1.0” encoding= “windows-1251”>
<!--Это XML код инструкции-->
<directions>
<title>Инструкция, как помыть машину</title>
<ingredients>
<items quantity= “50 л”>Вода</items>
<items quantity= “0,5 л”>Шампунь</items>
<items quantity= “0,3 л”>Воск</items>
</ingredients>
<instrument>
<items quantity= “1 шт”>Ведро</items>
<items quantity= “1 шт” >Мочалка </items>
<items quantity= “2 шт” >лоскут для полировки</items>
</instrument>
<actions>
Машину ополоснуть водой, затем нанести пену и оставить на 5 минут. Пену смыть. Нанести на поверхность кузова воск, вытереть корпус машины насухо
</actions>
</directions>
- Контроль типов данных (достигается благодаря использованию соответствующей схемы)
Данные XML документа, которые используются при обмене, должны использовать один формат, для предотвращения путаницы.
Например, дата может быть оформлена в одном из следующих форматов
mmddyy yyddmm
ddmmyy yymmdd
существует несколько подходов к контролю типов данных. Позднее будем рассматривать технологии XDR и DTD.
К следующим типам данных может потребоваться проверка правильности. Необходимость проверки зависит от того, обмен какой информацией осуществляется
Тип данных | Описание |
Boolean | Логический тип, значения ИСТИНА / ЛОЖЬ |
Char | Один символ |
String | Строка символов |
Float | Действительные числа |
Int | Целые числа |
Date | Дата в формате YYYY-DD-MM |
Time | Время в формате HH-MM-SS |
Id | Текст, уникальным образом идентифицирующий элемент |
Idref | Ссылка на идентификатор |
Enumeration | Последовательность значений, из которой можно выбрать любоезначение |
- Осуществить контроль целостности данных для обеспечения оптимального обмена информацией через Web с помощью транзакций
Если речь идет о проверке правильности оформления документа, то речь идет не о представлении данных, а о структуре данных.
|
|
В ЧЕМ СОСТОИТ ОТЛИЧИЕ СТРУКТУРЫ ДОКУМЕНТА ОТ СТРУКТУРЫ ДАННЫХ?
Структура документа позволяет читателю быстро понять, в каком именно виде представил информацию автор документа.
Структуры данных указывают путь компьютерным приложениям путь к данным, которые содержаться в различных контейнерах целго документа. В структуре данных не содержится определение важности одного компонента документа по отношению к другому. Все компоненты равны.
Контрольные вопросы:
- Каково отличие между хорошо оформленными и правильными документами XML?
Хорошо оформленный документ отвечает всем правилам синтаксиса документа. Правильный документ – хорошо оформленный документ, соответствующий всем ограничениям, которые налагает на него связанная с ним структурная схема.
- Какие ограничения может использовать программист при создании схемы для документа XML?
Схема четко определяет имя и структуру корневого элемента, включая спецификацию его дочерних элементов. Программист может задать, какие элементы, и в каком количестве обязательны, а какие – нет. Схема определяет, какие элементы (и их допустимые значения) содержат атрибуты, а какие нет.
- Какие языки описания схем могут использовать авторы XML документов?
Используется несколько видов языков описания схем: DTD, XDR, XSD.
- Можно ли использовать схемы для контроля над типами данных в потоке данных XML?
Могут ограничивать типы данных такие схемы как XDR, XSD. Подход с использованием DTD не позволяет легко создавать правила использования типов данных
- Каково различие между структурой документа и структурой данных?
Структура документа позволяет читателю быстро понять, о чем идет речь в документе, а структура данных – показать программе обработчику, где брать данные.
- Что такое парсер?
Парсер – программа (в спецификации консорциума W3C называется обработчиком XML), которая интерпретирует символ за символом. Существует двва типа парсеров:
– проверяют форматирование документов, т.е. их соответствие синтаксическим правилам;
– сначала проверяют форматирование документа, а затем их соответствие всем ограничениям, указанным в связанных с ним документах.