[jdom-interest] JDOMResult silently absorbs document fragments (was: Re: [jdom-interest] Question about JDOMResult and usage with XMLReader)

manos laliotis laliotis at eml.cc
Wed Aug 14 20:11:10 PDT 2002


I was recently bitten by the same condition, wasting a number of hours before realizing what's the root of the problem. I understand the difficulties mentioned by Laurent and since apparently there's no good solution about them I would suggest to have JDOMResult throw an exception or something when document fragments (-not a full document) are encountered. Currently, in the presence of multiple document fragments, JDOMResult.getDocument() returns only the most recently-encountered fragment, without ever informing the caller that something went wrong.

-Manos


Laurent Bihanic wrote:
> 
> Elliotte Rusty Harold wrote:
> 
>> Hmmm, looking at the API docs I think this is a flaw in JDOM, not TrAX 
>> DOMResult and SAXResult do not assume they get a full document back 
>> from the transform. JDOMResult does. This is a mistaken assumption.
> 
> 
> DOMResult can indeed return a DocumentFrangment but I do not agree with 
> you for SAXResult: It is configured with a ContentHandler and the 
> javadoc for ContentHandler states: "Receive notification of the logical 
> content of *a* document". Thus, SAXResults should not accept document 
> fragments and JDOMResult extends SAXResult.
> 
>  > The List would contain the result of the transformation, which might be
>  > a single Document object or might be several element and text objects,
>  > or something else. I'm not sure what internal changes might be required
>  > here to support this. Possibly, JDOMResult would need to use a different
>  > ContentHandler; not SAXHandler. SAXHandler is designed for parsing an
>  > input document which is known to be well-formed. That is not the case 
> here.
> 
> That could be done by subclassing SAXHandler and having a pre-allocated 
> dummy root element. The main problem would then be to decide what the 
> result actually is: If the transformation returns a list of node, no 
> problem; but if a single element iss returned, should we return a 
> Document or an Element? Is there something in the XSLT spec to help 
> distinguish between these 2 cases?
> 
> Laurent
> 
> _______________________________________________
> To control your jdom-interest membership:
> http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com 
> 
> 




More information about the jdom-interest mailing list