Ted,

I adopted the stuff you sent me and tried it out.  It didn't work at
first, but in the course of comparing files, I noticed I had:  

      SAXParser m_parser;
      ...
      m_parser.parse(new InputSource(m_is));

whereas you had:

      SAXParser p;
      ...
      p.parse(new InputSource(new InputStreamReader(in)));

-- I hadn't bothered with the Reader.  When I put that in, it worked.
Just for kicks, I tried it with the Reader but without your code, and
the original problem was back.  It looks like the combination of the
InputStreamReader and your fix did the trick.  I wonder if that's an
InputSource bug or just a natural result of not using a Reader.  Either
way, it works when the Reader is used.  

Thanks for the help!

David Cassel
Software Engineer
CyberFone, Inc.
610-989-9330x33

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Friday, December 10, 1999 7:41 PM
> To: [EMAIL PROTECTED]
> Subject: Re: SAX events
> 
> 
> Hi David,
> 
> I recently checked in some fixes that provide a solution to 
> this problem.
> The fixes allow the parser to react to data as it comes in, 
> instead of in
> buffer sized (16K) blocks. 
> 
> I've attached a source file that shows how to make use of the new
> functionality.  I'll try to write this up and add it to the docs soon.
> 
> Ted
> ----- Original Message ----- 
> From: "Dave Cassel" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, December 10, 1999 11:39 AM
> Subject: SAX events
> 
> 
> > Forgive me if this has been brought up before, but I can't 
> find anything
> > about it.  
> > 
> > First off:  Win NT 4.0, Sun JDK 1.1.8, Xerces-J 1.0.  
> > 
> > I'm writing something where a client sends XML messages to 
> a server and
> > the server responds to the messages individually.  I've 
> tried a couple
> > different ways and can't get it to work.  The server is using SAX to
> > parse the input.  
> > 
> > My first try was to have the client send a couple of full documents.
> > However, the server griped about this:  
> > "[Fatal Error] :1 :37: The markup in the document following the root
> > element must be well-formed."   Okay, it figures the 
> top-level element
> > is the root and doesn't want to see other elements after 
> that.  I guess
> > it doesn't see anything it can interpret as an 
> end-of-document.  Fair
> > enough.  
> > 
> > For testing, I then tried just manually writing some strings to the
> > stream.  I gave it a <ROOT> element, inside of which I gave 
> it a <MSG>
> > element.  I had the client pause a few seconds and then 
> write a second
> > <MSG> element, and then closed the <ROOT>.  All the elements were
> > correctly received -- but not until everything had been written.  (I
> > flushed the stream after writing the first <MSG>.)  
> > 
> > Shouldn't the server get & interpret elements as soon as they are
> > available from the stream?  Does SAX wait to have an entire element
> > before it calls events?  I can't close the stream between 
> messages; it
> > seems I can't have them in seperate documents; so how do I get the
> > server to react to the incoming data?  Is this a problem 
> with Xerces or
> > with what I'm trying to do with it?  
> > 
> > Thanks!
> > 
> > David Cassel
> > Software Engineer
> > CyberFone, Inc.
> > 610-989-9330x33
> > 
> > 
> > 
> 

Reply via email to