Finn, 

I am more in agreement with your patch.  +0 as-is.

--- Finn Bock <[EMAIL PROTECTED]> wrote:
[Finn]
> 
> [Glen]
>
> > SPE might be considered the XML parsing
> > equivalent of a "syntax error" that would occur
> for a
> > code compilation error.  
> 
> Right, errors at the XML level.
> 

It *can* be used for validation too.  As shown here
[1], If FOP had a DTD that we validated against using
a validating parser, validation errors would also
raise a SAXParseException [2].  The folks at Sun did
not see a need for another type of exception to raise
for validation errors (as opposed to pure parse
errors), at least for validations done by the parser
itself.

(According to the recent W3C email [3] though, we will
never have a DTD or other type of schema to validate
XSL with.) 

[1]
http://java.sun.com/webservices/docs/1.0/tutorial/doc/JAXPSAX13.html

[2]
http://java.sun.com/webservices/docs/1.0/tutorial/examples/jaxp/sax/samples/Echo10-06.html

[3]
http://lists.w3.org/Archives/Public/xsl-editors/2004OctDec/0016.html

> > As the definition of its parent SAXException[1]
> > states, "This class can contain basic error or
> warning
> > information from either the XML parser *or the
> > application*"  So it can be used within FOP.
> 
> Indeed, and that is exactly what my proposal does:
> 
> """
> If the application needs to pass through other types
> of exceptions, it 
> must wrap those exceptions in a SAXException or *an
> exception derived 
> from a SAXException*.
> """
> 

I'm not clear why you didn't derive
ValidationException from SAXParseException.  I know
the locator is already present in FOPException, but
absent the subclass from SAXParseException, it ends up
being a "different" Locator object, i.e., user code
that would handle a SAXParseException can't handle
this FOPException.  Perhaps just a nitpick, but I see
a long-term advantage in having our
ValidationExceptions subclass SAXParseException if
possible.

(Namely, if an embedded user of FOP wished to report
both parsing and validation errors to the user in the
same manner--a plausible scenario--it would be
convenient to have ValidationException subclass
SAXParseException.)

> 
> FNFE is the right choice to throw when a file is
> missing. 
> SAXParseException the the right choice when a file
> contains invalid XML. 
> ValidateException is the right choice of exception
> when the FO file 
> doesn't follow the content model. Different cases
> that require different 
> exceptions.
> 

Agreed.  I now understand the difference between XML
parsing errors and validation errors, I didn't so
clearly yesterday.


> 
> I don't think any FNFE are thrown very far in FOP,
> but it should be 
> wrapped in a FOPException (or in a
> ResourceMissingException?) and passed 
> back, at least to the LM level, perhaps further.
> 

If convenient internally (so our methods do not have
to declare several different exceptions that can be
thrown), then OK.  FOPException can be abused because
the programmer is not really thinking about what the
precise error is, just that it occurred within FOP. 
(If the embedded user cares if the FNFEx. was within
FOP, he/she can get this knowledge by strategic use of
try/catch blocks anyway.)

Thanks,
Glen

Reply via email to