RE: [xsl] SAX startDocument and endDocument when there's only a documentfragment

Subject: RE: [xsl] SAX startDocument and endDocument when there's only a documentfragment
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Mon, 25 Nov 2002 16:01:13 -0000
XSLT has no concept of a document fragment. This is a DOM term, and it's
a poor one.

XSLT trees represent a generalization of XML documents to
"well-balanced" documents, there is no requirement that they be
"well-formed". The idea of not calling startDocument() and endDocument()
presumably comes from thinking of these as partial documents, which is
not how they are treated in the XPath data model: they are complete
documents that happen to have multiple elements/text nodes as children
of the root node.

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> David Nelson
> Sent: 25 November 2002 14:19
> To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx'
> Subject: RE: [xsl] SAX startDocument and endDocument when 
> there's only a documentfragment
> 
> 
> I'm way out on a limb with this but, since a root node is not 
> present, my guess is that the implementations that do call 
> startDocument() and
> endDocument() are being kind since no root node is present.
> 
> Therefore, your application could collect the 
> documentfragment through the
> startElement() endElement() methods using a stack/ hashMap 
> system. This should work even if my first ssumption is incorrect.
> 
> Please be kind if I'm way off base as I'm am still wading 
> through specs.
> 
> -----Original Message-----
> From: Elliotte Rusty Harold [mailto:elharo@xxxxxxxxxxxxxxx]
> Sent: Sunday, November 24, 2002 8:57 AM
> To: sax-devel@xxxxxxxxxxxxxxxxxxxxx
> Cc: xsl-list@xxxxxxxxxxxxxxxxxxxxxx; xml-dev@xxxxxxxxxxxxx; 
> jdom-interest@xxxxxxxx
> Subject: [xsl] SAX startDocument and endDocument when there's 
> only a documentfragment
> 
> 
> Apologies in advance for the cross-posting, but this is one of those 
> nasty problems that crosses the usual boundaries.
> 
> 1. Consider an XSLT transform that generates a document fragment 
> rather than a complete document; that is, there is no single root 
> element.
> 
> 2. Suppose TrAX is used to apply this transform and generate a result.
> 
> 3. Suppose the result is a JAXP SAXResult object; that is, it fires 
> the contents of the result into a user-specified ContentHandler.
> 
> Question: should the the transformer fire startDocument() and 
> endDocument() events? even though this isn't a complete document, 
> only a document fragment?
> 
> 
> The SAX API doc is not absolutely clear on this point. However, my 
> interpretation is that yes, it should call startDocument() and 
> endDocument().
> 
> The JAXP spec does not appear to have anything relevant to 
> say about this.
> 
> In the course of adding XSLT support to JDOM, Laurent Bihanic has 
> discovered that different engines behave differently. In particular, 
> the Oracle XML Parser for Java does not call startDocument and 
> endDocument. This is a roadblock in adding full XSLT support to JDOM, 
> so some clarification would be appreciated.
> -- 
> 
> +-----------------------+------------------------+-------------------+
> | Elliotte Rusty Harold | elharo@xxxxxxxxxxxxxxx | Writer/Programmer |
> +-----------------------+------------------------+-------------------+
> |          XML in a  Nutshell, 2nd Edition (O'Reilly, 2002)          |
> |              http://www.cafeconleche.org/books/xian2/              |
> |  http://www.amazon.com/exec/obidos/ISBN%3D0596002920/cafeaulaitA/  |
> +----------------------------------+---------------------------------+
> |  Read Cafe au Lait for Java News:  http://www.cafeaulait.org/      |
> |  Read Cafe con Leche for XML News: http://www.cafeconleche.org/    |
> +----------------------------------+---------------------------------+
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread