[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: General SAX2 Observations

  • From: "Jon Smirl" <jonsmirl@m...>
  • To: "Box, Don" <dbox@d...>, <xml-dev@X...>, "David Megginson \(E-mail\)" <david@m...>
  • Date: Sun, 12 Mar 2000 20:00:53 -0500

1
General SAX2 ObservationsHere's problem with SAX1, I'm not sure if it is
addressed in SAX2.

Consider the problem of chaining an XSL processor (XT) implementing the SAX
API to an XML parser.

If you already know the stylesheet you do this:
1) Create the XSLProcessor object
2) Create the XML parser
3) Call parse() on the XSLProcessor, this internally will call parse() on
the parser.
4) everything works just fine

But what if you don't know the stylesheet ahead of time and it's name is
being computed dynamically?
1) create the XML parser
2) call parse()
3) catch the pi event and get the name of the stylesheet
4) Create the XSLProcessor object
5) call parse() on the XSLProcessor
6) get the document handler from XSLProcessor
7) set the parser's document handler to be the XSLProcessor
8) But now you're stuck, if you return out of parse() the XSLProcessor will
terminate and not see the SAX events from the parser

There are two solutions
1) use two threads (yuck)
2) break the parse() function into three stages
  a) preParse()
  b) doParse()
  c) postParse()

If you call parse() directly if will just call
  preParse(),  doParse(),  postParse()

Let's rework the example for dynamically computing a stylesheet
1) create the XML parser
2) call parse()
3) catch the pi event and get the name of the stylesheet
4) Create the XSLProcessor object
5) call preParse() on the XSLProcessor
6) get the document handler from XSLProcessor
7) set the parser's document handler to be the XSLProcessor
8) return out of preParse()
9) events flow out of the parser into the XSLProcessor
10) catch the endDocument() call from the parser
11) call postParse()
12) return out of the endDocument() handler and the stack will unwind.

Jon Smirl
jonsmirl@m...


***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@x...&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.