Stephen,

Thanks for your quick reply!  I'll check into Jira to see if an entry
has already been created.

In the meantime, I have been trying to configure Castor's ErrorHandler
with one of my own in the following way:

        
LocalConfiguration.getInstance().getXMLReader().setErrorHandler(handler)
; 

Where handler is my own implementation of an ErrorHandler class.  It is
also the class that calls Castor's unmarshal method.  I haven't had any
luck with it, but I'm still trying.

Thanks again

Patty



-----Original Message-----
From: Stephen Bash [mailto:[EMAIL PROTECTED] 
Sent: Thursday, March 23, 2006 8:26 AM
To: [email protected]
Subject: Re: [castor-user] When unmarshalling, need Castor to validate
entire document against schema instead of quitting after first
validation error

Eek!  I retract everything I said, it really probably is something we
can control in Castor.  Patty, can you do a quick search in Jira to make
sure this issue doesn't already exist, and then create one so we can
keep track of the progress on the issue?

Thanks,
Stephen


On 3/23/06, Stephen Bash <[EMAIL PROTECTED]> wrote:
> Patty-
>
> I'm not 100% sure, but I think this is really a parser issue.  I think

> validation errors look like normal SAXExceptions to Castor, so there 
> isn't really a way to recover...  But I'd be happy to be corrected.
> With that in mind, one parser feature you can look into is the
> following:
>
>    http://apache.org/xml/features/continue-after-fatal-error
>
> Unfortunately on the Xerces website, the following warning is
attached:
>
> "The behavior of the parser when this feature is set to true is 
> undetermined! Therefore use this feature with extreme caution because 
> the parser may get stuck in an infinite loop or worse."
>
> This is actually a fairly regularly requested feature, so please let 
> us know if you find something that does the trick.
>
> Stephen
>
> On 3/22/06, Parker, Patricia (Contr) <[EMAIL PROTECTED]> wrote:
> >
> >
> > Hi
> >
> > I would like to validate my entire instance document against an XML 
> > schema during the unmarshalling process and accumulate all the 
> > validation exceptions so that I may send them back to the document 
> > creator so they may all be fixed.  Right now, Castor is throwing the

> > first ValidationException and stopping the schema validation 
> > process.  Is there a way to tell Castor to validate the entire 
> > document before stopping (i.e. make a ValidationException a
non-fatal error)?
> >
> > My Castor driver method:
> >
> >                 //unmarshal xml
> >                 boolean isSuccessful = true;
> >
> >                 Reader toParse = new StringReader((String) 
> > xmlToParse);
> >
> >                 try
> >                 {
> >                         Mapping mapping = new Mapping();
> >                         mapping.loadMapping(mapFileName);
> >                         Unmarshaller un = new
Unmarshaller(castorClass);
> >                         un.setMapping(mapping );
> >                         un.setWhitespacePreserve(true);
> >                         un.setValidation(true);
> >                         try
> >                         {
> >                                 castorVO = (AbstractCastorVO) 
> > un.unmarshal(toParse);
> >                         }
> >                         catch (ValidationException ex)
> >                         {
> >
parserMessageList.add(ex.getMessage());
> >                         }
> >                         catch(MarshalException ex)
> >                         {
> >
parserMessageList.add(ex.getMessage());
> >                         }
> >
> >                         toParse.close();
> >                 }
> >
> >                 catch (IOException ex)
> >                 {
> >                         isSuccessful = false;
> >                         parserMessageList.add(ex.getMessage());
> >                 }
> >                 catch (MappingException ex)
> >                 {
> >                         isSuccessful = false;
> >                         parserMessageList.add(ex.getMessage());
> >                 }
> >                 catch (MarshalException ex)
> >                 {
> >                         isSuccessful = false;
> >                         parserMessageList.add(ex.getMessage());
> >                 }
> >
> >                 return isSuccessful;
> >
> >
> > My castor.properties settings:
> >
> > # True if xml documents should be validated by the SAX Parser # 
> > org.exolab.castor.parser.validation=true
> >
> > # Per Patty - set to false when generating code # then set to true 
> > for un/marshalling org.exolab.castor.parser.namespaces=true
> >
> >
> > # True if all documents should be validated by the marshalling 
> > framework # org.exolab.castor.marshalling.validation=true
> > org.exolab.castor.unmarshalling.validation=true
> >
> >
org.exolab.castor.sax.features=http://xml.org/sax/features/validation,\
> >         http://apache.org/xml/features/validation/schema,\
> >
> > http://apache.org/xml/features/validation/schema-full-checking
> >
> > # Comma separated list of SAX 2 features that should be enabled # 
> > for the default parser.
> > #
> > #org.exolab.castor.features=
> >
> > Thank you for your help
> >
> > Patty
>

-------------------------------------------------
If you wish to unsubscribe from this list, please
send an empty message to the following address:

[EMAIL PROTECTED]
-------------------------------------------------

Reply via email to