[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Relative Namespaces
- From: Richard Tobin <richard@cogsci.ed.ac.uk>
- To: xml-dev@lists.xml.org
- Date: Thu, 15 Mar 2001 13:56:23 +0000 (GMT)
>> <foo:bar xmlns:foo="http://foo.com">
>> <foo:baz xmlns:foo=""/>
>> </foo:bar>
As already noted, this is illegal according to the namespaces spec.
>I think that this is a way to have the foo:baz element have no namespace
>rather than that of its parent. How else could you indicate that, if an empty
>string were different from no namespace?
You would indicate it by not using foo:baz! The *only* way to get
an element that is in no namespace is by using an unprefixed name:
<foo:bar xmlns:foo="http://foo.com">
<baz xmlns=""/>
</foo:bar>
(The xmlns="" won't of course be necessary if nothing outside binds
the default namespace.)
Is it a problem that prefixed elements can't be in no namespace? Not
a serious one I think, just a small non-orthogonality. In particular,
since they can't happen, you never have to worry about fixing them up
when cutting-and-pasting them between documents. For example, if you
want to insert this document:
<foo/>
into this element:
<bar xmlns="http://example.org">
</bar>
then it's important that you can undeclare the default namespace:
<bar xmlns="http://example.org">
<foo xmlns=""/>
</bar>
But you never need to be able to do the same when inserting:
<abc:foo/>
since it cannot have been in no namespace to start with.
-- Richard