Phillip Hall wrote:
>
> I have a problem rendering the Forrest site from two XML files
> aggregated in a pipeline from the Sitemap.xmap file.
>
> I am using Forrest 8.0. I created an XSL stylesheet to format the
> combined XML files wih "document" root tags as per v-13 DTD.
>
> However this is not displayed with the Forrest skin but as raw HTML.
>
> How can I apply the default Forrest skin to this XML output?
>
> I have searched the Forrest FAQ and the mail Archives without finding
> a solution. Please help.
>
> sitemap.xmap insert :
>
> <map:pipelines>
> <map:pipeline>
>
> <map:match pattern="**index.html">
Not 100% sure of my answer, but i reckon that should be
<map:match pattern="**index.xml">
i.e. the internal request for the content xml.
With the match as you have it, it is intercepting the "output"
html request and finalising (i.e. map:serialize) the output
to xml.
> <map:aggregate element="site">
> <map:part src="{properties:content.xdocs}index.xml"/>
> <map:part src="{properties:content.xdocs}index-two.xml"/>
Also to match sources in sub-directories you will need:
<map:part src="{properties:content.xdocs}{1}index.xml"/>
etc.
There is a document explaining the "**" and "*" pattern matching
and token usage.
> </map:aggregate>
>
> <map:transform
> src="{properties:resources.stylesheets}/docs-to-document.xsl"/>
> <map:serialize type="xml-document"/>
> </map:match>
>
> </map:pipeline>
>
>
> My "docs-to-document.xsl" transform :
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="xml"/>
This output method has no effect in a Cocoon-based app.
The "map:serialize" in the sitemaps does that job.
-David
> <xsl:template match="/site">
> <xsl:element name="document">
> <xsl:element name="header">
> <xsl:element name="title">
> <xsl:value-of select="/site/document/header/title"/>
> </xsl:element>
> </xsl:element>
> <xsl:element name="body">
> <xsl:for-each select="//section">
> <xsl:copy-of select="."/>
> </xsl:for-each>
> </xsl:element>
> </xsl:element>
> </xsl:template>
> </xsl:stylesheet>