Werner,

See this:
http://apache.org/xml/features/nonvalidating/load-external-dtd
True:   Load the external DTD.
False:          Ignore the external DTD completely.
Default:        true
Note:   This feature is always on when validation is on.

Found this in http://xerces.apache.org/xerces-j/features.html

So, if you want the xml to be validated against the schema but ignore
dtd fetching, it is not possible.

Is there any other way, I can ignore that non-existent dtd?

~Sandeep

On 1/11/07, Sandeep <[EMAIL PROTECTED]> wrote:
Werner

But you can see that the sax parsing does not fetch the dtd while I
set that flag to false in code. It is only the call to unmarshalling
is failing, even when the flag is set via code.

~Sandeep

On 1/11/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> Sandeep,
>
> With 1.0.5, things shoudl work, especially when teh default castor.properties 
file has the corresponding property defined (though commented out). With regards 
to the custom (=user) castor.properties file, I am not actually sure. Without 
going to the sources and proff-reading, as long as you have it on the classpath 
(in root), it will be used.
>
> Werner
>
> > -----Original Message-----
> > From: Sandeep [mailto:[EMAIL PROTECTED]
> > Sent: Donnerstag, 11. Jänner 2007 14:04
> > To: [email protected]
> > Subject: Re: [castor-user] Can Castor ignore external dtd reference
> >
> > 1.0.5
> > I have this jar castor-1.0.5-xml.jar.
> >
> > And my castor.properties file inside that jar also have the
> > flag you mentioned.
> > What I am doing is extract the properties file and kept it in my pwd.
> >
> > I hope castor looks for the props file first in pwd than the jar.
> >
> > ~Sandeep
> >
> > On 1/11/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> > > Just to make sure: what version of Castor are you using ?
> > >
> > > Werner
> > >
> > > > -----Original Message-----
> > > > From: Sandeep [mailto:[EMAIL PROTECTED]
> > > > Sent: Donnerstag, 11. Jänner 2007 13:44
> > > > To: [email protected]
> > > > Subject: Re: [castor-user] Can Castor ignore external dtd
> > reference
> > > >
> > > > Hi Stephen, Werner
> > > >
> > > > Thanks for your help. Looks like things are moving though with
> > > > hiccups!
> > > >
> > > > Here is my code, which I use to unmarshall the xml from
> > the server:
> > > >
> > > > String xml = server.get(OBJECT_ID);
> > > > ....
> > > > Mapping mapping = new Mapping();
> > > > mapping.loadMapping("event-mapping.xml");
> > > > Unmarshaller um1 = new Unmarshaller(); um1.setMapping(mapping);
> > > >
> > > > //code suggested by Stephen
> > > > SAXParserFactory factory = SAXParserFactory.newInstance();
> > > > factory.setValidating( false ); XMLReader xmlReader =
> > > > factory.newSAXParser().getXMLReader();
> > > > xmlReader.setFeature("http://apache.org/xml/features/nonvalida
> > > > ting/load-external-dtd",
> > > > false );
> > > > UnmarshalHandler handler = um1.createHandler();
> > > > xmlReader.setContentHandler( handler );
> > xmlReader.setErrorHandler(
> > > > handler ); xmlReader.parse( new InputSource(new
> > StringReader(xml)));
> > > >
> > > > events = (MyEvents)um1.unmarshal(new StringReader(xml)); ......
> > > >
> > > > My castor.properties file(relevant ones):
> > > > org.exolab.castor.parser=org.apache.xerces.parsers.SAXParser
> > > > org.exolab.castor.xml.serializer.factory=org.exolab.castor.xml
> > > > .XercesXMLSerializerFactory
> > > > org.exolab.castor.parser.validation=false
> > > > org.exolab.castor.parser.namespaces=false
> > > > org.exolab.castor.marshalling.validation=false
> > > > org.exolab.castor.sax.features-to-disable=http://apache.org/xm
> > > > l/features/nonvalidating/load-external-dtd
> > > >
> > > > In both the cases, I am getting the same error. The error
> > is during
> > > > unmarshalling. Although the parse method returns
> > successfully after
> > > > setting the load-external-dtd to false.
> > > > Am I missing something?
> > > >
> > > > http://10.72.181.103:8088/comp_server.dtd
> > > >         at
> > > >
> > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:727)
> > > >         at
> > > >
> > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:588)
> > > >         at Performance.getEventsUsingXSD(Performance.java:134)
> > > >         at Performance.main(Performance.java:56)
> > > > Caused by: java.io.FileNotFoundException:
> > > > http://10.72.181.103:8088/comp_server.dtd
> > > >         at
> > > > sun.net.www.protocol.http.HttpURLConnection.getInputStream(Htt
> > > > pURLConnection.java:1131)
> > > >         at
> > > > org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > > > Source)
> > > >         at
> > > >
> > org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.di
> > > > spatch(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocu
> > > > ment(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> > > >         at
> > > > org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> > > >         at
> > org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> > > >         at
> > > > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> > > >         at
> > > >
> > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:718)
> > > >         ... 3 more
> > > > Caused by: java.io.FileNotFoundException:
> > > > http://10.72.181.103:8088/comp_server.dtd
> > > >         at
> > > > sun.net.www.protocol.http.HttpURLConnection.getInputStream(Htt
> > > > pURLConnection.java:1131)
> > > >         at
> > > > org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown
> > > > Source)
> > > >         at
> > > >
> > org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLEntityManager.startDTDEntity(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.di
> > > > spatch(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocu
> > > > ment(Unknown
> > > > Source)
> > > >         at
> > > > org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> > > >         at
> > > > org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> > > >         at
> > org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> > > >         at
> > > > org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> > > >         at
> > > >
> > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:718)
> > > >         at
> > > >
> > org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:588)
> > > >         at Performance.getEventsUsingXSD(Performance.java:134)
> > > >         at Performance.main(Performance.java:56)
> > > >
> > > > ~Sandeep
> > > >
> > > >
> > > > On 1/11/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> > > > > Could as well be .. ;-). If you still insist on knowing the
> > > > truth and
> > > > > nothing but the truth, src/doc/release-notes.xml is your
> > > > friend .. ;-).
> > > > >
> > > > > Werner
> > > > >
> > > > > Stephen Bash wrote:
> > > > > > Werner-
> > > > > >
> > > > > > Did I ever actually file a bug against this case?  I know
> > > > I thought
> > > > > > about it, but wasn't sure how far it went...  If not,
> > it seems
> > > > > > someone else complained huh? ;)
> > > > > >
> > > > > > Stephen
> > > > > >
> > > > > >
> > > > > > On 1/10/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> > > > > >> Stephen and Sandeep,
> > > > > >>
> > > > > >> a few weeks ago (please check the release notes for
> > > > details), a new
> > > > > >> property has been added to the castor.propeties file
> > to turn a
> > > > > >> JAXP/SAX feature off.
> > > > > >>
> > > > > >> org.exolab.castor.sax.features-to-disable
> > > > > >>
> > > > > >> This might ease your job, I assume .. ;-)
> > > > > >>
> > > > > >> Werner
> > > > > >>
> > > > > >> Stephen Bash wrote:
> > > > > >> > Sandeep-
> > > > > >> >
> > > > > >> > This echoes back to a problem quite a few months
> > > > (possibly a year
> > > > > >> > or
> > > > > >> > two) ago.  If you are using the Xerces parser, there
> > > > is a way to
> > > > > >> > tell it to ignore that DOCTYPE.  As I remember though,
> > > > you have
> > > > > >> > to create the parser yourself, configure it correctly and
> > > > > >> > then have Castor use that parser rather than allowing
> > > > Castor to create
> > > > > >> > a parser.  The problem stems from Castor only being
> > > > able to turn
> > > > > >> > ON parser features, and in this case you actually need
> > > > to turn OFF a feature.
> > > > > >> >
> > > > > >> > For more info, see this old post:
> > > > > >> >
> > > > > >> >
> > > > http://www.mail-archive.com/[email protected]/msg02609.htm
> > > > > >> > l
> > > > > >> >
> > > > > >> > Stephen
> > > > > >> >
> > > > > >> >
> > > > > >> > On 1/10/07, Sandeep <[EMAIL PROTECTED]> wrote:
> > > > > >> >> Hi
> > > > > >> >>
> > > > > >> >> I am working on a project to apply data binding to a
> > > > legacy xml
> > > > > >> >> client-server application.
> > > > > >> >>
> > > > > >> >> For every xml that my server returns, it has the
> > following
> > > > > >> >> header
> > > > > >> part:
> > > > > >> >>
> > > > > >> >> <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE comp
> > > > > >> >> SYSTEM 'http://10.72.181.103:8088/comp_server.dtd'>
> > > > > >> >> <comp>
> > > > > >> >> .....
> > > > > >> >> </comp>
> > > > > >> >>
> > > > > >> >> The dtd file comp_server.dtd is non-existent. It
> > was there
> > > > > >> >> as part of some kind of server's internal logic.
> > > > > >> >>
> > > > > >> >> Now, my castor is failing saying unable to locate
> > > > > >> >> comp_server.dtd which is obvious.
> > > > > >> >>
> > > > > >> >> My question is, how can I make castor to ignore that
> > > > DOCTYPE element.
> > > > > >> >>
> > > > > >> >> Currently, I am doing a crude way of String.substring and
> > > > > >> >> passing only <comp> ...
> > > > > >> >> </comp>
> > > > > >> >> to castor. But this is a hack!!
> > > > > >> >>
> > > > > >> >> ~Sandeep
> > > > > >> >>
> > > > > >> >>
> > > > ----------------------------------------------------------------
> > > > > >> >> ----- 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
> > > > > >> >
> > > > > >>
> > > > > >>
> > > > > >>
> > > >
> > -------------------------------------------------------------------
> > > > > >> -- 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
> > > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > --------------------------------------------------------------------
> > > > -
> > > > > 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
> > > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > 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
> >
>
> ---------------------------------------------------------------------
> 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

Reply via email to