From: Jonathan W. <co...@co...> - 2004-03-31 15:47:46
|
On Wed, Mar 31, 2004 at 05:16:12PM +0200, Christophe de VIENNE wrote: > Date: Wed, 31 Mar 2004 16:33:06 +0200 > From: "Guillaume Arreckx" <bil...@ac...> > To: cde...@us... > Subject: DTD validation for libxml++ [snip] > To valide an xml document, all the user has to do is : > > try > { > xmlpp::DtdValidator validator( dtdFileName ); > xmlpp::Document *pDoc = ... > validator.validate( pDoc ); > } > catch( const xmlpp::parse_error& ) Nice. Should DtdValidator.validate() throw something other than parse_error ? A new xmlpp::validation_error type maybe ? Otherwise distinguishing between not well-formed and not valid requires something like: try { xmlpp::DtdValidator validator( dtdFileName ); xmlpp::Document *pDoc = ... } catch( const xmlpp::parse_error& ) { // DTD or document is not well-formed } try { validator.validate( pDoc ); } catch( const xmlpp:parse_error& ) { // document is not valid } as opposed to: try { xmlpp::DtdValidator validator( dtdFileName ); xmlpp::Document *pDoc = ... validator.validate( pDoc ); } catch( const xmlpp::parse_error& ) { // DTD or document is not well-formed } catch ( const xmlpp::validation_error& ) { // document is not valid } The exception handling in the first example reduces readibility, rather than moving error-handling away from the business logic. Just a thought, jon -- "A scientific theory should be as simple as possible, but no simpler." - Albert Einstein |