Selects the first of a set of Resources (usually files) that exists in the context.

The 'test' expression is interpreted as a context-rooted ('/' = context) path, resolved by the servlet container, not a Source.

A parameter,
<map:parameter src="prefix" value="/"/>

may be supplied to the selector instance. This prefix is prepended to all test expressions before evaluation. The default prefix is '/', meaning that all expressions are context root-relative, unless explicitly overridden.

For example, we could define a ResourceExistsSelector with:

 <map:selector name="resource-exists"
               logger="sitemap.selector.resource-exists"
               src="org.apache.cocoon.selection.ResourceExistsSelector" />

And use it to build a PDF from XSL:FO or a higher-level XML format with:

{{{<map:match pattern="**.pdf">
<map:select type="resource-exists">
<map:when test="content/xdocs/{1}.fo">
<map:generate src="content/xdocs/{1}.fo" />
</map:when>
<map:otherwise>
<map:generate src="content/xdocs/{1}.xml" />
<map:transform src="stylesheets/document2fo.xsl" />
</map:otherwise>
</map:select>
<map:serialize type="fo2pdf" />
}}}

  • No labels