Атрибуты [XML-стандарты]

Атрибуты позволяют добавлять сведения об элементе с помощью пар «имя-значение». Атрибуты часто используются для определения тех свойств элементов, которые не считаются содержимым элемента, хотя в некоторых случаях (например HTML-элемент img) содержимое элемента определяется значениями артибута.

Атрибуты могут отображаться в открывающих или пустых тегах, но не в закрывающих тегах. Синтаксис выглядит следующим образом.

<elementName att1Name="att1Value" att2Name="att2Value"...>

или

<elementName att1Name="att1Value" att2Name="att2Value".../>

Атрибуты должны имет и имя, и значение. Имена без значений не допускаются. Элемент не может иметь два атрибута с одинаковым именем. Так как порядок, в котором атрибуты появляются внутри элемента, в XML не учитывается, он может не сохранится после обработки синтаксическим XML-анализатором.

Как и имена элементов, имена атрибутов учитывают регистр и должны начинаться с буквы или символа подчеркивания. Остальная часть имени может содержать буквы, цифры, дефисы, символы подчеркивания и точки.

Примечание

Двоеточия зарезервированы для использования с пространствами имен.Дополнительные сведения о том, какие символы Юникод являются допустимыми буквами и цифрами, см. в приложении Б спецификации XML.

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

Наконец, кавычки должны быть экранированы. Спецификации XML позволяют использовать одинарные или двойные кавычки для указания атрибутов, однако тип использованных кавычек должен быть одинаковым с обеих сторон значения атрибута. Заключения значений атрибутов в кавычки обязательно. Синтаксические XML-анализаторы просто отклоняют документы, в которых значения атрибутов не заключены в кавычки, и возвращают ошибку.

Если для указания значения атрибута используются одинарные кавычки, необходимо представить одинарные кавычки внутри значения атрибута с помощью ссылки на сущность &apos;.

<myElement contraction='isn&apos;t' />

Если для указания значения атрибута используются двойны кавычки, необходимо представить двойные кавычки внутри значения атрибута с помощью ссылки на сущность &quot;.

<myElement question="They asked &quot;Why?&quot;" />

Можно использовать двойные кавычки внутри значений атрибутов, заключенных в одинарные кавычки, и наооборот, как показано в следующих примерах.

<myElement contraction="isn't" />
<myElement question='They asked "Why?"' />

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

<myElement contraction="isn't" question='They asked "Why?"' />

Синтаксические XML-анализаторы не сохраняют пробелы в значениях атрибутов, но сохраняют пробелы внутри текстового содержимого элемента. Выполняющее проверку средство синтаксического анализа, имеющее доступ к DTD, замещает все пробелы в значении атрибута с типом, отличающимся от CDATA, одним пробелом. Начальные и конечные пробелы вырезаются.