Undeclaring xml: prefix

Section 3 contains the following language which was copied from the 1.0 spec

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.


This is not sufficient for Namespaces 1.1. In particular it does not 
forbid the undeclaration of the xml prefix. The following appears to be 
legal following a strict reading of this draft:

xmlns:xml=""

This is because section 6.1 states, "The attribute value in a namespace 
declaration for a prefix /MAY/ be empty. This has the effect, within the 
scope of the declaration, of removing any association of the prefix with 
a namespace name. " In other words the empty string is not a namespace 
name and therefore it is not illegal to say xmlns:xml="".


I assume this is an oversight, not a deliberate design decision. In this 
case, it can easily be fixed by adding a sentence to section 3 along 
these lines:

The xml prefix MUST NOT be undeclared.

--
Elliotte Rusty Harold

Received on Sunday, 30 November 2003 11:34:22 UTC