Hi,

Subodh Natu wrote:
> Hi
> 
> I am using castor framework to unmarshall xml in my java code. I believe I
> am using "castor-0.9.4.1.jar" (I say, I believe, because I am not too sure
> about it. When I extracted the castor.jar it has a file "_
> castor-0.9.4.1.jar _" at the root directory of the jar).
0.9.4.1 is veyr old, indeed .. ;-(. Given that half a decade passed
since that release has been made available, I personally would advise
you to upgrade to a newer relase, especially as
Unmarshaller.setIgnoreExtraElements() has been designed for exactly this
case.

Regards
Werner

> Here's my problem: My application parses an xml message for which the
> required java classes have been generated using castor code generation. The
> application is in production and has been working fine for over a year.
> Recently my client introduced two extra tags in the xml and now (as
> expected) it is throwing parser exceptions (*org.xml.sax.SAXException:
> unable to find FieldDescriptor for 'tokenStatusxxx' in ClassDescriptor of
> operator*).
> 
> I searched a lot for solution to this issue so that I don't have to do any
> code change or even if I do need to change code, I should be able to do it
> in such a way that further changes to xml should not require java code
> change or code-generatation of classes based on new schema.
> 
> I found couple of solutions:
> 
>    1. org.exolab.castor.xml.strictelements=false
>    2. Introduce mapping xml and set the field to [transient=true]  (ref:
>    http://www.mail-archive.com/[email protected]/msg02892.html)
>    3. Unmarshaller unm = new Unmarshaller(...); unm.*setIgnoreExtraElements*
>    (true);
> 
> I have tried doing the above two approaches (1 & 2), but I am still not able
> to make the parser ignore the extra elements. I am not able to use the third
> approach because I do not see this "*setIgnoreExtraElements*" method on
> Unmarshaller object. I do see the "setIgnoreExtraAttributes()" method but
> NOT the "*setIgnoreExtraElements()*".
> 
> I do not have option to upgrade to latest version of castor to see if it
> resolves my issues. I guess my question is are any of the above mentioned
> approaches ONLY available in most recent versions of castor. Were they not
> available in 0.9.4.1 version.
> 
> At this point my last option is to generate the code again based on new
> schema and deliver the jar to client so that the new tags are parsed
> correctly, even though my application has absolutely no use for those tags.
> 
> I would highly appreciate if some one help me with a solution that doesn't
> require code-generation based on new schema.
> 
> Thanks
> Subodh Natu
> 

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to