Sorry about that. That was inconsiderate of me. I was using the static
method
Unmarshaller.unmarshal(java.lang.Class c, java.io.Reader reader)
This was causing the problem. I changed that by instantiating the
Unmarshaller with a given class:
Unmarshaller um1 = new Unmarshaller(MyMessage.class);
and then used:
um1.unmarshal(java.io.Reader reader).
MyResolver is then called properly.
Thank you,
Ron
-----Original Message-----
From: Werner Guttmann [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 01, 2008 3:19 PM
To: [email protected]
Subject: Re: [castor-user] RE: Castor unmarshaller to fetch DTD locally
instead of DTD stated in XML file
Which happens to be (for the reading benefit of other users) ?
Werner
Corcuera,Ron wrote:
> I have resolved the problem. As I suspected, it was some obvious thing
> that I was missing.
>
> Thank you,
> Ron
>
> ----------------------------------------------------------------------
> --
> *From:* Corcuera,Ron
> *Sent:* Tuesday, April 01, 2008 11:25 AM
> *To:* [email protected]
> *Subject:* Castor unmarshaller to fetch DTD locally instead of DTD
> stated in XML file
>
> We use Castor to generate Java files from a DTD file. We use
> org.exolab.castor.xml.Unmarshaller to unmarshall incoming XML files.
> Currently, Castor, using the SAX parser, fetches the DTD file stated
> in the incoming XML file. We would like for our code to fetch it from
> a local source instead.
>
>
>
> After reading some documentation, it seems all I have to do is create
> a MyResolver that implements org.xml.sax.EntityResolver. I could then
> use the DTDResolver to wrap MyResolver and set the Unmarshaller to use
it.
> Unfortunately, MyResolver is never called. The parser happily parses
> away after it fetches the dtd that is stated in the XML. The solution
> seems so easy and straight forward. But, I'm obviously missing
> something. Can someone point me in the right direction?
>
>
>
> Here is a code snippet where I set the EntityResolver in the
Unmarshaller:
>
>
>
> String xmlRespString = // some xml file
>
> StringReader stringReader = new StringReader(xmlRespString);
>
> try
>
> {
>
> Unmarshaller um1 = new Unmarshaller();
>
> um1.setEntityResolver(new DTDResolver(new MyResolver()));
>
> msg = (MyMessage) um1.unmarshal(MyMessage.class, stringReader);
>
> }
>
> ...
>
>
>
> Thank you,
>
> Ron Corcuera
>
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email