OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Relative Namespaces



>>   <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