Hi All,

As mentioned before I am writing an XInclude module which is fast approaching readiness. However, I have hit a snag with error handling, and would appreciate any thoughts anyone has on how best to implement it.

Basically, the first instance of xi functionality will be a feature that can be set on a DOMParser.

The code calling the DOMParser will have optionally passed the DOMParser an errorHandler that can receive and process DOMExceptions which can be warnings and fatal errors. The client code should also catch DOMExceptions and XMLExceptions that may be thrown during parsing.

The xi module needs to notify the client (the client of the DOMParser that is) of resource errors (warnings) and fatal errors (fatal).

The xi module could extend DOMException and thus use the standard error handlers or throw the exception to report its problems. This seems wrong to me since DOMException is pretty tightly specified and doesn't have xi provison:

http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-17189187

Other modules in xerces c simply extend the generic XMLException and throw that. My gut feelig is that xi should do the same, thus creating a XMLXIncludeException subclass of XMLException and throwing that when the xinclude processor encounters a Fatal Error. The spec http://www.w3.org/TR/xinclude/ doesn't give any details, it merely stipulates that processing should stop once a Fatal Error is encountered.

Note that the XMLException route still does not cover reporting the warnings, such as resource errors, which may not be fatal but which the client may need to be made aware of. To make this work, the user could specify a second errorHandler that is capable of receiving XMLExceptions and passing this second errorHandler to the Parser for forwarding to the xi processor.

Any advice would be gratefully received on this, I am still hoping I have missed something basic which means there is clean and simple solution to this!
Thanks in advance, Simon

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to