[
Lists Home |
Date Index |
Thread Index
]
- From: Laura Neitzel <laura.neitzel@moai.com>
- To: "'xerces-j-dev@xml.apache.org'" <xerces-j-dev@xml.apache.org>
- Date: Tue, 16 May 2000 11:00:16 -0700
The Xerces Validating SAX Parser is throwing a parse error in an unexpected
place. Can someone tell me if this a bug or if this is how most parsers are
intended to work?
Here are the specifics:
Our dtd mandates that only one object can exist within an Add tag.
<!ELEMENT Add (%editable_objects;)>
As such, this is correct:
<Add>
<Person>
.....
</Person>
</Add>
Our program processes this document by actually 'adding' the Person to the
db when it sees the end of the "Add" tag. In other words, when the parser
fires the endElement(name=Add,..), we add the Person.
This works fine.
The problem occurs when someone sends a document that violates the dtd rule.
For example, they include 2 objects in the <Add> instead of the mandated 1:
<Add>
<Person>
.....
</Person>
<Person>
.....
</Person>
</Add>
In this case, the Parser still forwards us an endElement(name=Add, ...)
event. It only throws the Parse Error "The content of element type "Add"
must match .." AFTER it fires the endElement event. So, we add the Person,
even though the document was malformed.
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)???
Thanks so much,
Laura
***************************************************************************
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/
***************************************************************************
|