2.2.1 [NamespacesXML1.1] Section 3, Declaring Namespaces

C0001:

The specification states:

 Definition: A namespace (or more precisely, a namespace binding) is declared using 
 a family of reserved attributes. Such an attribute's name must either be xmlns or 
 begin xmlns:. These attributes, like any other XML attributes, may be provided 
 directly or by default.

MSXML3 and MSXML6

The namespace attributes can only be provided directly and not by default.

C0002:

The specification states:

 The attribute's normalized value MUST be either a URI reference — the namespace 
 name identifying the namespace — or an empty string. The namespace name, to serve 
 its intended purpose, SHOULD have the characteristics of uniqueness and 
 persistence. It is not a goal that it be directly usable for retrieval of a schema 
 (if any exists). Uniform Resource Names [RFC2141] is an example of a syntax that is 
 designed with these goals in mind. However, it should be noted that ordinary URLs 
 can be managed in such a way as to achieve these same goals.

MSXML3 and MSXML6

The normalized value of the namespace declaration can only be set as the value of default namespace xmlns but not any other specific namespace such as xmlns:xxx.

C0003:

The specification states:

 The prefix xml is by definition bound to the namespace name 
 http://www.w3.org/XML/1998/namespace. It MAY, but need not, be declared, and MUST 
 NOT be bound to any other namespace name. Other prefixes MUST NOT be bound to this namespace name, and it MUST NOT be declared as the default namespace.

MSXML3 and MSXML6

The following clarifications apply:

  • The prefix xml cannot be declared even if the namespace name to bind to is declared.

  • Other prefixes can be bound to the namespace name, and it can be declared as the default namespace.