XML - статьи


A.1 Недостаток обычного пространства имен


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

<section><title>Book-SigningEvent</title>

<signing>

  <author title="Mr" name="Vikram Seth" />

  <book title="A Suitable Boy" price="$22.95" /></signing>

<signing>

  <author title="Dr" name="Oliver Sacks" />

  <book title="The Island of the Color-Blind" price="$12.95" /></signing>

</section>

В данном примере название title появляется в разметке три раза, однако очевидно, что само по себе оно дает недостаточно информации для правильной обработки документа программным модулем.

Другая проблемная область происходит от использования "глобальных" атрибутов, что иллюстрируется следующим примером, в котором фрагмент XML документа необходимо вывести на экран с помощью стиля CSS:

<RESERVATION>

 <NAME HTML:CLASS="largeSansSerif">Layman, A</NAME>

 <SEAT CLASS="Y" HTML:CLASS="reallyImportant">33B</SEAT>

 <DEPARTURE>1997-05-24T07:55:00+1</DEPARTURE></RESERVATION>

В этом случае атрибут CLASS, описывающий класс пассажира и принимающий такие значения, как "J", "Y" и "C", на всех уровнях семантики отличается от атрибута HTML:CLASS, который используется для моделирования всего синтаксического богатства HTML путем замены ограниченного набора элементов иерархией подклассов.

Язык XML 1.0 не имеет встроенного механизма декларирования "глобальных" атрибутов. Такие конструкции, как атрибут CLASS в HTML, становятся глобальными только при их тщательном описании и соответствующей интерпретации со стороны HTML приложений. Вместе с тем, атрибуты, главной отличительной чертой которых является уникальность имен, как правило, можно найти во многих приложениях.



Содержание раздела