Re: Problem with catalog resolver when resolving references from stylesheet document type declaration - patch available
"USHAKOV, Sergey" <[email protected]> Wed, 28 Sep 2011 12:38:19 +0400
| Newsgroups | gmane.text.xml.xalan.java.user |
|---|---|
| Message-ID | <[email protected]> |
Hi again, it looks like I have found the cause of the issue, and it looks like a bug in Xalan. Probably nobody before cared seriously about using external entities in an XSLT file. A patch to Xalan is available that fixes the issue, at least without XSLTC: https://issues.apache.org/jira/browse/XALANJ-2544 . May anybody of the commiters be in a position to have a look? Regards, Sergey ----- Original Message ----- From: "USHAKOV, Sergey" <[email protected]> To: <[email protected]> Sent: Friday, September 09, 2011 10:36 PM Subject: Problem with catalog resolver when resolving references from stylesheet document type declaration > Hi, > > I have been using Xalan-J with Catalog Resolver for a long while already. > It > was just recently that I ran into an issue with resolving. > > It happened when I got an idea to use character entities in XSLT trnsform > file and added an appropriate declaration to the XSLT file, like this: > > <!DOCTYPE transform [ > <!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined > Set//EN//XML" > "http://www.w3.org/2003/entities/2007/w3centities-f.ent"> > %w3centities-f; > ]> > <xsl:transform version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > ... > > Everything was fine, except unusual processing time, even despite the > enitities declaration was registered with the resolver. The reason became > clear when I disabled the network connection. The result was a > "java.net.UnknownHostException: www.w3.org" that flew out of > org.apache.xalan.xslt.Process. > > Enabling full debug in the resolver revealed that nothing is wrong with > it. > It honestly reported about appropriate catalog entries (correct ones), and > in case internet connection was present even reported about successful > resolving of the entities file as a local resource. The only problem was > that in case internet connection was down, the resolver was not given a > chance to respond, as the exception flew out earlier. > > Curiously, I managed to work around the problem by wrapping the XSLT file > into another one using 'xsl:include'. In that case no problems occured, > and > everything was fine regardless of the internet connection. > > My configuration is like this: > - Windows Vista; > - jdk1.6.0_25[b01_debug] > - Xalan-J 2.7.1 > - Xerces 2.11.0 > - Apache XML Commons Resolver 1.2 > > Frankly, my attempts to debug the problem were not very much successful > due > to some unclear problem in getting Xalan and Xerces source recognized by > the > Eclipse debugger... > > Still the issue looks like a bug, or may I miss something? > > Regards, > Sergey > >