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