Hi Geert,
I am still having problems with just executing one more pattern in the
pipeline from my XSL sheet.
I get this error:
org.apache.avalon.framework.CascadingException: Resouce not found:
cocoon://appname/get-images

My stylesheet (checkImage.xsl):
<xsl:stylesheet ...>
        blah blah to get the node
   <xi:include src="cocoon:/get-images{.}"
xmlns:xi="http://www.w3.org/2001/XInclude"; parse="xml" />

My sitemap:
       <map:match pattern="test.xsl">
         <map:generate src="test.xml" type="file"/>
         <map:transform src="checkImage.xsl" type="xslt-saxon"/>
         <map:transform type="xinclude"/>
        <map:serialize type="xml"/>
       </map:match>

     <map:match pattern="get-images/*">
     <map:generate type="directory">
             <map:parameter name="src" value="{1}"/>
     </map:generate>
        <-- do nothing after this as we want to test the xi:include -->
          <map:serialize type="xml"/>
     </map:match>

Any idea what's going wrong? Am I doing the xi:include in a wrong way?

Thanks,
Hiral



-----Original Message-----
From: Geert Josten [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 18, 2005 1:07 PM
To: [email protected]
Subject: Re: XSL File I/O

> But for some reason it does not go to the sitemap 
> pattern="get-image-url/*.jpg".
> I renamed the pattern name in the sitemap to something else so that it 
> does not match, just to check if the Cocoon throws any error. But no
error.

There might be a more greedy match before this one, or in a 'higher' sitemap
(= closer to webapp root dir).

Or could be that you just need to use ** instead of *?

> I know that the XSL matches the template <xsl:template 
> match="foo/@image-url"> as I am able to print some debug statements.
> I tried <xi:include>,bu obviously it just inserted that line of code 
> in the outcoming XML.
> 
> How can I transfer the control to Cocoon sitemap from the XSL and then 
> get the XML inserted in the XSL?
> In simple words:
>       <xsl:template match="foo/@image-url">
>               Go to Sitemap to match some pattern "get-image-url{.}"
>               Do the transformation 
>       Get the XML back in this XSL
>       Continue with transformation

Once again: most obvious option is document(), but because of the earlier
mentioned bug, you might not want to use it. Though, placing your <generate
type="directory"/> in a <pipeline type="non-caching"> might circumvent the
bug. Haven't tested.

Alternatively, you could add a literal <xi:include> in your xsl and
transform it with <transform type="xinclude"> _before_ using it in a
<transform type="xsl">. Much more code though. It will more or less look
like this:

<map:match pattern="get-images.xml">
   <map:generate type="directory">
     <map:parameter name="include" value="*.jpg"/>
   </map:generate>
   <map:serialize type="xml"/>
</map:match>

<map:match pattern="**.xsl">
   <map:generate src="{1}.xsl"/>
   <map:transform type="xinlcude"/>
   <map:serialize type="xml" />
</map:match>

<map:match pattern="process-images/**">
   <map:generate src="cocoon:/{1}" />
   <map:transform src="cocoon:/process-images.xsl"/>
   <map:serialize type="xml" />
</map:match>

<!-- and in your xsl -->

<xsl:stylesheet ...>

   <xi:include src="cocoon:/get-images.xml" parse="xml" /> <!-- syntax
correct? -->

   <xsl:variable name="images" select="document('')/dir:directory/dir:file"
/> <!-- make sure to define the dir namespace -->

   <xsl:template match="foo/@image-url">
     <xsl:variable name="image" select="[EMAIL PROTECTED] =
current()/@image-url]"/>
     <xsl:variable name="image_temp" select="[EMAIL PROTECTED] =
concat(substring-before(current()/@image-url, '.jpg'), '_temp.jpg')]"/>
     <xsl:choose>
       <!-- sorry, bit lazy -->
       when $image insert image url
       when $image_temp insert image_temp url
       otherwise ???
     </xsl:choose>
   </xsl:template>

Once again, haven't tested, but should work i think... :)

Cheers...



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




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

Reply via email to