> Alexander Daniel schreef:
> > I don't know direct answers to your questions but I can recommend a 
> > different approach:
> >
> > Instead of using the XSLT document() function you could use the 
> > Include transformer 
> > (org.apache.cocoon.transformation.IncludeTransformer) which also 
> > supports caching. We use it successfully in our project.
> >
> > Alex
> >
> We do use the cinclude transformer in the same project. But 
> in this case 
> i need to check the contents of the document before it can be 
> included. 
> This would require a few extra steps if we would use the cinclude 
> transformer so that option is not preferable over the xpath document 
> function.

I am not aware exactly of your problem, but you should be aware of possible 
caching problems using the xslt document() function (changing the imported 
document contents won't make it to your result if the result is cached)

regards Ard

> 
> For example:
> <xsl:variable name="doc" select="document(@path)"/>
> <xsl:if test="$doc/some-element">
>   <xsl:copy-of select="$doc"/>
> ....
> 
> I think the XSLT processor should be aware of the catalog 
> file in this 
> case.
> 
> Jan Willem
> 
> > On Jun 21, 2007, at 1:21 PM, Jan-Willem Boer wrote:
> >
> >> Jan Willem Boer schreef:
> >>> Hi,
> >>>
> >>> I ran into a problem with the catalog file and the xslt 
> document() 
> >>> function.
> >>>
> >>> To include a document into the XML that flows through a Cocoon 
> >>> pipeline, I am using the document() function in an XSLT 
> stylesheet:
> >>>    <xsl:copy-of select="document(@path)"/>
> >>>
> >>> The document-to-include contains a DOCTYPE declaration 
> referring to 
> >>> an external entity:
> >>>    <!DOCTYPE something PUBLIC "-//Company//DTD SOMETHING-XML//NL" 
> >>> "something.dtd">
> >>>
> >>> I added the DTD-file to the directory WEB-INF/entities 
> and added a 
> >>> line to the catalog file containing the PUBLIC and SYSTEM 
> identifiers.
> >>>
> >>> The problem occurs when i use the document function to 
> include the 
> >>> document directly with an absolute path, the catalog file is 
> >>> ignored, and the DTD is not found.
> >>> To circumvent this, I was forced to redirect the 
> document() function 
> >>> to a cocoon pipeline like this:
> >>>    <xsl:copy-of select="document('cocoon://get-file/' + @path)"/>
> >> this should of course be
> >> <xsl:copy-of select="document(concat('cocoon://get-file/', 
> @path))"/>
> >>>
> >>> instead of
> >>>    <xsl:copy-of select="document(@path)"/>
> >>>
> >>> Cocoon reads the catalog and does not complain, so at 
> least I have 
> >>> it working now.
> >>>
> >>> I was wondering (1) if this is expected behaviour (2) if there is 
> >>> another, more elegant way to solve this: can the XSLT 
> processor be 
> >>> instructed to read the catalog somehow?
> >>>
> >>> Jan Willem Boer
> >>> http://www.linkedin.com/in/janwillemboer
> >>
> >
> >
> > 
> ---------------------------------------------------------------------
> > 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