An interesting pipeline

This is the pipeline that would be required to generate the language
spec as it stands. I think it's interesting because it demonstrates an
inclusion step that can't be done with XInclude and actually makes me
want a viewport :-)

The process is:

1. Validate the spec.
2. XInclude the spec.
3. Generate a glossary from the spec
4. Insert the glossary into the spec in the right place
5. Format the spec

<p:pipeline xmlns:p="http://www.w3.org/2006/08/pipeline"
	    xmlns="http://docbook.org/ns/docbook">
<p:declare-input port="document"/>
<p:declare-output port="result" source="xform!result"/>

<p:step name="validate" component="p:validate-relax-ng">
  <p:input port="document" source="!document"/>
</p:step>

<p:step name="xinclude" component="p:xinclude">
  <p:input port="document" source="validate!result"/>
</p:step>

<p:step name="makeglossary" component="p:xslt">
  <p:input port="document" source="xinclude!result"/>
  <p:input port="stylesheet" href="style/makeglossary.xsl"/>
</p:step>

<p:viewport name="addgloss">
  <p:declare-input port="app" select="//db:appendix[@xml:id='references']"/>
  <p:declare-output port="addgloss" source="aggr!result"/>
  <p:step name="aggr" component="p:aggregate">
    <p:input port="refs" source="addgloss!app"/>
    <p:input port="gloss" source="makeglossary!result"/>
  </p:step>
</p:viewport>

<p:step name="xform" component="p:xslt">
  <p:input port="document" source="addgloss!result"/>
  <p:input port="stylesheet" href="style/dbspec.xsl"/>
</p:step>

</p:pipeline>

                                        Be seeing you,
                                          norm

-- 
Norman Walsh
XML Standards Architect
Sun Microsystems, Inc.

Received on Monday, 21 August 2006 20:35:34 UTC