[Bug 800] xmlns attribute for XML namespace not allowed

http://www.w3.org/Bugs/Public/show_bug.cgi?id=800


jacksonj@duq.edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |




------- Comment #4 from jacksonj@duq.edu  2007-01-05 22:23 -------
The XHTML validator currently complains about the html tag in a document
beginning:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:xhtml="http://www.w3.org/1999/xhtml">

According to http://www.w3.org/TR/2006/REC-xml-names-20060816 Section 2.1, "An
attribute-based declaration syntax is provided to bind prefixes to namespace
names and to bind a default namespace that applies to unprefixed element names;
these declarations are scoped by the elements on which they appear so that
different bindings may apply in different parts of a document. Processors
conforming to this specification MUST recognize and act on these declarations
and prefixes."

This sounds to me (as claimed before by someone else in Comment #2) like the
XML Namespaces rec is saying that xmnls and xmlns-prefixed attributes do not
need to be included in any ATTLIST of the DTD in order to be valid; they must
be recognized. An attribute-based syntax is used, but these are not standard
attributes.

Think of it this way: if a DTD had an ATTLIST containing the single attribute
xmlns:hmm, would that mean that I could include a namespace declaration such as
xmnls:hmm="http://www.example.org" but I couldn't use a namespace declaration
such as xmlns:duh="http://www.example.com"?  Of course not: surely in any
document conforming with XML Namespaces I should be able to choose any
namespace prefix I want (as long as it isn't reserved).  So xmlns:duh must also
be a valid attribute.

This means that xmlns-prefixed attribute specifications cannot be treated the
same way for validation purposes as are normal attributes by looking for them
in a DTD.  And in light of the quote above, I think that it's clear that xmlns
and xmlns-prefixed attributes must be considered valid on every tag in every
document conforming with XML Namespaces.

So I believe that it is wrong for the XHTML validator to complain about the
html tag above as well as about the original markup in the original bug report
and that in Comment #2.  I don't think that this is a problem with the
XHTML/XML/XML Namespaces recommendations, but with how the validator is
implementing them.

Received on Friday, 5 January 2007 22:23:16 UTC