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—

Reply via email to