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]
-------------------------------------------------