By the way, 

what are you using the catalog for anyway? Does sound like some sort of i18n. 
Trying to simulate i18n stuff in xsl can/will result easily in absurd 
inefficient xsls, taking up to seconds to run,

Regards Ard


> 
> 
> 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.
> 
> 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