You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by bu...@apache.org on 2003/03/10 14:16:16 UTC

DO NOT REPLY [Bug 17825] New: - XSLTC assumes context-relative paths, not directory-relative

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17825>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=17825

XSLTC assumes context-relative paths, not directory-relative

           Summary: XSLTC assumes context-relative paths, not directory-
                    relative
           Product: Cocoon 2
           Version: Current CVS
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Blocker
          Priority: Other
         Component: sitemap components
        AssignedTo: cocoon-dev@xml.apache.org
        ReportedBy: jefft@apache.org


Say I have a stylesheet in a subdirectory, stylesheets/site2xhtml.xsl, containing:

<xsl:param name="config-file" select="'../skinconf.xml'"/>

This is intended to reference a file 'skinconf.xml' in the context root. Works
fine with vanilla Xalan.

When I use XSLTC, the the '../skinconf.xml' isn't resolved properly.  If I
change it to 'skinconf.xml' it works, from which I infer that XSLTC thinks URLs
should be resolved relative to the context, not the directory the stylesheet is
in. Here is the stacktrace:

org.apache.xalan.xsltc.TransletException: java.io.FileNotFoundException:
../skinconf.xml
    at org.apache.xalan.xsltc.dom.LoadDocument.document(LoadDocument.java:137)
    at org.apache.xalan.xsltc.dom.LoadDocument.document(LoadDocument.java:216)
    at site2xhtml.topLevel()
    at site2xhtml.transform()
    at
org.apache.xalan.xsltc.runtime.AbstractTranslet.transform(AbstractTranslet.java:497)
    at
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:635)
    at
org.apache.xalan.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:256)
    at
org.apache.xalan.xsltc.trax.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:240)
    at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
    at
org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer.java:498)
    at
org.apache.xerces.parsers.AbstractSAXParser.endDocument(AbstractSAXParser.java:741)
    at
org.apache.xerces.impl.XMLNamespaceBinder.endDocument(XMLNamespaceBinder.java:705)
    at
org.apache.xerces.impl.dtd.XMLDTDValidator.endDocument(XMLDTDValidator.java:918)
    at
org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(XMLDocumentScannerImpl.java:451)
    at org.apache.xerces.impl.XMLEntityManager.endEntity(XMLEntityManager.java:1246)
    at
org.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManager.java:3283)
    at
org.apache.xerces.impl.XMLEntityManager$EntityScanner.skipSpaces(XMLEntityManager.java:2953)
    at
org.apache.xerces.impl.XMLDocumentScannerImpl$TrailingMiscDispatcher.dispatch(XMLDocumentScannerImpl.java:1017)
    at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
    at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
    at org.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
    at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
    at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
    at org.apache.excalibur.xml.impl.JaxpParser.parse(JaxpParser.java:302)
    at org.apache.excalibur.xmlizer.DefaultXMLizer.toSAX(DefaultXMLizer.java:161)


I'm not sure if this is an XSLTC bug (isn't fixed in latest CVS anyway), or if
Cocoon isn't passing XSLTC enough context (like the XSLT's real path).

Attached is a sub-sitemap demonstrating the problem, which you should be able to
drop into build/webapp/, and access by requesting
http://localhost:8080/cocoon/xsltcbug/


--Jeff