Johnson, Eric wrote:
I'm trying to use docbook files as part of the source to Forrest (v7.0).
I want to be able to use docbook and document v2.0. I've tried to get a
match and transform working, but to date all I can get is an empty html
file as output.

Here is the match from my projects sitemap.xml:

<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0";>

  <map:components>
    <map:actions>
      <map:action logger="sitemap.action.sourcetype" name="sourcetype"
src="org.apache.forrest.sourcetype.SourceTypeAction">
        <sourcetype name="docbook-v4.1.2">
                  <document-declaration public-id="-//OASIS//DTD DocBook
XML V4.1.2//EN" />
</sourcetype> </map:action> </map:actions> <map:selectors default="parameter">
            <map:selector logger="sitemap.selector.parameter"
name="parameter" src="org.apache.cocoon.selection.ParameterSelector" />
    </map:selectors>
  </map:components>
<map:resources> </map:resources> <map:pipelines>
  <map:pipeline>
    <map:match pattern="old_site/*.html">
     <map:select type="exists">
      <map:when test="{project:content}{1}.html">
        <map:read src="{project:content}{1}.html"
mime-type="text/html"/>
        <!--
          Use this instead if you want JTidy to clean up your HTML
          <map:generate type="html" src="{project:content}/{0}" />
          <map:serialize type="html"/>
        -->
      </map:when>
     </map:select>
   </map:match>
<map:match pattern="**.xml">
     <map:act type="sourcetype" src="{project:content.xdocs}{1}.xml">
     <map:select type="parameter">
      <map:parameter name="parameter-selector-test" value="{sourcetype}"
/>
      <map:when test="docbook-v4.1.2">
            <map:generate src="{project:content.xdocs}{1}.xml" />
        <map:transform
src="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl
" />
      </map:when>
     </map:select>
    </map:act>
   </map:match>
  </map:pipeline>
 </map:pipelines>
</map:sitemap>

The following worked for me, although I tested it with v0.8-dev. The stylesheet naming convention has changed since v0.7 and I included the backwards change in the pasted copy below, but I did not test this with v0.7.

You may also want to use local copies of the DocBook stylesheets as well.


<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0";>

  <map:components>
    <map:actions>
<map:action logger="sitemap.action.sourcetype" name="sourcetype" src="org.apache.forrest.sourcetype.SourceTypeAction">
        <sourcetype name="docbook-v4.1.2">
<document-declaration public-id="-//OASIS//DTD DocBook XML V4.1.2//EN" />
        </sourcetype>
      </map:action>
    </map:actions>

    <map:selectors default="parameter">
<map:selector logger="sitemap.selector.parameter" name="parameter" src="org.apache.cocoon.selection.ParameterSelector" />
    </map:selectors>
  </map:components>

  <map:resources>
  </map:resources>

 <map:pipelines>
  <map:pipeline>
    <map:match pattern="old_site/*.html">
     <map:select type="exists">

      <map:when test="{project:content}{1}.html">
        <map:read src="{project:content}{1}.html" mime-type="text/html"/>
        <!--
          Use this instead if you want JTidy to clean up your HTML
          <map:generate type="html" src="{project:content}/{0}" />
          <map:serialize type="html"/>
        -->
      </map:when>
     </map:select>
   </map:match>

    <map:match pattern="**.xml">
      <map:generate src="{project:content.xdocs}{1}.xml" />

      <map:act type="sourcetype" src="{project:content.xdocs}{1}.xml">
        <map:select type="parameter">
<map:parameter name="parameter-selector-test" value="{sourcetype}" />
        <map:when test="docbook-v4.1.2">
<map:transform src="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"; />
          <map:transform src="{forrest:stylesheets}/html2document.xsl" />
          <map:transform type="idgen" />
          <map:serialize type="xml-document" />
        </map:when>
      </map:select>
    </map:act>
  </map:match>

  </map:pipeline>
 </map:pipelines>
</map:sitemap>