You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2003/08/16 03:44:12 UTC
cvs commit: cocoon-2.1/src/webapp/samples/xinclude/content includehtml.xml loopinclusion.xml somehtml.xhtml test.xml test2.xml test3.xml test4.xml test5.xml xmlbase.xml
vgritsenko 2003/08/15 18:44:12
Modified: src/blocks/asciiart/conf asciiart.xsamples
src/blocks/batik/samples samples.xml
src/webapp/samples samples.xml
src/webapp/samples/aggregation samples.xml sitemap.xmap
Added: src/webapp/samples/aggregation/content includehtml.xml
loopinclusion.xml somehtml.xhtml test.xml test2.xml
test3.xml test4.xml test5.xml xmlbase.xml
Removed: src/webapp/samples/xinclude samples.xml sitemap.xmap
src/webapp/samples/xinclude/content includehtml.xml
loopinclusion.xml somehtml.xhtml test.xml test2.xml
test3.xml test4.xml test5.xml xmlbase.xml
Log:
Samples tweaks: move xinclude inside aggregation, together with cinclude.
Add link to mozilla svg project.
Revision Changes Path
1.2 +2 -2 cocoon-2.1/src/blocks/asciiart/conf/asciiart.xsamples
Index: asciiart.xsamples
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/asciiart/conf/asciiart.xsamples,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- asciiart.xsamples 20 Jul 2003 04:47:27 -0000 1.1
+++ asciiart.xsamples 16 Aug 2003 01:44:12 -0000 1.2
@@ -2,8 +2,8 @@
<xsamples xpath="/samples" unless="group[@name='asciiart']">
- <group name="asciiart">
- <sample name="ASCII art" href="asciiart/">
+ <group name="ASCII Art">
+ <sample name="ASCII Art" href="asciiart/">
Plain text files with character-based artwork and diagrams are presented
in various formats, e.g. plain text, JPEG, PNG
</sample>
1.4 +4 -1 cocoon-2.1/src/blocks/batik/samples/samples.xml
Index: samples.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/blocks/batik/samples/samples.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- samples.xml 7 May 2003 19:15:02 -0000 1.3
+++ samples.xml 16 Aug 2003 01:44:12 -0000 1.4
@@ -56,6 +56,9 @@
<sample name="Adobe SVG Viewer" href="http://www.adobe.com/svg/viewer/install/main.html">
SVG browser plugin
</sample>
+ <sample name="Mozilla SVG Project" href="http://www.mozilla.org/projects/svg/">
+ Mozilla with native SVG support
+ </sample>
</group>
</samples>
1.24 +98 -104 cocoon-2.1/src/webapp/samples/samples.xml
Index: samples.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/samples.xml,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- samples.xml 15 Aug 2003 15:57:32 -0000 1.23
+++ samples.xml 16 Aug 2003 01:44:12 -0000 1.24
@@ -5,87 +5,82 @@
<samples name="Cocoon Samples" xmlns:xlink="http://www.w3.org/1999/xlink">
<group name="The Power of XML">
- <sample name="Hello World!" href="hello-world/">
- The complete separation between content and style
- leads to a very powerful multi-channeling solution where you can
- apply different stylesheets to the same content and generate different
- flavors of it.
- </sample>
- <sample name="XML-ized web sites" href="sites/">
- A couple of existing web sites have been xml-ized to show you
- how easier it is to handle pure-content markup.
- </sample>
- <sample name="Presentation Slides" href="slides/slides">
- An example of more complex use of XSLT for navigation and content filtering.
- </sample>
- <sample name="Internationalization (i18n) & Localization (l10n)" href="i18n/">
- Since XML is based on Unicode, it can be used to encode all types of
- languages. Here is an example of the power of such an approach with
- the help of those i18n and l10n Cocoon facilities.
- </sample>
- <sample name="Syndication and Content Aggregation" href="aggregation/">
- Separation of content and style allows not only to serve your content
- in different ways, but also to syndicate, aggregate or otherwise transform
- content provided by other web sites.
- </sample>
- <sample name="Catalog Entity Resolver" href="catalog/">
- XML is handy but also very complex. Cocoon integrates a number of
- facilities to help you during your journey through XML-land. One of these
- is the centralized handling of resolving network resources
- (e.g. DTDs, symbols, character entity sets, images) to local copies through
- the use of catalogs.
- </sample>
- <sample name="XInclude" href="xinclude/">
- XInclude transformer sample. XInclude merges XML documents, or parts of
- them, into one document.
- </sample>
+ <sample name="Hello World!" href="hello-world/">
+ The complete separation between content and style
+ leads to a very powerful multi-channeling solution where you can
+ apply different stylesheets to the same content and generate different
+ flavors of it.
+ </sample>
+ <sample name="XML-ized web sites" href="sites/">
+ A couple of existing web sites have been xml-ized to show you
+ how easier it is to handle pure-content markup.
+ </sample>
+ <sample name="Presentation Slides" href="slides/slides">
+ An example of more complex use of XSLT for navigation and content filtering.
+ </sample>
+ <sample name="Internationalization (i18n) & Localization (l10n)" href="i18n/">
+ Since XML is based on Unicode, it can be used to encode all types of
+ languages. Here is an example of the power of such an approach with
+ the help of those i18n and l10n Cocoon facilities.
+ </sample>
+ <sample name="Syndication and Content Aggregation" href="aggregation/">
+ Separation of content and style allows not only to serve your content
+ in different ways, but also to syndicate, aggregate or otherwise include
+ and transform content provided by other web sites.
+ </sample>
+ <sample name="Catalog Entity Resolver" href="catalog/">
+ XML is handy but also very complex. Cocoon integrates a number of
+ facilities to help you during your journey through XML-land. One of these
+ is the centralized handling of resolving network resources
+ (e.g. DTDs, symbols, character entity sets, images) to local copies through
+ the use of catalogs.
+ </sample>
</group>
<group name="Cocoon Control Flow">
- <sample name="Examples" href="flow/">
- Examples of Cocoon's control flow of Web pages.
- </sample>
- <note>
- Since the Cocoon Control Flow is a core technology you find more examples
- that make use of it e.g. the Petstore, JXForms and Woody block
- </note>
+ <note>
+ Since the Cocoon Control Flow is a core technology you find more examples
+ that make use of it e.g. the Petstore, JXForms and Woody block
+ </note>
+ <sample name="Examples" href="flow/">
+ Examples of Cocoon's control flow of Web pages.
+ </sample>
</group>
- <group name="More core samples">
- <sample href="modules/" name="The Power of Sitemap: Input Modules">
- This example shows the usage of Input Modules in sitemap attribute expressions.
- </sample>
- <sample href="sources/" name="The Power of Sitemap: Sources">
- This example shows the usage of sources in the sitemap.
- </sample>
- <sample href="xsp/" name="Extensible Server Pages">
- Extensible Server Pages.
- </sample>
- <sample href="simpleform/" name="Simple Forms">
- These examples show a simple way to work with HTML forms. More powerful
- form solutions can be found in the blocks section.
- </sample>
- <sample href="imagereader/" name="Imagereader">
- ImageReader
- </sample>
+ <group name="More Core Samples">
+ <sample href="modules/" name="The Power of Sitemap: Input Modules">
+ This example shows the usage of Input Modules in sitemap attribute expressions.
+ </sample>
+ <sample href="sources/" name="The Power of Sitemap: Sources">
+ This example shows the usage of sources in the sitemap.
+ </sample>
+ <sample href="xsp/" name="Extensible Server Pages">
+ Extensible Server Pages.
+ </sample>
+ <sample href="simpleform/" name="Simple Forms">
+ These examples show a simple way to work with HTML forms. More powerful
+ form solutions can be found in the blocks section.
+ </sample>
+ <sample href="imagereader/" name="Image Reader">
+ Examples of ImageReader component usage
+ </sample>
<sample href="paginator/" name="Paginator">
- Paginator
- </sample>
- <sample href="soap/" name="SOAP">
- Cocoon ships with facilities for immediate connection to SOAP resources.
- These examples show you how to connect to any web service with a few
- lines of XML markup.
- </sample>
- <note>
- There is also an Axis block available that integrates Axis into Cocoon.
- </note>
- <sample href="stream/order" name="B2B: Order Page" xlink:role="dynamic">
- An example of B2B processing.
- </sample>
+ Examples of Paginator transformer usage
+ </sample>
+ <sample href="soap/" name="SOAP">
+ Cocoon ships with facilities for immediate connection to SOAP resources.
+ These examples show you how to connect to any web service with a few
+ lines of XML markup.
+ </sample>
+ <note>
+ There is also an Axis block available that integrates Axis into Cocoon.
+ </note>
+ <sample href="stream/order" name="B2B: Order Page" xlink:role="dynamic">
+ An example of B2B processing.
+ </sample>
</group>
<!--
-
FIXME (SM): obsoleted by xmlform?
<group name="Sample Forms">
@@ -98,43 +93,42 @@
input and report validation errors to the user through a taglib.
</sample>
</group>
-
-->
- <group name="Block samples">
+ <group name="Block Samples">
<sample name="Blocks with samples" href="blocks">
- Functionality outside the core has been moved to units called "blocks".
- This will lead to a more modular Cocoon. Here you find the samples
- provided by the currently installed blocks.
- </sample>
+ Functionality outside the core has been moved to units called "blocks".
+ This will lead to a more modular Cocoon. Here you find the samples
+ provided by the currently installed blocks.
+ </sample>
</group>
<group name="System Tools And Pages">
- <sample name="Status Page" href="status.html">
- This page shows the current internal status of cocoon, along with
- information on the cache and the object stores.
- </sample>
- <sample name="Clear Cache" href="clearcache.html">
- Empties the Cocoon cache.
- </sample>
- <sample name="Clear Persistent Store" href="clearpersistentstore.html">
- Empties the Cocoon persistent store.
- </sample>
- <sample name="Request Page" href="request.html">
- This example shows the usage of the RequestGenerator.
- </sample>
- <sample name="Error handling" href="errorhandling/">
- An example page producing exceptions and handling them. Demonstrates the
- handler hierarchy and the exception selectors.
- </sample>
- <sample name="Link Status" href="linkstatus">
- Verify that there are no broken hyperlinks in the local Cocoon
- documentation. This sample will start at the home page of the local
- documentation webapp and traverse each internal link, reporting its status
- in a colour-coded table. Be patient - this process will take a while.
- NOTE: this will work only if you have included the documentation when
- you built the web application
- </sample>
+ <sample name="Status Page" href="status.html">
+ This page shows the current internal status of cocoon, along with
+ information on the cache and the object stores.
+ </sample>
+ <sample name="Clear Cache" href="clearcache.html">
+ Empties the Cocoon cache.
+ </sample>
+ <sample name="Clear Persistent Store" href="clearpersistentstore.html">
+ Empties the Cocoon persistent store.
+ </sample>
+ <sample name="Request Page" href="request.html">
+ This example shows the usage of the RequestGenerator.
+ </sample>
+ <sample name="Error handling" href="errorhandling/">
+ An example page producing exceptions and handling them. Demonstrates the
+ handler hierarchy and the exception selectors.
+ </sample>
+ <sample name="Link Status" href="linkstatus">
+ Verify that there are no broken hyperlinks in the local Cocoon
+ documentation. This sample will start at the home page of the local
+ documentation webapp and traverse each internal link, reporting its status
+ in a colour-coded table. Be patient - this process will take a while.
+ NOTE: this will work only if you have included the documentation when
+ you built the web application
+ </sample>
</group>
</samples>
1.3 +38 -24 cocoon-2.1/src/webapp/samples/aggregation/samples.xml
Index: samples.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/aggregation/samples.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- samples.xml 18 May 2003 16:20:49 -0000 1.2
+++ samples.xml 16 Aug 2003 01:44:12 -0000 1.3
@@ -5,35 +5,49 @@
<samples name="Aggregation">
<group name="Back">
- <sample name="Back" href="../">
- Back to the samples home page.
- </sample>
+ <sample name="Back" href="../">
+ Back to the samples home page.
+ </sample>
</group>
<group name="Data Sources">
- <sample name="Slashdot" href="slashdot">
- Live XML Feed from Slashdot.
- </sample>
- <sample name="Moreover.com" href="moreover">
- Live XML Developer News Feed from moreover.com.
- </sample>
- <sample name="XMLHack.com" href="xmlhack">
- Live Channel Feed from XMLHack.com.
- </sample>
+ <sample name="Slashdot" href="slashdot">
+ Live XML Feed from Slashdot.
+ </sample>
+ <sample name="Moreover.com" href="moreover">
+ Live XML Developer News Feed from moreover.com.
+ </sample>
+ <sample name="XMLHack.com" href="xmlhack">
+ Live Channel Feed from XMLHack.com.
+ </sample>
</group>
<group name="Aggregation Sample">
- <sample name="Fixed Content Aggregation" href="aggregate">
- Single Web Page with News from all sources above aggregated by
- the sitemap aggregation facilities. This is useful when you know
- that the parts of your page to aggregate are always the same
- and never change.
- </sample>
- <sample name="Flexible Content Aggregation" href="aggregate2">
- Single Web Page with News from all sources above aggregated by
- the cocoon include transformer. This is useful for pages where
- the user can customize the parts of the page to aggregate.
- </sample>
+ <sample name="Fixed Content Aggregation" href="aggregate">
+ Single Web Page with News from all sources above aggregated by
+ the sitemap aggregation facilities. This is useful when you know
+ that the parts of your page to aggregate are always the same
+ and never change.
+ </sample>
+ <sample name="Flexible Content Aggregation" href="aggregate2">
+ Single Web Page with News from all sources above aggregated by
+ the cocoon include transformer. This is useful for pages where
+ the user can customize the parts of the page to aggregate.
+ </sample>
</group>
+ <group name="XInclude Samples">
+ <sample name="General" href="test.html">
+ Demonstration of various XInclude and XPointer features.
+ </sample>
+ <sample name="XML Base" href="xmlbase.html">
+ Demonstration of xml:base support.
+ </sample>
+ <sample name="Loop Inclusion" href="loopinclusion.html">
+ Example of a loop inclusion. This will show an error page.
+ </sample>
+ <sample name="Elementpath XPointer Scheme" href="includehtml.html">
+ Example of streaming inclusion using the custom elementpath XPointer scheme.
+ </sample>
+ </group>
</samples>
1.2 +128 -92 cocoon-2.1/src/webapp/samples/aggregation/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/cocoon-2.1/src/webapp/samples/aggregation/sitemap.xmap,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sitemap.xmap 26 Mar 2003 21:21:30 -0000 1.1
+++ sitemap.xmap 16 Aug 2003 01:44:12 -0000 1.2
@@ -4,99 +4,135 @@
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
-<!-- =========================== Pipelines ================================= -->
+ <!-- =========================== Views =================================== -->
- <map:pipelines>
+ <map:views>
+ <map:view name="content" from-label="content">
+ <map:serialize type="xml"/>
+ </map:view>
+
+ <map:view from-label="content" name="pretty-content">
+ <map:transform src="context://stylesheets/system/xml2html.xslt"/>
+ <map:serialize type="html"/>
+ </map:view>
+
+ <map:view name="links" from-position="last">
+ <map:serialize type="links"/>
+ </map:view>
+ </map:views>
+
+ <!-- =========================== Pipelines ================================= -->
+
+ <map:pipelines>
+ <map:pipeline>
+
+ <map:match pattern="">
+ <map:generate src="samples.xml"/>
+ <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
+ <map:parameter name="contextPath" value="{request:contextPath}"/>
+ </map:transform>
+ <map:serialize/>
+ </map:match>
+
+ <!-- ================ NEWS =========================== -->
+
+ <map:match pattern="slashdot">
+ <map:generate src="http://slashdot.org/slashdot.xml"/>
+ <map:transform src="stylesheets/slashdot.xsl"/>
+ <map:serialize/>
+ </map:match>
+
+ <map:match pattern="**.gif">
+ <map:read mime-type="image/gif" src="http://images.slashdot.org/topics/{1}.gif"/>
+ </map:match>
+
+ <map:match pattern="**.jpg">
+ <map:read mime-type="image/jpg" src="http://images.slashdot.org/topics/{1}.jpg"/>
+ </map:match>
+
+ <map:match pattern="moreover">
+ <map:generate src="http://www.moreover.com/cgi-local/page?o=xml&c=Developer%20news"/>
+ <map:transform src="stylesheets/moreover.xsl"/>
+ <map:serialize/>
+ </map:match>
+
+ <map:match pattern="xmlhack">
+ <map:generate src="http://www.xmlhack.com/cdf.cdf"/>
+ <map:transform src="stylesheets/xmlhack.xsl"/>
+ <map:serialize/>
+ </map:match>
+
+ <map:match pattern="aggregate">
+ <map:aggregate element="page" ns="http://foo.bar.com/myspace">
+ <!--+
+ | Aggregation is a very powerful concept that allows a document
+ | be generated from several other documents. Strictly speaking,
+ | all parts are just concatenated in this order to a new
+ | document.
+ |
+ | Several things to note here:
+ |
+ | "cocoon:" is a pseudo protocol and refers to another
+ | pipeline. "cocoon:/" refers to a pipeline from the current
+ | sitemap while "cocoon://" refers to a pipeline from the root
+ | sitemap.
+ |
+ | Other pseudo protocols exist:
+ |
+ | "context:" is another pseudo protocol, "context://" is
+ | refering to a resource using the servlet context.
+ |
+ | "resource:" is yet another pseudo protocol, "resource://" is
+ | refering to a resource from the context classloader.
+ |
+ | All these pseudo protocols are declared in the cocoon.xconf.
+ |
+ | Thus, the parts refer to the pipeline fragments above.
+ |
+ | The optional element attribute places the content in a new root
+ | element named as specified, using the namespace provided by the
+ | optional ns attribute.
+ |
+ | Please see docs for further explanations.
+ +-->
+ <map:part element="news" ns="http://foo.bar.com/slashdot" src="cocoon:/slashdot"/>
+ <map:part element="news" ns="http://foo.bar.com/moreover" src="cocoon:/moreover"/>
+ <map:part element="news" ns="http://foo.bar.com/xmlhack" src="cocoon:/xmlhack"/>
+ </map:aggregate>
+ <map:transform src="stylesheets/news.xsl"/>
+ <map:serialize/>
+ </map:match>
+
+ <!-- Aggregation using the Cocoon Include transformer -->
+ <map:match pattern="aggregate2">
+ <map:generate src="aggregate.xsp" type="serverpages"/>
+ <map:transform type="cinclude"/>
+ <map:transform src="stylesheets/news.xsl"/>
+ <map:serialize/>
+ </map:match>
- <map:pipeline>
-
- <map:match pattern="">
- <map:generate src="samples.xml"/>
- <map:transform src="context://samples/common/style/xsl/html/simple-samples2html.xsl">
- <map:parameter name="contextPath" value="{request:contextPath}"/>
- </map:transform>
- <map:serialize/>
- </map:match>
-
- <!-- ================ NEWS =========================== -->
-
- <map:match pattern="slashdot">
- <map:generate src="http://slashdot.org/slashdot.xml"/>
- <map:transform src="stylesheets/slashdot.xsl"/>
- <map:serialize/>
- </map:match>
-
- <map:match pattern="**.gif">
- <map:read mime-type="image/gif" src="http://images.slashdot.org/topics/{1}.gif"/>
- </map:match>
-
- <map:match pattern="**.jpg">
- <map:read mime-type="image/jpg" src="http://images.slashdot.org/topics/{1}.jpg"/>
- </map:match>
-
- <map:match pattern="moreover">
- <map:generate src="http://www.moreover.com/cgi-local/page?o=xml&c=Developer%20news"/>
- <map:transform src="stylesheets/moreover.xsl"/>
- <map:serialize/>
- </map:match>
-
- <map:match pattern="xmlhack">
- <map:generate src="http://www.xmlhack.com/cdf.cdf"/>
- <map:transform src="stylesheets/xmlhack.xsl"/>
- <map:serialize/>
- </map:match>
-
- <map:match pattern="aggregate">
- <map:aggregate element="page" ns="http://foo.bar.com/myspace">
- <!--
- Aggregation is a very powerful concept that allows a document
- be generated from several other documents. Strictly speaking,
- all parts are just concatenated in this order to a new
- document.
-
- Several things to note here:
-
- "cocoon:" is a pseudo protocol and refers to another
- pipeline. "cocoon:/" refers to a pipeline from the current
- sitemap while "cocoon://" refers to a pipeline from the root
- sitemap.
-
- Other pseudo protocols exist:
-
- "context:" is another pseudo protocol, "context://" is
- refering to a resource using the servlet context.
-
- "resource:" is yet another pseudo protocol, "resource://" is
- refering to a resource from the context classloader.
-
- These pseudo protocols are declared in cocoon.xconf
-
- Thus the parts refer to the pipeline fragments above.
-
- The element attribute places the content in a new root element
- named as specified, using the namespace provided by the ns
- attribute.
-
- Please see docs for further explanations.
- -->
- <map:part element="news" ns="http://foo.bar.com/slashdot" src="cocoon:/slashdot"/>
- <map:part element="news" ns="http://foo.bar.com/moreover" src="cocoon:/moreover"/>
- <map:part element="news" ns="http://foo.bar.com/xmlhack" src="cocoon:/xmlhack"/>
- </map:aggregate>
- <map:transform src="stylesheets/news.xsl"/>
- <map:serialize/>
- </map:match>
-
- <!-- Aggregation using the Cocoon Include transformer -->
- <map:match pattern="aggregate2">
- <map:generate src="aggregate.xsp" type="serverpages"/>
- <map:transform type="cinclude"/>
- <map:transform src="stylesheets/news.xsl"/>
- <map:serialize/>
- </map:match>
-
- </map:pipeline>
+ <!-- TODO: Aggregation using the XInclude transformer -->
- </map:pipelines>
+ <!-- XInclude Samples -->
+ <map:match pattern="*.html">
+ <map:generate src="content/{1}.xml"/>
+ <map:transform type="xinclude"/>
+ <map:transform src="context://samples/common/style/xsl/html/simple-page2html.xsl">
+ <map:parameter name="contextPath" value="{request:contextPath}"/>
+ <map:parameter name="servletPath" value="{request:servletPath}"/>
+ <map:parameter name="sitemapURI" value="{request:sitemapURI}"/>
+ <map:parameter name="file" value="content/test.xml"/>
+ <map:parameter name="remove" value="{0}"/>
+ </map:transform>
+ <map:serialize/>
+ </map:match>
+
+ <!-- Source Files -->
+ <map:match pattern="*.xml">
+ <map:generate src="content/{1}.xml"/>
+ <map:serialize/>
+ </map:match>
+ </map:pipeline>
+ </map:pipelines>
</map:sitemap>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/includehtml.xml
Index: includehtml.xml
===================================================================
<?xml version="1.0"?>
<page xmlns:xi="http://www.w3.org/2001/XInclude">
<title>XInclude demo</title>
<content>
<para>This sample will include the content of the /html/body tag of the
file somehtml.xhtml. This is done using the custom 'elementpath' XPointer
scheme, which avoids building a DOM (which the xpointer() scheme does).</para>
<para><b><![CDATA[somehtml.xhtml#xmlns(c=http://apache.org/cocoon/xpointer)c:elementpath(/html/body)]]></b></para>
<xi:include href="somehtml.xhtml#xmlns(c=http://apache.org/cocoon/xpointer)c:elementpath(/html/body)"/>
</content>
</page>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/loopinclusion.xml
Index: loopinclusion.xml
===================================================================
<?xml version="1.0"?>
<page xmlns:xi="http://www.w3.org/2001/XInclude">
<title>XInclude loop inclusion test</title>
<content>
<xi:include href=""/>
</content>
</page>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/somehtml.xhtml
Index: somehtml.xhtml
===================================================================
<html>
<head>
<title></title>
</head>
<body>
<p>Hello, this is the content of the <tt>somehtml.xhtml</tt> file.</p>
<p>And here's yet another paragraph from that file.</p>
</body>
</html>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/test.xml
Index: test.xml
===================================================================
<?xml version="1.0"?>
<page xmlns:xi="http://www.w3.org/2001/XInclude">
<title>XInclude demo</title>
<content>
<para><b><![CDATA[<xi:include href="test3.xml"/>]]></b></para>
<xi:include href="test3.xml"/>
<hr/>
<para><b><![CDATA[<xi:include href="test2.xml#xpointer(/page/content/para[2])"/>]]></b></para>
<xi:include href="test2.xml#xpointer(/page/content/para[2])"/>
<hr/>
<para><b><![CDATA[<xi:include href="test2.xml#xmlns(my=http://localhost/my)xpointer(/page/content/my:abc/*)"/>]]></b></para>
<xi:include href="test2.xml#xmlns(my=http://localhost/my)xpointer(/page/content/my:abc/*)"/>
<hr/>
<para><b>Inclusion with an invalid xpointer expression, will cause fallback
element content to be inserted:</b></para>
<para><b><![CDATA[<xi:include href="test2.xml#xpointer(">]]></b></para>
<xi:include href="test2.xml#xpointer(">
<a>
<b>
Any random content inside the xi:include element will be ignored.
</b>
</a>
<xi:fallback>
An error occured! This is the content of the fallback element you're seeing.
</xi:fallback>
And here's some more text you shouldn't see.
</xi:include>
<hr/>
<para><b><![CDATA[
<xi:include href="#xmlns(xi=http://www.w3.org/2001/XInclude)xpointer(/page/content/xi:include[1])"/>
]]></b></para>
<xi:include href="#xmlns(xi=http://www.w3.org/2001/XInclude)xpointer(/page/content/xi:include[1])"/>
<hr/>
<para><b>This sample demonstrates the recursive inclusion: here file4.xml
is included, which in itself includes file5.xml:</b></para>
<para><b><![CDATA[<xi:include href="test4.xml"/>]]></b></para>
<xi:include href="test4.xml"/>
<hr/>
<para><b>This example shows how you can put multiple xpointer expressions
one after the other. If one doesn't return a result, it is skipped and
the next one is evaluated, until one is found that returns a
result.</b></para>
<para><b><![CDATA[<xi:include href="test2.xml#xpointer(/x)xpointer(/y)xpointer(/z)xpointer(/page/content/para[2])"/>]]></b></para>
<xi:include href="test2.xml#xpointer(/x)xpointer(/y)xpointer(/z)xpointer(/page/content/para[2])"/>
</content>
</page>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/test2.xml
Index: test2.xml
===================================================================
<?xml version="1.0"?>
<page xmlns:my="http://localhost/my">
<content>
<para>This is paragraph 1 from test2.xml</para>
<para>This is paragraph 2 from test2.xml</para>
<my:abc>
<para>This is paragraph 3 from test2.xml (inside my:abc element)</para>
</my:abc>
</content>
</page>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/test3.xml
Index: test3.xml
===================================================================
<para>This is the content of the test3.xml file.</para>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/test4.xml
Index: test4.xml
===================================================================
<?xml version="1.0"?>
<para xmlns:xi="http://www.w3.org/2001/XInclude">
This is content in test4.xml, will do a include of test5.xml here:
<xi:include href="test5.xml#xpointer(/para/node())"/>
</para>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/test5.xml
Index: test5.xml
===================================================================
<?xml version="1.0"?>
<para>
This is the content of test5.xml
</para>
1.1 cocoon-2.1/src/webapp/samples/aggregation/content/xmlbase.xml
Index: xmlbase.xml
===================================================================
<?xml version="1.0"?>
<page xmlns:xi="http://www.w3.org/2001/XInclude">
<title>XInclude xml:base demo</title>
<content>
This is a test of the xml:base support.
<hr/>
<dummy xml:base="cocoon:/dir1/dir2/dir3/">
<xi:include href="../../../test3.xml"/>
<dummy xml:base="cocoon:/dir1/">
<xi:include href="../test3.xml"/>
</dummy>
<xi:include href="../../../test3.xml"/>
</dummy>
</content>
</page>