You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by do...@cocoon.apache.org on 2004/07/02 14:36:10 UTC
[Cocoon Wiki] Updated: Saxon
Date: 2004-07-02T05:36:10
Editor: DavidCrossley <cr...@apache.org>
Wiki: Cocoon Wiki
Page: Saxon
URL: http://wiki.apache.org/cocoon/Saxon
no comment
Change Log:
------------------------------------------------------------------------------
@@ -1,42 +1,42 @@
== Using Saxon ==
(This procedure is for both Saxon6.5 and Saxon8)
-Add saxon6.5.2.jar to lib/local/
+Add saxon8.jar to lib/local/
Edit src/webapp/WEB-INF/cocoon.xconf and declare the component for Saxon after the other xslt-processor components ...
-{{{
-<component logger="core.xslt-processor"
- role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon"
- class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl">
- <parameter name="use-store" value="true"/>
- <parameter name="incremental-processing" value="false"/>
- <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/>
-</component>
+{{{
+<component logger="core.xslt-processor"
+ role="org.apache.excalibur.xml.xslt.XSLTProcessor/saxon"
+ class="org.apache.excalibur.xml.xslt.XSLTProcessorImpl">
+ <parameter name="use-store" value="true"/>
+ <parameter name="incremental-processing" value="false"/>
+ <parameter name="transformer-factory" value="net.sf.saxon.TransformerFactoryImpl"/>
+</component>
}}}
Note: For Saxon7 and Saxon8 use "transformer-factory" net.sf.saxon.!TransformerFactoryImpl and for Saxon6 use com.icl.saxon.!TransformerFactoryImpl
Edit src/webapp/samples/hello-world/sitemap.xmap to add the "xslt-saxon" transformer ...
-{{{
-<map:components>
- <map:transformers default="xslt">
- <map:transformer name="xslt-saxon" pool-grow="2" pool-max="32" pool-min="8"
- src="org.apache.cocoon.transformation.TraxTransformer">
- <use-request-parameters>false</use-request-parameters>
- <use-browser-capabilities-db>false</use-browser-capabilities-db>
- <xslt-processor-role>saxon</xslt-processor-role>
- </map:transformer>
- </map:transformers>
-</map:components>
+{{{
+<map:components>
+ <map:transformers default="xslt">
+ <map:transformer name="xslt-saxon" pool-grow="2" pool-max="32" pool-min="8"
+ src="org.apache.cocoon.transformation.TraxTransformer">
+ <use-request-parameters>false</use-request-parameters>
+ <use-browser-capabilities-db>false</use-browser-capabilities-db>
+ <xslt-processor-role>saxon</xslt-processor-role>
+ </map:transformer>
+ </map:transformers>
+</map:components>
}}}
Add a sitemap match to use the xslt-saxon transformer ...
-{{{
-<map:match pattern="hello.html">
- <map:generate src="content/hello.xml"/>
- <map:transform type="xslt-saxon" src="style/xsl/page2html.xsl"/>
- <map:serialize type="html"/>
-</map:match>
+{{{
+<map:match pattern="hello.html">
+ <map:generate src="content/hello.xml"/>
+ <map:transform type="xslt-saxon" src="style/xsl/page2html.xsl"/>
+ <map:serialize type="html"/>
+</map:match>
}}}
If you want to see Saxon being used then raise the ExploringTheLogs and look in core.log
@@ -44,8 +44,8 @@
----
== Other Issues ==
There is a problem with XSP in combination with Saxon7. When the Saxon libraries are in your classpath, the root element of a page generated by XSP gets two extra namespace attributes:
-{{{
-xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsp="http://apache.org/xsp"
+{{{
+xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsp="http://apache.org/xsp"
}}}
This is only noticeable if the XSP generator is immediately followed by a serializer. In this case, Internet Explorer will complain: ''The namespace prefix is not allowed to start with the reserved string "xml".''
Firefox won't mind these namespace prefixes.