Hi Nicola Ken, >> In your original post, you'd mentioned that you'd implemented this as a >> "SAX filter"; did you mean that it's an XMLFilter implementation? If so, >> and you're using a standard XMLReader implementation of some sort, then how >> do you do XInclude processing before validation?
> Ooooh, opening a can of worms ;-) Both commons-dev and xerces-j-dev have been really quiet lately; about time for some activity! :) > Yes having used XInclude I can solemly state that XInclude has to occur > before validation. The question is: should a parser validate? ;-) > The fact is that Processors like Cocoon will always have other methods > to use before a validation, so what we (Cocoon) need is instead a > validating transformer, or something like that. > Not that I'm defining solutions, just that Xerces is monolithic seen > from a SAX-adhering processor world. I see what you're saying, I think: you like the idea of a componentized parser that operates in a pipeline, but you wish that SAX had been used as the glue for such a beast, rather than its own API. Right? And if SAX had seemed rich and complete enough, and had it supported the kind of configuration-management facilities that are needed for such an arrangement, I imagine that's the road we would have gone down. But it isn't/doesn't, so what was there to do? :) So I guess I'd turn the question around: If using SAX means you're stuck with monolithic-looking parsers, but XNI would give you a parser with all kinds of flexibility, maybe using XNI might merit consideration? :) Sure it would bind you to a specific parser (until other parsers begin to use XNI :)) ), but if you write your own SAX-glued parser then you're stuck to that anyway... > Dumb proposal: why not a XNI2SAX Filter that uses an XNI processor for > SAX? We already have one: org.apache.xerces.parsers.SAXParser; heck, it even understands both SAX1 and SAX2! :) The trouble is that, once you're emitting SAX, you're not in the Xerces pipeline world anymore; so this guy is only useful at the end of such a pipeline (whatever XNI components that pipeline has in it). So there's no way of putting a Xerces validator after that component, for instance (to do so would kind of defeat the point of XNI). Does that explain anything? Here's hoping I haven't let too many more worms out of that can... Cheers, Neil Neil Graham XML Parser Development IBM Toronto Lab Phone: 905-413-3519, T/L 969-3519 E-mail: [EMAIL PROTECTED]
