Maurice Lanselle wrote:
I am trying to integrate another content type, one based on a published
document schema from a standards association (hr-xml.org).
It would be better to do this as a plugin as it would be useful to a
wider community. Are you using 0.7? If not you cannot build it as a
plugin. I would recomend changing to 0.7 (it is stable enough being very
close to a release).
Building a plugin is really easy, see
http://forrest.apache.org/0.7/docs/howto/howto-buildPlugin.html
However, it
is not being transformed to xdoc; I think that I am having trouble with
the "sitemap.xmap" interception and would appreciate clues as to how to
get it right. I have simply copied the "download" example and changed
"download" to "resume" :
<map:pipeline>
<map:match pattern="**Resume.xml">
<map:generate src="{project:content.xdocs}{1}Resume.xml" />
<map:transform
src="{project:resources.stylesheets}/resume2document.xsl" />
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
However, when I try to use my test stylesheet as "resume2document",
"ResumeExample2.html" has no content. When I pull "ResumeExample2.xml"
in my browser, I get the raw untransformed xml file. So it looks like
my stylesheet is not being applied, because my document is not matching
the pattern. How should I fix my <map:pipeline> match in sitemap.xml?
The pipeline above matches "**Resume.xml", your file is called
"ResumeExample2.xml" which will not be matched. You need a match of
"Resume*.xml".
However, you should avoid limiting the URL space of your application by
requiring a given file type to have a given filename or path. This can
result in false matches. You should use the SourceTypeResolver, for an
example of how see
http://svn.apache.org/viewcvs.cgi/forrest/trunk/plugins/org.apache.forrest.plugin.input.simplified-docbook/input.xmap?view=markup
for an example of how to do this.
{NOTE TO DEVS: fresh-site shows a custom DTD being used in the way
Maurice is doing this, we need to update this sample - I'll add an issue)
Ross