Subject: RE: 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: 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: 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
|