[JDEV] Question on using NIO with SAX

Joe Hildebrand jhildebrand at jabber.com
Fri Mar 22 11:25:47 CST 2002


I did a JNI wrapper around xpat for marbles, as a stop-gap.

http://marbles.sourceforge.net/

Haven't worked on it in a while, but it should still be there.



"Chan, Oscar" <OChan at pogo.com> writes:

> Thanks. I guess I will have to live with this until the SAX API provide
> API for this push-model parser.  
>
> I looked at the Xerces-J parser's parseSome() method, but it is only for
> parsing the first line of XML document to get the encoding in XML
> Declaration, so it does not work in the way that I needed.
>
> Thanks again, 
>
> Oscar 
>
> -----Original Message----- 
> From: David Waite [ mailto:mass at akuma.org <mailto:mass at akuma.org> ] 
> Sent: Thursday, March 21, 2002 5:16 PM 
> To: jdev at jabber.org 
> Subject: Re: [JDEV] Question on using NIO with SAX 
>
>
> This is an issue with the SAX Api (which understandably, we can't 
> change). What you want is a push-model parser (like SAX) which takes a 
> block of bytes/characters and calls events on the DocumentHandler (on 
> that thread) until that block of data has been processed, then returns 
> or saves the remainder until the next time it is passed.  SAX does not 
> define this, and anything which does this at least is extending SAX. 
>
> I believe Xerces-J at least defines a parseSome method on its XmlParser 
> method, but I don't know if this does what you want. 
>
> -David Waite 
>
> Chan, Oscar wrote: 
>
>> Hi all, 
>> 
>> I am new here.  I am now developing a message server based on the 
>> subset of Jabber protocol. I am building using Java, and SAX parser in
>
>> javax.xml.parsers package.   My problem is that I am trying to code 
>> the server so that it can use NIO (new i/o) package once java 1.4 is 
>> stable enough to use.  By using NIO, it eliminates the problem of 
>> having a thread per socket because it multiplexes the input and store 
>> the data in a buffer instead of blocking the call and waiting until 
>> data is available.  Usually, the server machine will slow down when 
>> the number of thread reach about 1000.  Therefore, NIO will increase 
>> the number of connection that we can have. 
>> 
>> Since parse() method in java.xml.parsers.SAXParser is using a blocking
>
>> I/O and, hence, it increase the number of threads. Does anyone know 
>> any workaround for it, or any future support for SAX using NIO? 
>> 
>> Thanks 
>> 
>> Oscar 
>> 
>
>
>
> _______________________________________________ 
> jdev mailing list 
> jdev at jabber.org 
> http://mailman.jabber.org/listinfo/jdev
> <http://mailman.jabber.org/listinfo/jdev>  
>

-- 
Joe Hildebrand
Chief Architect
Jabber, Inc.
http://www.jabber.com/




More information about the JDev mailing list