[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: [ANN] smallx XML Infoset and Pipeline Released (Open Sourc
* Elliotte Harold <elharo@m...> [2005-04-14 06:26]: > Alan Gutierrez wrote: > > > In my SAX library, XStrategy, I combined namespaces and events. > > > > The XStrategy framwork maintains a stack of namespaces in scope > > by default. It seemed impossible to get anything done without it. > > If you're int he unfortunate situation of needing to resolve namespace > prefixes in attribute values and element content, as is the case in an > XSLT processor or a schema validator, then you absolutely need to do > this. However, probably at least 90% of use cases are much simpler and > just need to know the namespaces of each element and attribute, and this > doesn't require any extra work. > > It's not all that hard to keep track of namespaces in scope in SAX. You > just use a NamespaceSupport object, push the namespace on in > startPrefixMapping and pop it off in endPrefixMapping. Sadly this isn't > as well documented or obvious as it should be. The key to XStrategy is a second event system that sends messages up a stack event handlers. It's API is stabilizing, and I'm finding that the reusable strategies, and the bubbling event model solve a lot of problems easily. With SAX I find that I'm not trying to shave every instruction, simply avoiding the overhead of tree materialization. If I really needed to strip every last bit overhead, I'd use SAX. I like that I've got namespaces in scope and the stack of events, amoung other things, encapsulated. It is good to have them there when I need them. Cheers. -- Alan Gutierrez - alan@e... - http://engrm.com/blogometer/index.html - http://engrm.com/blogometer/rss.2.0.xml
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|