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]