Узлы атрибутов
С каждым узлом элемента связан набор узлов атрибутов. При этом, хотя сам элемент является каждого из этих узлов атрибутов, узел атрибута непосредственным потомком своего родительского элемента не является. Замечание: В этом заключается отличие от модели DOM, где элемент, владеющий атрибутом, родителем этого атрибута не считается (см. ).
Элементы не могут совместно использовать узлы атрибутов: Если один узел элемента отличается от другого, то ни один из узлов атрибутов, относящихся к первому узлу элемента, не может совпасть ни с одним узлом атрибута, относящимся ко второму узлу элемента. Замечание: Оператор = проверяет, имеют ли два узла одно и то же значение, однако не проверяет, являются ли они одним и тем же узлом. Таким образом, атрибуты двух различных элементов можно сравнивать с помощью оператора =, даже несмотря на то, что они представлены различными узлами.
Атрибут, подставляемый по умолчанию, обрабатывается точно так же, как атрибут, указанный явно. Если для данного типа элемента в DTD атрибут был декларирован со значением по умолчанию #IMPLIED, однако в элементе этот атрибут представлен не был, считается, что в наборе атрибутов указанного элемента нет узла для этого атрибута.
Некоторые атрибуты, такие как xml:lang и xml:space, имеют семантику, которая распространяется на все элементы, являющиеся потомками элемента с этим атрибутом (если затем семантика не была переопределена таким же атрибутом в другом элементе, являющемся его потомком). Однако это не накладывает ограничений на местоположение узлов атрибутов в дереве документа: любой элемент имеет узлы только тех атрибутов, которые либо были явно указаны в начальном тэге или тэге пустого элемента, относящихся в этому элементу, либо были явно декларированы в DTD со значением по умолчанию.
Узел атрибута имеет и . получается при обработке , указанного в соответствующем тэге XML документа согласно Рекомендации XML Namespaces . Если атрибута не имеет префикса, URI пространства имен для имени атрибута будет нулевым. Замечание: Согласно нотации в Приложении A.3 документа , локальная часть расширенного имени соответствует атрибуту name элемента ExpAName, URI пространства имен расширенного имени соответствует атрибуту ns элемента ExpAName и будет нулевым, если атрибут ns в элементе ExpAName опущен.
Узел атрибута имеет . нормализовано в соответствии с Рекомендацией XML . Не предусмотрено специальной обработки для атрибута, чье нормализованное значение становится строкой нулевой длины - результатом будет узел атрибута, чьим становится строка нулевой длины. Замечание: во внешнем DTD или внешней сущности параметра могут декларироваться атрибуты по умолчанию. Согласно рекомендации XML, если процессор XML не является проверяющим, он не обязан читать внешние DTD и внешние параметры. Соответственно, с некоторыми непроверяющими XML процессорами могут не работать стили и другой функционал, предполагающий, что дерево XPath содержит значения атрибутов по умолчанию, декларированные во внешнем DTD или сущности параметра.
Для атрибутов, декларирующих пространства имен, соответствующих узлов атрибутов не предусмотрено (см. ).