[jdom-interest] newbie question

Attila Szegedi szegedia at freemail.hu
Thu Dec 5 01:31:00 PST 2002

----- Original Message -----
From: "bob mcwhirter" <bob at werken.com>
To: "Laurent Bihanic" <laurent.bihanic at atosorigin.com>
Cc: <jdom-interest at jdom.org>
Sent: 2002. december 4. 18:27
Subject: Re: [jdom-interest] newbie question

> I can understand needing dynamically resolvable VariableContext, but you
> have namespace prefix->uri bindings that change between invocations?
> The NamespaceContext really should be considered (or at least I consider
> it) to be a static member of the XPath itself, and not really settable
> after-the-fact.

Actually, I have such a situation (altough it is admittedly a border case
but I still have to support it). Namely, the XML support in FreeMarker uses
JDOM and Jaxen. I keep a static cache of already compiled XPath objects,
keyed by the expression string. So, if one template has:
  ${doc.registerNamespace("x", "http://foo.com")}
  <assign bookNodes = doc("//x:book")>
and the other for some reason has:
  ${doc.registerNamespace("x", "http://bar.com")}
  <assign bookNodes = doc("//x:book")>

then both "//x:book" XPath expressions are mapped to the same instance of
XPath object (static cache, remember?), but depending on which template
they're invoked from, they'll have different namespace mappings. As I said,
a border case, but one I have to support since I can't be sure what are my
template authoring users up to :-)


More information about the jdom-interest mailing list