2.2.7 [W3C-XSLT] Section 7.1.3, Creating Attributes with xsl : attribute
C0006:
-
The name attribute is interpreted as an attribute value template. It is an error if the string that results from instantiating the attribute value template is not a QName or is the string xmlns. An XSLT processor may signal the error; if it does not signal the error, it must recover by not adding the attribute to the result tree.
MSXML3 and MSXML6
An error is signaled when the string that results from
instantiating the attribute value template is not a QName or is the string xmlns
.
C0007:
-
XSLT processors may make use of the prefix of the QName specified in the name attribute when selecting the prefix used for outputting the created attribute as XML; however, they are not required to do so and, if the prefix is xmlns, they must not do so. Thus, although it is not an error to do: <xsl:attribute name="xmlns:xsl" namespace="whatever">http://www.w3.org/1999/XSL/Transform</xsl:attribute> it will not result in a namespace declaration being output.
MSXML3 and MSXML6
A new prefix for the namespace is automatically generated.
C0008:
-
The following are all errors: • Adding an attribute to an element after children have been added to it; implementations may either signal the error or ignore the attribute. • Adding an attribute to a node that is not an element; implementations may either signal the error or ignore the attribute. • Creating nodes other than text nodes during the instantiation of the content
-
of the xsl:attribute element; implementations may either signal the error or ignore the offending nodes.
MSXML3 and MSXML6
No error is signaled. Instead, any attribute added to an element after children have been added to it is ignored. Likewise, any node created other than text nodes during the instantiation of the content of the xsl:attribute element is ignored.