Представление свойств
Обнаружив свойство в своей информационной модели, мы сталкиваемся с классической дилеммой: в документе XML представлять его с помощью атрибута или вложенного (порожденного) элемента. Приняв решение по этому поводу, можно приступать к остальным задачам.
Рассмотрим практические преимущества и недостатки каждого подхода.
Атрибуты XML | С помощью определений DTD можно ограничивать принимаемые значения; полезно, если имеется небольшое количество разрешенных значений, таких как "yes" и "nо" | Принимает только простые строковые значения |
В DTD можно определить значение по умолчанию | Отсутствует поддержка метаданных (или атрибутов у атрибутов) | |
Использование атрибутов типа ID и IDREF | Неупорядоченность | |
Небольшие требования к месту на диске (существенно, когда по сети посылаются гигабайты информации) | ||
Для некоторых типов данных (например, NMTOKENS) возможна нормализация пустых пространств, что избавляет приложение от этих действий | ||
Легко обрабатывать с помощью интерфейсов DOM и SAX | ||
Порожденные элементы | Поддержка произвольно сложных и повторяющихся значений | Несколько более высокие требования к дисковому пространству |
Упорядоченность | Более сложное программирование | |
Поддержка "атрибутов у атрибутов" | ||
Возможность расширения при изменении модели данных |
Баланс всех факторов зависит от конкретного приложения.