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