[
Lists Home |
Date Index |
Thread Index
]
[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
|