Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика XML_часть 1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
326.14 Кб
Скачать

Задание атрибутов для элементов

В начальный тег элемента, либо в тег пустого элемента вы можете включить одно или несколько описаний атрибутов. Описание атрибута представляет собой пару имя – значение, связанную с данным элементом. Например, следующий элемент PRICE включает атрибут с именем Type, которому присвоено значение retail:

<PRICE Type="retail">$10.95</PRICE>

Следующий элемент BOOK включает два атрибута, Category и Display:

<BOOK Category="fiction" Display="emphasize">

<TITLE>The Marble Fauh</TITLE>

<AUTHOR>Nathaniel Hawthorne</AUTHOR>

<BINDING>trade paperback</BINDING>

<PAGES>473</PAGES>

<PRICE>$10.95</PRICE>

</BOOK>

Следующий пустой элемент включает атрибут с именем Source, который указывает на имя файла, содержащего картинку, которую следует отобразить:

<COVER_IMAGE Source="Faun.gif" />

Задание атрибутов обеспечивает альтернативный способ включения информации в элемент. Обычно вы помещаете все относящиеся к элементу данные, которые хотите отобразить, внутри содержимого элемента. Атрибуты же используются для хранения различных свойств элемента, которые не обязательно будут отображены (например, категория, или указания по отображению). В спецификации XML не установлено строгих разграничений относительно типа информации, которую можно описывать с помощью атрибутов или внутри содержимого элемента.

Правила для создания атрибутов

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

  • имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать или не следовать другие буквы, цифры, символы точки (.), тире (–) или подчеркивания;

  • спецификация XML оговаривает, что имена атрибутов, начинающиеся с префикса "xml" (в любом сочетании строчных или прописных букв), "зарезервированы для стандартного использования";

  • каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.

Например, следующие описания имен в стартовых тегах являются допустимыми:

<ANIMATION Filename="Waldo.ani">

<LIST _1stPlace="Sam">

<ENTRY Zip.Code="94941">

Приведенные ниже имена атрибутов недопустимы:

<!-- Дублирование имени атрибута внутри одного тега: -->

<ANIMATION Filename="Waldo1.ani" Filename="Waldo2.ani">

<LIST 1stPlace="Sam"> <!-- Первый символ не может быть цифрой -->

Примечание. В соответствии с XML-спецификацией двоеточие (:) в имени атрибута зарезервировано для задания пространства имен.

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

  • строка может быть заключена как в одинарные ('), так и в двойные кавычки (");

  • строка не может содержать внутри себя тот же символ кавычек, которыми она ограничена;

  • строка может содержать ссылку на символ или ссылку на внутренние примитивы общего назначения;

  • строка не может содержать символ < (Синтаксический анализатор может воспринять этот символ как начало описания XML-разметки.)

  • строка не может содержать символ &, если это не ссылка на символ или примитив.

<EMPLOYEE Status=""downsized""> <!-- Нельзя использовать символы-ограничители внутри строки. -->

<ALBUM Type="<CD>"> <!-- Нельзя использовать символ < внутри строки -->

<WEATHER Forecast="Cold & Windy"> <!-- Нельзя использовать символ &, если это не ссылка -->

Если вы хотите использовать двойные кавычки (") внутри значения атрибута, вам следует применить в качестве ограничителей одинарные кавычки ('), как показано в примере:

<EMPLOYEE Status='"downsized"'> <!-- Правильное значение атрибута. -->

Аналогично, чтобы включить одинарные кавычки в значение атрибута, следует использовать в качестве ограничителей двойные кавычки:

<CANDIDATE name="W.T. 'Bill' Bagley"> <!-- Правильное значение атрибута. -->

Если вы создаете корректно сформированный документ, не имеющий объявления типа документа, вы можете присвоить атрибуту любое значение, соответствующее приведенным выше правилам. Однако, если вы создаете описание типа документа и определяете внутри него атрибуты, то можете ограничить типы значений, которые могут быть присвоены конкретному атрибуту. Например, вы можете определить атрибут, которому могут быть присвоены только значения "yes" или "no". Таким образом, одно из преимуществ задания определенного типа информации через атрибуты элементов в отличие от задания через содержимое элемента заключается в том, что при этом вы можете обеспечить контроль надо всеми типами данных, которые могут быть присвоены атрибуту, и указываете синтаксическому анализатору учитывать эти ограничения типов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]