[jdom-interest] newbie question

bob mcwhirter bob at werken.com
Thu Dec 5 05:14:39 PST 2002


> Here a trivial example to illustrate my use case:
> 1. The user enters an XPath expression such as ".//foo:bar"
> 2. The user selects a node on which apply the XPath, for example <a> and <b> 
> in the following document:
> <doc>
>    <a xmlns:foo="urn:abc:xyz">
>      <x>
>        <bar>bar 1</bar>
>      </x>
>    </a>
>    <b xmlns:foo="urn:xyz:abc">
>      <y>
>        <bar>bar 2</bar>
>      </y>
>    </b>
> </doc>
> 
> I then need a context-dependant dynamic namaspace resolution as both <a> and 
> <b> declare the same prefix for different namespaces. Hence the 
> NamespaceContext implementation that needs to access the context object.

That seems like a massive mis-use of namespaces and prefix bindings.

The prefixes in an XPath are in no way related to the prefixes used in 
a document.  The theory is that a user should be able to write:

	.//goober:bar

and denote that "goober" maps to "urn:xyz:abc" and still select the
correct nodes from the document, regardless of the doc's own prefix->uri
mappings.

It really seems that your use-case is more of an ignore-namespaces functionality,
where you really only check the local-name of an element.

Would an ignoreNamespaces(boolean) satisfy your needs better?

> > So, in this case, you pass your own magical VariableContext into
> > the evaluation.  You can consider the VariableContext to be your
> > applicate object.  You just have to implement the VariableContext
> > interface on whatever object you care to pass around.
> 
> How can this helps me solving the NamespaceContext problem? 

You're right, it wouldn't solve your problem.  

	-bob




More information about the jdom-interest mailing list