Атрибуты [XML-стандарты]
Атрибуты позволяют добавлять сведения об элементе с помощью пар «имя-значение». Атрибуты часто используются для определения тех свойств элементов, которые не считаются содержимым элемента, хотя в некоторых случаях (например HTML-элемент img) содержимое элемента определяется значениями артибута.
Атрибуты могут отображаться в открывающих или пустых тегах, но не в закрывающих тегах. Синтаксис выглядит следующим образом.
<elementName att1Name="att1Value" att2Name="att2Value"...>
или
<elementName att1Name="att1Value" att2Name="att2Value".../>
Атрибуты должны имет и имя, и значение. Имена без значений не допускаются. Элемент не может иметь два атрибута с одинаковым именем. Так как порядок, в котором атрибуты появляются внутри элемента, в XML не учитывается, он может не сохранится после обработки синтаксическим XML-анализатором.
Как и имена элементов, имена атрибутов учитывают регистр и должны начинаться с буквы или символа подчеркивания. Остальная часть имени может содержать буквы, цифры, дефисы, символы подчеркивания и точки.
Примечание
Двоеточия зарезервированы для использования с пространствами имен.Дополнительные сведения о том, какие символы Юникод являются допустимыми буквами и цифрами, см. в приложении Б спецификации XML.
Значения атрибутов должны соответствовать тем же правилам, что и обычное текстовое содержимое, плюс некоторым дополнительным ограничениям. Значения атрибутов могут содержать только текст, но не разметку элементов. В значениях атрибутов допускаются ссылки на сущности и символы. Разделы CDATA не допускаются.
Наконец, кавычки должны быть экранированы. Спецификации XML позволяют использовать одинарные или двойные кавычки для указания атрибутов, однако тип использованных кавычек должен быть одинаковым с обеих сторон значения атрибута. Заключения значений атрибутов в кавычки обязательно. Синтаксические XML-анализаторы просто отклоняют документы, в которых значения атрибутов не заключены в кавычки, и возвращают ошибку.
Если для указания значения атрибута используются одинарные кавычки, необходимо представить одинарные кавычки внутри значения атрибута с помощью ссылки на сущность '.
<myElement contraction='isn't' />
Если для указания значения атрибута используются двойны кавычки, необходимо представить двойные кавычки внутри значения атрибута с помощью ссылки на сущность ".
<myElement question="They asked "Why?"" />
Можно использовать двойные кавычки внутри значений атрибутов, заключенных в одинарные кавычки, и наооборот, как показано в следующих примерах.
<myElement contraction="isn't" />
<myElement question='They asked "Why?"' />
Также можно использовать разные типы кавычек в разных значениях атрибутов внутри одного элемента.
<myElement contraction="isn't" question='They asked "Why?"' />
Синтаксические XML-анализаторы не сохраняют пробелы в значениях атрибутов, но сохраняют пробелы внутри текстового содержимого элемента. Выполняющее проверку средство синтаксического анализа, имеющее доступ к DTD, замещает все пробелы в значении атрибута с типом, отличающимся от CDATA, одним пробелом. Начальные и конечные пробелы вырезаются.