You are viewing a plain text version of this content. The canonical link for it is here.
Posted to docs@cocoon.apache.org by da...@cocoon.zones.apache.org on 2007/06/04 22:27:58 UTC
[DAISY] Updated: XIncludeTransformer
A document has been updated:
http://cocoon.zones.apache.org/daisy/documentation/985.html
Document ID: 985
Branch: main
Language: default
Name: XIncludeTransformer (unchanged)
Document Type: Sitemap Component (unchanged)
Updated on: 6/4/07 8:27:49 PM
Updated by: Alexander Klimetschek
A new version has been created, state: publish
Parts
=====
Short description
-----------------
This part has been updated.
Mime type: text/xml (unchanged)
File name: (unchanged)
Size: 3073 bytes (previous version: 81 bytes)
Content diff:
<html>
<body>
--- <p>Implementation of an XInclude transformer.</p>
+++ <p>This transformer works according to the XInclude specification.</p>
+++ <p>For more information refer to the
+++ <a href="http://www.w3.org/TR/xinclude">XInclude specification</a>.</p>
+++
+++ <ul>
+++ <li>Name : xinclude</li>
+++ <li>Class: org.apache.cocoon.transformation.XIncludeTransformer</li>
+++ <li>Cacheable: yes.</li>
+++ </ul>
+++
+++ <p>You can include either simple text, or xml content. Including xml content --
+++ which is the default -- gives you the option to define an xpointer in the href
+++ attribute. Some quick xinclude examples should reveal the possibilities of
+++ xinclude.</p>
+++
+++ <ul>
+++ <li>Include an xml content as-is: <tt><xi:include
+++ href="include.xml"/></tt></li>
+++ <li>Include an xml content but pick the strong element only: <tt><xi:include
+++ href="include.xml#xpointer(/p/strong)"/></tt></li>
+++ <li>Include text content: <tt><xi:include parse="text"
+++ href="include.txt"/></tt></li>
+++ </ul>
+++
+++ <p>A simple example using xinclude might help to use this transfomer
+++ effectively:</p>
+++
+++ <p>Add the XIncludetransfomer to the components in your sitemap.xmap</p>
+++
+++ <pre>...
+++ <map:components>
+++ ...
+++ <map:transformers default="xslt">
+++ ...
+++ <map:transformer name="xinclude"
+++ src="org.apache.cocoon.transformation.XIncludeTransformer"/>
+++ ...
+++ </pre>
+++
+++ <p>Next define in your pipeline to use the XIncludeTransformer</p>
+++
+++ <pre><map:match pattern="xinc/simple-xinc">
+++ <map:generate src="xinc/simple-xinc.xml"/>
+++ <map:transform type="xinclude"/>
+++ <map:transform src="stylesheets/page/simple-page2html.xsl"/>
+++ <map:serialize/>
+++ </map:match>
+++ </pre>
+++
+++ <p>In this example pipeline it assumed that simple-xinc.xml contains the include
+++ element. As well as defining the include element, it defines the namespace URI
+++ "http://www.w3.org/2001/XInclude". This helps the XIncludeTransformer to find
+++ the include element to get replaced by the included content. The simple-xinc.xml
+++ may look like this:</p>
+++
+++ <pre><?xml version="1.0" encoding="UTF-8"?>
+++ <page
+++ xmlns:xi="http://www.w3.org/2001/XInclude">
+++ <title>Hello</title>
+++ <content>
+++ <para>This is my first Cocoon page!</para>
+++ <xi:include href="include.xml"/>
+++ </content>
+++ </page>
+++ </pre>
+++
+++ <p>Next you should define the include.xml file which is included. A simple
+++ include.xml might look like this:</p>
+++
+++ <pre><?xml version="1.0"?>
+++ <p>
+++ I am <strong>included</strong> by XIncludeTransformer.
+++ I come from "include.xml".
+++ </p>
+++ </pre>
+++
+++ <p>Now finally we have everything put together the xml content after the
+++ XIncludeTransformer processing will look like this:</p>
+++
+++ <pre><?xml version="1.0" encoding="UTF-8"?>
+++ <page
+++ xmlns:xi="http://www.w3.org/2001/XInclude">
+++ <title>Hello</title>
+++ <content>
+++ <para>This is my first Cocoon page!</para>
+++ <p>
+++ I am <strong>included</strong> by XIncludeTransformer.
+++ I come from "include.xml".
+++ </p>
+++ </content>
+++ </page>
+++ </pre>
+++
</body>
</html>