[XOM-interest] Exposing XMLHandler

Alan Gutierrez alan at blogometer.com
Wed Sep 26 21:35:00 EDT 2007


I am already using SAXConverter to generated SAX events.

I want to create an XOM document by consuming events. XOMHandler  
consumes SAX events and produces an XOM document. It also performs  
checks to prevent the creation of a malformed document, because if it  
were provided with an XMLFilter that XMLFilter could call  
ContentHandler methods out of order.

The XOMHandler is almost public as it is. I'm able to create a bogus  
XMLReader and pass it to a new Builder. Then I can get the  
ContentHandler and LexicalHandler from the XOMHandler. I can give the  
ContentHandler and LexicalHandler to the library that expects it.  
Then I can obtain the generated XOM document by calling the parse  
method of Builder, which in turn calls the do nothing parse method my  
bogus XMLReader and returns the XOM document created by manipulating  
the ContentHandler and LexicalHandler outside of the XMLReader.

The XMLHandler is almost exposed and nothing about making it package  
visible prevents the creation of malformed documents. The  
implementation of SAXConverter recognizes that ContentHandler and  
LexicalHandler are interfaces that are used outside of the context of  
SAX filter chain.

Which is why I still don't understand why XOMHandler is not public.

On Sep 26, 2007, at 7:02 PM, Elliotte Harold wrote:

> Alan Gutierrez wrote:
>> I have a program that builds an XML document by sending messages  
>> to a  content handler and lexical handler. I would like to build  
>> XML  documents in this way. XMLHandler would do this for me, but  
>> it has  package scope.
>> Why not make XMLHandler a public class?
>
> Because that would enable the creation of malformed documents.
>
> Chances are that is another way to do whatever it is you want done.  
> Possibly you need to look at the SAXConverter class instead.
>
> http://xom.nu/apidocs/nu/xom/converters/SAXConverter.html
>

--
Alan Gutierrez | alan at blogometer.com | http://blogometer.com/ | 504  
717 1428
Think New Orleans | http://thinknola.com/




More information about the XOM-interest mailing list