Name

cx:eval — Evaluate a dynamically constructed pipeline.

Synopsis

<p:declare-step type="cx:eval" xmlns:cx="http://xmlcalabash.com/ns/extensions">
     <p:input port="pipeline"/>
     <p:input port="source" sequence="true"/>
     <p:input port="options"/>
     <p:output port="result"/>
     <p:option name="step"/>                                       <!-- QName -->
     <p:option name="detailed"/>                                   <!-- boolean -->
</p:declare-step>

Description

In the simplest case, where the specified pipeline has a single input and a single output, the document(s) on the source port are passed to the pipeline, processed, and the results are passed back on the result port.

If the pipeline specified has multiple inputs or outputs, then the inputs and outputs have to be “multiplexed” on the single port. If this is the case, you must specify that the detailed option is “true”, and encode the input using cx:document. Each input must be wrapped in cx:document with a port attribute that identifies the port to which that document is to be sent. Each output will be wrapped in a cx:document element identifying the port from which it came.

If the pipeline has options, they are passed to the options port. Each options document must have cx:options as its document element and consist entirely of cx:option elements with name and value attributes that specify options and their values.

If the pipeline is a p:library, then the step to evaluate may be specified using the step option. If the pipeline is a library and no step option is specified, the first step in the library will be selected.