[Home] [By Thread] [By Date] [Recent Entries]


[Elliotte Rusty Harold]

> Consider the following document:
>
> <root xmlns="[^^^^||||]">
> ...
> </root>
>
> All of the characters used as values of the xmlns attribute are
> illegal in namespace URIs according to RFC 2396 and legal in XML
> attribute values.
>
> Is this document namespace well-formed?
>
> I've been hunting through the Namespaces spec and I can find no BNF
> grammar production or namespace constraint that indicates the value
> of an xmlns or xmlns:prefix attribute actually has to be a legal URI
> reference. They key seems to be section 6, which leaves out any
> restriction on namespace names as part of the definition of
> conformance.
>

Seems to me it is covered in section 1:

1) a namespace identifier is "identified by a URI reference [RFC2396] "
2) ... "URI references can contain characters not allowed in names, so
cannot be used directly as namespace prefixes".

and in Section 2:

 3) "[Definition:] The attribute's value, a URI reference, is the namespace
name identifying the namespace."

As I read  these passages, they make it clear that the string identifying a
namespace must comply with RFC 2396.  Since the namespace Rec does not use
the term "well-formed", it does not change the meaning of "well-formed".
Also it does not prescribe error behavior, so that must be up to the
application.

> What have I missed? Where does the spec normatively require that the
> value of an xmlns attribute actually be a URI reference?

Item 3) clearly normatively constrains the attribute value (at least to me).

>If it does not so require, then I still wouldn't recommend that people use
> non-URIs as namespace names, but I might have to allow for that
> possibility in my software.
>

I'd allow for it anyway.  Is there anything as misused as URIs?

Cheers,

Tom P


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member