You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Marcel Reutegger (JIRA)" <ji...@apache.org> on 2005/10/06 11:15:49 UTC

[jira] Commented: (JCR-241) Remapping the default namespace

    [ http://issues.apache.org/jira/browse/JCR-241?page=comments#action_12331476 ] 

Marcel Reutegger commented on JCR-241:
--------------------------------------

IMO the spec is not very clear about terms like 'default namespace' and 'empty namespace' (which means no namespace).

So, this is what I understand:

The XML namespace specification actually does not allow the empty String as a namespace URI [1]. That is, JCR names without a prefix do not have a namespace assigned. The last statement is not 100% consistent with the JCR spec, because sometimes the spec states that names without a prefix belong to the default namespace. But because the default namespace is the empty namespace I assume my statement is true.

Furthermore, an empty namespace cannot be remapped! If a name does not have a namespace, then you cannot assign it a different prefix. It simply doesn't have a prefix or namespace you can remap.

In that sense the call:
session.setNamespacePrefix("foo", "");
is not possible and must throw in any case. Assigning a prefix to the empty namespace does not make sense. Translating this into an xml document, this would actually remove the namespace mapping to the prefix "foo" [2].

Does this all make sense? Do we have a XML expert on this list? Please raise your voice ;)

[1] http://www.w3.org/TR/xml-names11/#iri-use
[2] http://www.w3.org/TR/xml-names11/#scoping (last example)

> Remapping the default namespace
> -------------------------------
>
>          Key: JCR-241
>          URL: http://issues.apache.org/jira/browse/JCR-241
>      Project: Jackrabbit
>         Type: Wish
>     Reporter: Jukka Zitting
>     Priority: Minor
>      Fix For: 1.0

>
> I'm not sure if this is a bug, feature or standard behaviour, but currently it is not possible to remap the default namespace to some other prefix. The following code throws a NamespaceException:
>     session.setNamespacePrefix("foo", "");
> At least the Session.setNamespacePrefix() javadoc doesn't seem to prohibit changing the prefix of the default namespace and I couldn't find anything more specific in the JCR specification document. Restrictions are only placed on remapping the xml namespace.
> Note that the current nodetype code is actually relying on the default namespace being mapped to the empty prefix, so changing this would require small changes there as well.
> I haven't really run into any cases where I'd have needed such functionality, but it would be nice to clarify this issue.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira