Jan Hoskens wrote:
Hi,
You mean to use that in the sitemap? The document() is in the stylesheet so the cocoon protocols do not apply there (or do they???).
surprise surprise: they do.
If I try to resolve the path in the sitemap, there has to be a matching pipeline and the result will be a xml fragment. I tried to pass a documentpiece as parameter (as a quick tryout) but that didn't seem to work. Is it possible to do that? Passing a document fragment from the sitemap to the stylesheet?
Nope, David means you can just use that inside your xsl document() as well.
Would need to check in detail, but what happens is roughly this:
- cocoon creates the XSLT transformer, and through avalon's lifecycle that one can get a hold of the cocoon environment's source resolver (the same one used inside the sitemap indeed)
- now, inside that transformer you can expect some javax.xml.transform.Transformer to be created, upon which we can safely register a custom URIResolver
see also: http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/transform/Transformer.html#setURIResolver(javax.xml.transform.URIResolver)
so, that one gets used for resolving the URI-String inside the document() function
hope this clears up the mystery?
-marc=
Greetz,
Jan
----- Original Message ----- *From:* Carmona Perez, David <mailto:[EMAIL PROTECTED]> *To:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> *Sent:* Monday, January 05, 2004 3:02 PM *Subject:* RE: Jetty and XSLT with document()
As a workaround to the problem, why don’t try to use another protocol like:
context:/myPath/myFile.xml or cocoon:/url
?
/--------/
/David/
-----Mensaje original----- *De:* Jan Hoskens [mailto:[EMAIL PROTECTED] *Enviado el:* lunes, 05 de enero de 2004 14:53 *Para:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> *Asunto:* Jetty and XSLT with document()
Hi,
I'm using a stylesheet with a variable that contains a nodeset variable:
<xsl:variable name="Lookup" select="document('../resources/Lookup.xml')/Lookup"/>
The path in the document() function is relative and does work under Tomcat.
If I switch to jetty, an exception occurs when I want to use the variable as a nodeset:
<xsl:if test="$Lookup/Item">
FATAL_E (2004-01-05) 13:48.36:637 [core.xslt-processor] (/cocoontest/index.html) PoolThread-4/TraxErrorHandler: Error in TraxTransformer: file:/d:/cocoontest/stylesheets/wdc2html.xsl; Line 101; Column 54; ; SystemID: file:/d:/cocoontest/stylesheets/wdc2html.xsl; Line#: 101; Column#: 54 javax.xml.transform.TransformerException: java.lang.ClassCastException
It seems that under Jetty, the variable does not contain the xml document at all and gives an exception because the test expects a nodeset but does not receive one?
Why doesn't Jetty give me the document as Tomcat does??
Or is it wrong to use paths relative to the xsl document in the xsl itself?
Thankzz,
Jan
-- Marc Portier http://outerthought.org/ Outerthought - Open Source, Java & XML Competence Support Center Read my weblog at http://blogs.cocoondev.org/mpo/ [EMAIL PROTECTED] [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
