SAX: Error Reporting (question 4 of 10)
James Clark
jjc at jclark.com
Sun Jan 4 00:30:52 GMT 1998
David Megginson wrote:
>
> Should SAX treat errors as events? If so, should it distinguish fatal
> errors from warnings or non-fatal errors?
>
> public void warning (String message, String systemID, int line);
> public void fatalError (String message, String systemID, int line);
There are 3 things that need to be distinguished:
- Fatal errors: violations of well-formedness constraints; processors
have to detect these and must stop normal processing. In Java I think
an exception is the only reasonable way to handle these. Unless you do
this people will be tempted to continue processing in violation of the
spec.
- Errors: violations of validity constraints or other errors that a
processor is not required to detect.
- Warnings: messages about conditions that do not cause a document to be
non-conforming.
To do a really good job of reporting these, much more information is
needed that a line number and a URL. In particular you need more
information about the entity structure. For example, given a document
doc.xml:
<!DOCTYPE doc SYSTEM "doc.dtd">
<doc>&e;</doc>
and doc.dtd:
<!ELEMENT doc (a)>
<!ENTITY e "<b/>">
nsgmls -e will say:
In entity e included from doc.xml:2:8
nsgmls:doc.dtd:2:15:E: element "b" undefined
There can be more than one relevant URL and line number.
This sort of facility also introduces major internationalization issues.
I can guarantee you are not going to be able to do a good job of error
reporting and still keep the interface simple.
James
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list