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>