Joerg,

Thanks for the reply!

> > I am trying to use the document() function to "import" some data
> > from an external XML file.
> >
> > I.e.: <xsl:value-of select="document('somefile.xml')/somenode"/>
> >
> > At the same time, I am using the catalog to resolve the DTD. However,
> > I noticed that when using the document() function, the catalog
> > resolver isn't used,
>
> That's true, the document() function does not use the catalogue
> resolver.
>
> > so I actually have to hard code the location of the DTD directly
> > into somefile.xml.
>
> But I do not understand how this should be related. You wrote above
> you are already "using the catalog to resolve the DTD". Why you are
> forced to hard code the path to the DTD?

In 'somefile.xml', I found that I have to be able to point to the DTD as
follows:

<!DOCTYPE somenode PUBLIC "-//Some DTD//EN"
    "some/hardcoded/path/somedtd.dtd">

The reason I have to hardcode the path is because the DTD is not located
otherwise.

Really, I have two choices: (1) to completely leave out the DTD, or (2) to
hard-code it.

I don't like either choice. I want to have the DTD, but I don't want to have
to hard-code it, either.


What happens when I don't hard-code the DTD is that the system generates a
TransformerException (see extract of core.log below) and won't return any
value (or maybe returns "null", which for all practical purposes is the same
thing in this case).

In other words, <xsl:value-of select="document('somefile.xml')/somenode"/>
returns null, when it should be returning some value.


> Not that long ago someone else suggested to support the catalogues
> in the document function, but it was not implemented since then.
> I know that Ant supports it. Maybe someone has only to provide a
> patch :)

Is that a hint? ;-)

If so, tell me where to look, and I'll see if I can make the time to look
into that some day.


Thanks!


Dave


Generated log (edited to "fit" into and email for readability and also to
hide the actual local paths):

DEBUG   (2004-04-20) 05:39.11:119   [core.xslt-processor] (/ns/contract)
        PoolThread-4/XSLTProcessorImpl:
          resolve(href = some/href/somefile.xml,
            base = file:/some/base);
            resolver =
[EMAIL PROTECTED]
DEBUG   (2004-04-20) 05:39.11:129   [core.xslt-processor] (/ns/contract)
        PoolThread-4/XSLTProcessorImpl:
          xslSource = [EMAIL PROTECTED],
            system id = file:/some/full/path/commission.xml
WARN    (2004-04-20) 05:39.11:399   [core.xslt-processor] (/ns/contract)
        PoolThread-4/TraxErrorHandler:
          Error in TraxTransformer:
            file:/some/application/path/contract/contract.xslt;
            Line 74; Column 99; ;
            SystemID: file:/some/application/path/contract/contract.xslt;
            Line#: 74; Column#: 99

javax.xml.transform.TransformerException: Can not load requested doc:
location/of/dtd/somefile.dtd (The system cannot find the file specified)
        at org.apache.xalan.templates.FuncDocument.warn(FuncDocument.java:456)
        at org.apache.xalan.templates.FuncDocument.getDoc(FuncDocument.java:393)
        at org.apache.xalan.templates.FuncDocument.execute(FuncDocument.java:229)
        at
org.apache.xpath.axes.FilterExprIteratorSimple.executeFilterExpr(FilterExprI
teratorSimple.java:157)
        at
org.apache.xpath.axes.FilterExprWalker.setRoot(FilterExprWalker.java:166)
        at org.apache.xpath.axes.WalkingIterator.setRoot(WalkingIterator.java:191)
        at org.apache.xpath.axes.NodeSequence.setRoot(NodeSequence.java:250)
        at org.apache.xpath.axes.LocPathIterator.execute(LocPathIterator.java:249)
        at org.apache.xpath.XPath.execute(XPath.java:306)
        at org.apache.xalan.templates.ElemVariable.getValue(ElemVariable.java:316)
        at org.apache.xalan.templates.ElemVariable.execute(ElemVariable.java:284)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at org.apache.xalan.templates.ElemChoose.execute(ElemChoose.java:165)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java:429)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:215)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java:429)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:215)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:
716)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java:429)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:215)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:
716)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java:429)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:215)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java:429)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:215)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at org.apache.xalan.templates.ElemCopy.execute(ElemCopy.java:153)
        at
org.apache.xalan.templates.ElemApplyTemplates.transformSelectedNodes(ElemApp
lyTemplates.java:429)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:215)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2362)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Transformer
Impl.java:2228)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
ava:1306)
        at
org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3376)
        at
org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerH
andlerImpl.java:427)
        at
org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
        at
org.apache.cocoon.transformation.TraxTransformer.endDocument(TraxTransformer
.java:579)
        at
org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
        at
org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:91)
        at
org.apache.cocoon.components.sax.XMLTeePipe.endDocument(XMLTeePipe.java:102)
        at
org.apache.cocoon.components.sax.XMLByteStreamInterpreter.parse(XMLByteStrea
mInterpreter.java:120)
        at
org.apache.cocoon.components.sax.XMLByteStreamInterpreter.deserialize(XMLByt
eStreamInterpreter.java:110)
        at
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline
.processXMLPipeline(AbstractCachingProcessingPipeline.java:270)
        at
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(Abs
tractProcessingPipeline.java:501)
        at
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(Seri
alizeNode.java:147)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invok
e(PreparableMatchNode.java:164)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(Pipel
ineNode.java:163)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(Pipe
linesNode.java:152)
        at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess
or.java:354)
        at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess
or.java:307)
        at
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNod
e.java:133)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:84)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invok
e(PreparableMatchNode.java:164)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(Pipel
ineNode.java:163)
        at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo
keNodes(AbstractParentProcessingNode.java:108)
        at
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(Pipe
linesNode.java:152)
        at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess
or.java:354)
        at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess
or.java:307)
        at org.apache.cocoon.Cocoon.process(Cocoon.java:656)
        at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1112)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:360)
        at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandl
er.java:294)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:558)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1714)
        at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext
.java:507)
        at org.mortbay.http.HttpContext.handle(HttpContext.java:1664)
        at org.mortbay.http.HttpServer.service(HttpServer.java:863)
        at org.mortbay.http.HttpConnection.service(HttpConnection.java:775)
        at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:939)
        at org.mortbay.http.HttpConnection.handle(HttpConnection.java:792)
        at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:201)
        at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:289)
        at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:455)


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to