cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Lundquist <lundquist.m...@gmail.com>
Subject Re: Help... how can I setFeature() on JaxpParser
Date Fri, 29 Aug 2008 17:35:46 GMT

On Aug 28, 2008, at 3:18 PM, Thorsten Scherler wrote:

> not sure whether you are aware of
> http://svn.apache.org/viewvc/forrest/branches/update_cocoon_2.1.12-dev/main/webapp/WEB-INF/cocoon.xconf?diff_format=h&view=markup
> <entity-resolver logger="core.resolver">
>    <parameter name="catalog" value="resources/schema/catalog.xcat"/>
>    <parameter name="verbosity" value="$ 
> {org.apache.xml.resolver.verbosity}"/>
>  </entity-resolver>
>
> maybe that helps.

Thx for the reply, Thorsten!  Yes, I'm aware of Cocoon's catalog  
entity resolver.  I've got this transformer written a long time ago by  
somebody else, that uses Xerces but was not supplying any entity  
resolver, so I changed it to use Cocoon's catalog-based resolver, and  
it worked a lot better but was still making some network connections  
in spite of this (and for some reason, I'm getting a lot of  
"connection refused" from w3.org, all starting a couple of weeks ago,  
which is weird and is what started me down this whole path of looking  
at this transformer).

Finally I figured out that if I stick the whole DTD into a catalog,  
Xerces no longer makes these network connections.  Maybe that is what  
you were getting at above.  Anyway, I figured it out through kind of a  
roundabout way.  My original question was about setting the "load- 
external-dtd" feature, because a guy on the Xerces list told me that  
would magically fix this problem.  I went ahead and did that, but it  
was bum advice... it does not fix the problem, and indeed looking at  
the Xerces source code I see that it has nothing to do with it.  Then  
I ran across this post:

	http://tersesystems.com/post/6000058.jhtml

which confirmed what I a was seeing from experience and also looking  
at the Xerces source.  He goes one to describe the "crushingly  
obvious" solution of writing a wrapper class for the EntityResolver.   
But if you consider what his wrapper class is actually doing, it's  
acttually a kind of degenerate, hard-coded catalog!  So if you have a  
catalog entity resolver already, the even more "crushingly obvious"  
solution is to enter the DTD in a catalog.  Poofo, problem solved! :-)

cheers & thx again,
—ml—


Mime
View raw message