W3C home > Mailing lists > Public > public-xml-processing-model-wg@w3.org > August 2010

RE: Possible new XProc 1.1 step: p:template

From: <Toman_Vojtech@emc.com>
Date: Fri, 13 Aug 2010 13:04:06 -0400
Message-ID: <997C307BEB90984EBE935699389EC41C020EC4A1@CORPUSMX70C.corp.emc.com>
To: <public-xml-processing-model-wg@w3.org>
> Except that the spec says of p:inline:
>    Inline documents are considered “quoted”. The pipeline processor
>    passes them literally to the port, even if they contain elements
>    from the XProc namespace or other namespaces that would have other
>    semantics outside of the p:inline.
> Hence my suggestion with the ugly name p:interpolated-inline.

My (XProc 1.0-based) understanding was that you would simply pass the template to p:template using p:inline (that is, "quoted") or any other binding and the step itself would then do the template processing based on some well-defined logic.

If I were to implement p:template using XProc 1.0, I think I would do something like this:

<p:declare-step type="p:template">
  <p:input port="source" primary="true"/>
  <p:input port="template"/>
  <p:input port="parameters" kind="parameter"/>
  <p:output port="result"/>
  <p:option name="match" required="true"/>

- The "source" input port contains the document that you want to apply the template to (perhaps it could be sequence="true" to allow 0 documents?)
- The "template" input port contains the template document
- The "parameters" parameter input port contains variable bindings that you can refer to in your template
- The "match" option is used for selecting nodes that you want to transform in the input document
- The "output" port contains the transformed document

Now, the annoying part (in my view) is the need to use a parameter port for passing in the variable/option bindings. So in XProc 1.1 we could say that inside p:template, all in-scope variable/option bindings are visible.


Vojtech Toman
Consultant Software Engineer
EMC | Information Intelligence Group

Received on Friday, 13 August 2010 17:05:03 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:32:48 UTC