OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   RE: Parse Error Not Thrown When Expected

[ Lists Home | Date Index | Thread Index ]
  • From: Laura Neitzel <laura.neitzel@moai.com>
  • To: "'Arnaud Le Hors'" <lehors@us.ibm.com>, xerces-j-dev@xml.apache.org
  • Date: Tue, 16 May 2000 13:55:41 -0700

I'm sorry, i must not have explained the problem well enough. I realize that
SAX is event based and I believe that the error HAS occured when it reaches
the end of teh element in question (the "Add" element). I just assumed that
the parser would perform the validation BEFORE it fires teh event, not
after. 

If what John said is correct ("There is no model for when validity errors
are guaranteed to be fired. A parser is free to fire them when it detects
them, or even to save them up to the end of the document and fire them all
at once.  (Indeed, validity errors like undefined ID *can't* be detected
until the end.)"), then I guess we'll just have to code around this. 

I assumed that, since SAX is event based, i could also code at an event
based level. If i have to save up everything and commit to the database only
at the end (b/c errors aren't thrown until then), then what is the point of
using SAX (besides the fact that i can save my own objects, as opposed to
dom objects)? 

-----Original Message-----
From: Arnaud Le Hors [mailto:lehors@us.ibm.com]
Sent: Tuesday, May 16, 2000 1:05 PM
To: xerces-j-dev@xml.apache.org
Cc: xml-dev@xml.org
Subject: Re: Parse Error Not Thrown When Expected


Laura Neitzel wrote:
> 
> Can someone tell me why the Parser does not throw the exception BEFORE it
> forwards the endElement (meaning that it never will throw the
endElement)???

Because it hasn't encountered the error yet! SAX is event based, the
parser passes the events to the application as they occur. There is
nothing that can be changed on that front. The alternative would be to
validate the document first and then start firing events. The
application can do that, the parse can't (well, it could but this
wouldn't be reasonable).
Alternatively you can buffer the information returned by the parser and
only process it once you considered it ok. Or if your document is small
you could just use the DOMParser and use the DOM as your buffer.
-- 
Arnaud  Le Hors - IBM Cupertino, XML Technology Group

***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************

***************************************************************************
This is xml-dev, the mailing list for XML developers.
To unsubscribe, mailto:majordomo@xml.org&BODY=unsubscribe%20xml-dev
List archives are available at http://xml.org/archives/xml-dev/
***************************************************************************




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS