Ard Schrijvers schreef:
By the way,uhm... the catalog file is used for mapping PUBLIC id's to alternative SYSTEM id's ...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
No i18n involved in this case. Jan Willem
Alexander Daniel schreef:I don't know direct answers to your questions but I can recommend a different approach: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.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.AlexFor 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 Willemdocument()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 xsltfunction.To include a document into the XML that flows through a Cocoon pipeline, I am using the document() function in an XSLTstylesheet:referring to<xsl:copy-of select="document(@path)"/>The document-to-include contains a DOCTYPE declarationand added aan external entity:<!DOCTYPE something PUBLIC "-//Company//DTD SOMETHING-XML//NL" "something.dtd">I added the DTD-file to the directory WEB-INF/entitiesline to the catalog file containing the PUBLIC and SYSTEMidentifiers.include theThe problem occurs when i use the document function todocument() functiondocument directly with an absolute path, the catalog file is ignored, and the DTD is not found. To circumvent this, I was forced to redirect theto 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))"/>least I haveinstead of <xsl:copy-of select="document(@path)"/>Cocoon reads the catalog and does not complain, so atprocessor beit working now.I was wondering (1) if this is expected behaviour (2) if there is another, more elegant way to solve this: can the XSLTinstructed 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]
smime.p7s
Description: S/MIME Cryptographic Signature
