Re: [jxpath] Future of JXPath and DOM???

2005-02-09 Thread Jess Holle
So if such an optimization was added there would be a way to by-pass it 
as well?  [This can't just be if Xalan is not present -- as Xalan is 
present for other reasons.]

--
Jess Holle
Dmitri Plotnikov wrote:
Jess,
JXPath has always supported Xalan through JAXP DOM APIs.  What you may have 
seen in the source code of JXPath is some attempts to optimize JXPath when it 
is used specifically in combination with Xalan.  You would not be interested in 
that optimization, because it would only be applied to static DOM and take 
advantage of DTM.
Try using JXPath and let us know how it works out.
- Dmitri
Jess Holle [EMAIL PROTECTED] wrote:
P.S. Also, I must admit this message is somewhat of a test. If no one 
responds, then I can assume the JXPath community is not active enough to 
be worth considering over sticking with an old version of Xalan for the 
forseeable future.

Jess Holle wrote:
 

I am using Xalan 2.1.0 for XPath coverage presently -- behind a skinny 
wrapper API so we can change implementations fairly painlessly.

I'd like to use something more recent and was looking at JXPath, but I 
note that the sources contain TO_DO comments about using Xalan as 
the backing XPath implementation -- for the DOM case presumably.

Is this the plan? If not, what is?
If this is the plan, then there is no reason for me to switch from 
Xalan to JXPath -- as I only care about XPath usage against DOMs (not 
JDOM, other beans, etc).

You may ask why I'm on such an old Xalan or why I'm looking for 
something other than Xalan -- which are good questions...

Essentially, recent versions of Xalan are missing the boat on some 
important XPath use cases. Xalan 2.1.0 is the last version of Xalan 
which does not have immense performance penalties for my use cases. 
Specifically, my use case is:

1. Parse/compile XPath expressions.
2. Use these expressions against many different DOMs.
* I /rarely /use a given XPath against the same DOM (without
intervening changes) twice.
o I /often /use a given XPath against many, many
different DOMs.
* I /even more rarely /know that when I use an XPath on a DOM
it will not be changing prior to it being used again.
* I /often /need to use XPath to retrieve a list of DOM nodes
to be edited or deleted -- followed by edits directly via
DOM APIs and more use of other XPaths ad nauseum (e.g. based
on GUI picks).
After Xalan 2.1.0, the XPath portion of Xalan was optimized for the 
antithesis of this use case, i.e. it builds a DTM (document table 
model) for each DOM an XPath is used against -- which is a tremendous 
waste of time and memory if the XPath is all but certainly not going 
to be used against the given DOM (without intervening changes) more 
than once. I found cases of 500% performance improvement by moving 
back from more recent Xalan versions to 2.1.0 for these use cases! 
The Xalan team knows about this issue, but despite the fact that this 
directly affects the XPath API exposed in Java 1.5 this issue seems 
unimportant/uninteresting to them as compared to optimizing for the 
XSLT use case -- where the DTM approach makes sense since the DTM is 
formed once and acted upon by many XPaths many times.

Some time ago I looked at both JXPath and Jaxen as possible 
replacements for Xalan 2.1.0. Unfortunately, both of these XPath 
libraries had major issues with evaluating some rather simple XPath 
expressions at the time -- and I need good fidelity to the XPath 
standard (at least as good as Xalan 2.1.0). I believe Jaxen is at the 
same version now as it was when I last tested it, but JXPath has had 
an update or two since then -- so I was going to try again until I saw 
the aforementioned TO_DO in the source code. If JXPath is not going 
to be a long-term contender for the my use cases, then I just have to 
continue using Xalan 2.1.0 (which I've move to another package using 
Ant -- similar to what Sun has done in Java 1.5 -- so as not to 
conflict with any other Xalan versions).

So all that said, I'd appreciate any feedback as to:
* the intended direction of JXPath,
* the level of commitment to the XPath standard, and
* the level of commitment to supporting the non-XSLT DOM use case
outlined above.
--
Jess Holle
   

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
 




Re: [jxpath] Future of JXPath and DOM???

2005-02-09 Thread Jess Holle
Dmitri Plotnikov wrote:
Jess,
JXPath has always supported Xalan through JAXP DOM APIs.  What you may have 
seen in the source code of JXPath is some attempts to optimize JXPath when it 
is used specifically in combination with Xalan.  You would not be interested in 
that optimization, because it would only be applied to static DOM and take 
advantage of DTM.
Try using JXPath and let us know how it works out.
 

Dumb question (which I probably figured out last time I tried this 
stuff, but have no notes/recollection of):

   Is there an equivalent of Xalan's one-size-fits-all XObject  xobj =
   xpath.execute(...) mechanism in JXPath?
I'm looking for a CompiledExpression.getValue() that returns an Object 
for which:

  1. I know the various possible return types when this is applied to a
 DOM.
  2. The result is the most appropriate (as per the XPath standard) of
 the following:
 * NodeList or NodeIterator -- or something from which I can
   easily implement one or both of these interfaces
 * Boolean
 * Number
 * String
[I assume callers will apply includes castes within their XPath 
expressions as necessary where they expect a non-node result.]

Is there such a beast?
The one-API fits all (beans, JDOM, DOM, etc) approach makes this a bit 
hard for me to decipher.

--
Jess Holle


Re: [jxpath] Future of JXPath and DOM???

2005-02-09 Thread Dmitri Plotnikov
Jess,
 
First of all, this discussion is probably better suited to the commons-user 
mailing list.
 
As far as your specific questions are concerned, getValue() will always return 
a primitive value (Number, Boolean or String) when applied to DOM.  
selectSingleNode() will return either a primitive value or a DOM Node.
 
Regards,
 
- Dmitri


Jess Holle [EMAIL PROTECTED] wrote:
Dmitri Plotnikov wrote:

Jess,
 
JXPath has always supported Xalan through JAXP DOM APIs. What you may have 
seen in the source code of JXPath is some attempts to optimize JXPath when it 
is used specifically in combination with Xalan. You would not be interested in 
that optimization, because it would only be applied to static DOM and take 
advantage of DTM.
 
Try using JXPath and let us know how it works out.
 

Dumb question (which I probably figured out last time I tried this 
stuff, but have no notes/recollection of):

Is there an equivalent of Xalan's one-size-fits-all XObject xobj =
xpath.execute(...) mechanism in JXPath?

I'm looking for a CompiledExpression.getValue() that returns an Object 
for which:

1. I know the various possible return types when this is applied to a
DOM.
2. The result is the most appropriate (as per the XPath standard) of
the following:
* NodeList or NodeIterator -- or something from which I can
easily implement one or both of these interfaces
* Boolean
* Number
* String

[I assume callers will apply includes castes within their XPath 
expressions as necessary where they expect a non-node result.]

Is there such a beast?

The one-API fits all (beans, JDOM, DOM, etc) approach makes this a bit 
hard for me to decipher.

--
Jess Holle



Re: [jxpath] Future of JXPath and DOM???

2005-02-08 Thread Jess Holle
P.S.  Also, I must admit this message is somewhat of a test.  If no one 
responds, then I can assume the JXPath community is not active enough to 
be worth considering over sticking with an old version of Xalan for the 
forseeable future.

Jess Holle wrote:
I am using Xalan 2.1.0 for XPath coverage presently -- behind a skinny 
wrapper API so we can change implementations fairly painlessly.

I'd like to use something more recent and was looking at JXPath, but I 
note that the sources contain TO_DO comments about using Xalan as 
the backing XPath implementation -- for the DOM case presumably.

Is this the plan?  If not, what is?
If this is the plan, then there is no reason for me to switch from 
Xalan to JXPath -- as I only care about XPath usage against DOMs (not 
JDOM, other beans, etc).

You may ask why I'm on such an old Xalan or why I'm looking for 
something other than Xalan -- which are good questions...

Essentially, recent versions of Xalan are missing the boat on some 
important XPath use cases.  Xalan 2.1.0 is the last version of Xalan 
which does not have immense performance penalties for my use cases.  
Specifically, my use case is:

  1. Parse/compile XPath expressions.
  2. Use these expressions against many different DOMs.
 * I /rarely /use a given XPath against the same DOM (without
   intervening changes) twice.
   o I /often /use a given XPath against many, many
 different DOMs.
 * I /even more rarely /know that when I use an XPath on a DOM
   it will not be changing prior to it being used again.
 * I /often /need to use XPath to retrieve a list of DOM nodes
   to be edited or deleted -- followed by edits directly via
   DOM APIs and more use of other XPaths ad nauseum (e.g. based
   on GUI picks).
After Xalan 2.1.0, the XPath portion of Xalan was optimized for the 
antithesis of this use case, i.e. it builds a DTM (document table 
model) for each DOM an XPath is used against -- which is a tremendous 
waste of time and memory if the XPath is all but certainly not going 
to be used against the given DOM (without intervening changes) more 
than once.  I found cases of 500% performance improvement by moving 
back from more recent Xalan versions to 2.1.0 for these use cases!  
The Xalan team knows about this issue, but despite the fact that this 
directly affects the XPath API exposed in Java 1.5 this issue seems 
unimportant/uninteresting to them as compared to optimizing for the 
XSLT use case -- where the DTM approach makes sense since the DTM is 
formed once and acted upon by many XPaths many times.

Some time ago I looked at both JXPath and Jaxen as possible 
replacements for Xalan 2.1.0.  Unfortunately, both of these XPath 
libraries had major issues with evaluating some rather simple XPath 
expressions at the time -- and I need good fidelity to the XPath 
standard (at least as good as Xalan 2.1.0).  I believe Jaxen is at the 
same version now as it was when I last tested it, but JXPath has had 
an update or two since then -- so I was going to try again until I saw 
the aforementioned TO_DO in the source code.  If JXPath is not going 
to be a long-term contender for the my use cases, then I just have to 
continue using Xalan 2.1.0 (which I've move to another package using 
Ant -- similar to what Sun has done in Java 1.5 -- so as not to 
conflict with any other Xalan versions).

So all that said, I'd appreciate any feedback as to:
   * the intended direction of JXPath,
   * the level of commitment to the XPath standard, and
   * the level of commitment to supporting the non-XSLT DOM use case
 outlined above.
--
Jess Holle

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: [jxpath] Future of JXPath and DOM???

2005-02-08 Thread Dmitri Plotnikov
Jess,
 
JXPath has always supported Xalan through JAXP DOM APIs.  What you may have 
seen in the source code of JXPath is some attempts to optimize JXPath when it 
is used specifically in combination with Xalan.  You would not be interested in 
that optimization, because it would only be applied to static DOM and take 
advantage of DTM.
 
Try using JXPath and let us know how it works out.
 
- Dmitri


Jess Holle [EMAIL PROTECTED] wrote:
P.S. Also, I must admit this message is somewhat of a test. If no one 
responds, then I can assume the JXPath community is not active enough to 
be worth considering over sticking with an old version of Xalan for the 
forseeable future.

Jess Holle wrote:

 I am using Xalan 2.1.0 for XPath coverage presently -- behind a skinny 
 wrapper API so we can change implementations fairly painlessly.

 I'd like to use something more recent and was looking at JXPath, but I 
 note that the sources contain TO_DO comments about using Xalan as 
 the backing XPath implementation -- for the DOM case presumably.

 Is this the plan? If not, what is?

 If this is the plan, then there is no reason for me to switch from 
 Xalan to JXPath -- as I only care about XPath usage against DOMs (not 
 JDOM, other beans, etc).

 You may ask why I'm on such an old Xalan or why I'm looking for 
 something other than Xalan -- which are good questions...

 Essentially, recent versions of Xalan are missing the boat on some 
 important XPath use cases. Xalan 2.1.0 is the last version of Xalan 
 which does not have immense performance penalties for my use cases. 
 Specifically, my use case is:

 1. Parse/compile XPath expressions.
 2. Use these expressions against many different DOMs.
 * I /rarely /use a given XPath against the same DOM (without
 intervening changes) twice.
 o I /often /use a given XPath against many, many
 different DOMs.
 * I /even more rarely /know that when I use an XPath on a DOM
 it will not be changing prior to it being used again.
 * I /often /need to use XPath to retrieve a list of DOM nodes
 to be edited or deleted -- followed by edits directly via
 DOM APIs and more use of other XPaths ad nauseum (e.g. based
 on GUI picks).

 After Xalan 2.1.0, the XPath portion of Xalan was optimized for the 
 antithesis of this use case, i.e. it builds a DTM (document table 
 model) for each DOM an XPath is used against -- which is a tremendous 
 waste of time and memory if the XPath is all but certainly not going 
 to be used against the given DOM (without intervening changes) more 
 than once. I found cases of 500% performance improvement by moving 
 back from more recent Xalan versions to 2.1.0 for these use cases! 
 The Xalan team knows about this issue, but despite the fact that this 
 directly affects the XPath API exposed in Java 1.5 this issue seems 
 unimportant/uninteresting to them as compared to optimizing for the 
 XSLT use case -- where the DTM approach makes sense since the DTM is 
 formed once and acted upon by many XPaths many times.

 Some time ago I looked at both JXPath and Jaxen as possible 
 replacements for Xalan 2.1.0. Unfortunately, both of these XPath 
 libraries had major issues with evaluating some rather simple XPath 
 expressions at the time -- and I need good fidelity to the XPath 
 standard (at least as good as Xalan 2.1.0). I believe Jaxen is at the 
 same version now as it was when I last tested it, but JXPath has had 
 an update or two since then -- so I was going to try again until I saw 
 the aforementioned TO_DO in the source code. If JXPath is not going 
 to be a long-term contender for the my use cases, then I just have to 
 continue using Xalan 2.1.0 (which I've move to another package using 
 Ant -- similar to what Sun has done in Java 1.5 -- so as not to 
 conflict with any other Xalan versions).

 So all that said, I'd appreciate any feedback as to:

 * the intended direction of JXPath,
 * the level of commitment to the XPath standard, and
 * the level of commitment to supporting the non-XSLT DOM use case
 outlined above.

 -- 
 Jess Holle



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [jxpath] Future of JXPath and DOM???

2005-02-08 Thread Dmitri Plotnikov
Jess,
 
Sorry, I misspoke.  Of course, what I wanted to say was that JXPath has always 
supported Xerces, which is the XML parser bundled with Xalan.  Thus, it can 
work side-by-side with Xalan.
 
- Dmitri

Dmitri Plotnikov [EMAIL PROTECTED] wrote:
Jess,

JXPath has always supported Xalan through JAXP DOM APIs. What you may have seen 
in the source code of JXPath is some attempts to optimize JXPath when it is 
used specifically in combination with Xalan. You would not be interested in 
that optimization, because it would only be applied to static DOM and take 
advantage of DTM.

Try using JXPath and let us know how it works out.

- Dmitri


Jess Holle wrote:
P.S. Also, I must admit this message is somewhat of a test. If no one 
responds, then I can assume the JXPath community is not active enough to 
be worth considering over sticking with an old version of Xalan for the 
forseeable future.

Jess Holle wrote:

 I am using Xalan 2.1.0 for XPath coverage presently -- behind a skinny 
 wrapper API so we can change implementations fairly painlessly.

 I'd like to use something more recent and was looking at JXPath, but I 
 note that the sources contain TO_DO comments about using Xalan as 
 the backing XPath implementation -- for the DOM case presumably.

 Is this the plan? If not, what is?

 If this is the plan, then there is no reason for me to switch from 
 Xalan to JXPath -- as I only care about XPath usage against DOMs (not 
 JDOM, other beans, etc).

 You may ask why I'm on such an old Xalan or why I'm looking for 
 something other than Xalan -- which are good questions...

 Essentially, recent versions of Xalan are missing the boat on some 
 important XPath use cases. Xalan 2.1.0 is the last version of Xalan 
 which does not have immense performance penalties for my use cases. 
 Specifically, my use case is:

 1. Parse/compile XPath expressions.
 2. Use these expressions against many different DOMs.
 * I /rarely /use a given XPath against the same DOM (without
 intervening changes) twice.
 o I /often /use a given XPath against many, many
 different DOMs.
 * I /even more rarely /know that when I use an XPath on a DOM
 it will not be changing prior to it being used again.
 * I /often /need to use XPath to retrieve a list of DOM nodes
 to be edited or deleted -- followed by edits directly via
 DOM APIs and more use of other XPaths ad nauseum (e.g. based
 on GUI picks).

 After Xalan 2.1.0, the XPath portion of Xalan was optimized for the 
 antithesis of this use case, i.e. it builds a DTM (document table 
 model) for each DOM an XPath is used against -- which is a tremendous 
 waste of time and memory if the XPath is all but certainly not going 
 to be used against the given DOM (without intervening changes) more 
 than once. I found cases of 500% performance improvement by moving 
 back from more recent Xalan versions to 2.1.0 for these use cases! 
 The Xalan team knows about this issue, but despite the fact that this 
 directly affects the XPath API exposed in Java 1.5 this issue seems 
 unimportant/uninteresting to them as compared to optimizing for the 
 XSLT use case -- where the DTM approach makes sense since the DTM is 
 formed once and acted upon by many XPaths many times.

 Some time ago I looked at both JXPath and Jaxen as possible 
 replacements for Xalan 2.1.0. Unfortunately, both of these XPath 
 libraries had major issues with evaluating some rather simple XPath 
 expressions at the time -- and I need good fidelity to the XPath 
 standard (at least as good as Xalan 2.1.0). I believe Jaxen is at the 
 same version now as it was when I last tested it, but JXPath has had 
 an update or two since then -- so I was going to try again until I saw 
 the aforementioned TO_DO in the source code. If JXPath is not going 
 to be a long-term contender for the my use cases, then I just have to 
 continue using Xalan 2.1.0 (which I've move to another package using 
 Ant -- similar to what Sun has done in Java 1.5 -- so as not to 
 conflict with any other Xalan versions).

 So all that said, I'd appreciate any feedback as to:

 * the intended direction of JXPath,
 * the level of commitment to the XPath standard, and
 * the level of commitment to supporting the non-XSLT DOM use case
 outlined above.

 -- 
 Jess Holle



-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [jxpath] Future of JXPath and DOM???

2005-02-08 Thread michael
Hi,

I am also looking at the same optimization, but not in a way that Xalan handles 
the xpath,
but in such a way that a metamodel (DOM or your own) can optimize the query 
implementation
itself.

I was thinking of having a nodepointer recognizing the model, and having the 
option to
pass the jxpath expression to the actual model implementation. Right now I 
don't have
ideas on the actual implementation, but any ideas from others on the subject 
are welcome.

Any thoughts of such an implementation?

Michael



 Jess,
  
 Sorry, I misspoke.  Of course, what I wanted to say was that JXPath has 
 always supported
Xerces, which is the XML parser bundled with Xalan.  Thus, it can work 
side-by-side with
Xalan.
  
 - Dmitri
 
 Dmitri Plotnikov [EMAIL PROTECTED] wrote:
 Jess,
 
 JXPath has always supported Xalan through JAXP DOM APIs. What you may have 
 seen in the
source code of JXPath is some attempts to optimize JXPath when it is used 
specifically in
combination with Xalan. You would not be interested in that optimization, 
because it would
only be applied to static DOM and take advantage of DTM.
 
 Try using JXPath and let us know how it works out.
 
 - Dmitri
 
 
 Jess Holle wrote:
 P.S. Also, I must admit this message is somewhat of a test. If no one 
 responds, then I can assume the JXPath community is not active enough to 
 be worth considering over sticking with an old version of Xalan for the 
 forseeable future.
 
 Jess Holle wrote:
 
  I am using Xalan 2.1.0 for XPath coverage presently -- behind a skinny 
  wrapper API so we can change implementations fairly painlessly.
 
  I'd like to use something more recent and was looking at JXPath, but I 
  note that the sources contain TO_DO comments about using Xalan as 
  the backing XPath implementation -- for the DOM case presumably.
 
  Is this the plan? If not, what is?
 
  If this is the plan, then there is no reason for me to switch from 
  Xalan to JXPath -- as I only care about XPath usage against DOMs (not 
  JDOM, other beans, etc).
 
  You may ask why I'm on such an old Xalan or why I'm looking for 
  something other than Xalan -- which are good questions...
 
  Essentially, recent versions of Xalan are missing the boat on some 
  important XPath use cases. Xalan 2.1.0 is the last version of Xalan 
  which does not have immense performance penalties for my use cases. 
  Specifically, my use case is:
 
  1. Parse/compile XPath expressions.
  2. Use these expressions against many different DOMs.
  * I /rarely /use a given XPath against the same DOM (without
  intervening changes) twice.
  o I /often /use a given XPath against many, many
  different DOMs.
  * I /even more rarely /know that when I use an XPath on a DOM
  it will not be changing prior to it being used again.
  * I /often /need to use XPath to retrieve a list of DOM nodes
  to be edited or deleted -- followed by edits directly via
  DOM APIs and more use of other XPaths ad nauseum (e.g. based
  on GUI picks).
 
  After Xalan 2.1.0, the XPath portion of Xalan was optimized for the 
  antithesis of this use case, i.e. it builds a DTM (document table 
  model) for each DOM an XPath is used against -- which is a tremendous 
  waste of time and memory if the XPath is all but certainly not going 
  to be used against the given DOM (without intervening changes) more 
  than once. I found cases of 500% performance improvement by moving 
  back from more recent Xalan versions to 2.1.0 for these use cases! 
  The Xalan team knows about this issue, but despite the fact that this 
  directly affects the XPath API exposed in Java 1.5 this issue seems 
  unimportant/uninteresting to them as compared to optimizing for the 
  XSLT use case -- where the DTM approach makes sense since the DTM is 
  formed once and acted upon by many XPaths many times.
 
  Some time ago I looked at both JXPath and Jaxen as possible 
  replacements for Xalan 2.1.0. Unfortunately, both of these XPath 
  libraries had major issues with evaluating some rather simple XPath 
  expressions at the time -- and I need good fidelity to the XPath 
  standard (at least as good as Xalan 2.1.0). I believe Jaxen is at the 
  same version now as it was when I last tested it, but JXPath has had 
  an update or two since then -- so I was going to try again until I saw 
  the aforementioned TO_DO in the source code. If JXPath is not going 
  to be a long-term contender for the my use cases, then I just have to 
  continue using Xalan 2.1.0 (which I've move to another package using 
  Ant -- similar to what Sun has done in Java 1.5 -- so as not to 
  conflict with any other Xalan versions).
 
  So all that said, I'd appreciate any feedback as to:
 
  * the intended direction of JXPath,
  * the level of commitment to the XPath standard, and
  * the level of commitment to supporting the non-XSLT DOM use case
  outlined above.
 
  -- 
  Jess Holle
 
 
 
 -
 To unsubscribe,