RE: Where's the parallelize step?

Hi Folks,

I implemented a parallel workflow in XProc. 

Here's a picture of it: 

http://www.xfront.com/parallel-workflow.gif

I connected the two parallel workflows to the pipeline's input port. After the parallel part was done, I merged the two parallel workflows using an identity step.

QUESTION

The identity step only allows me to connect its input port to the output of one of the parallel workflows. I'm dumping the other workflow's output. This seems rather bad. I can't think of what else to do. Can you suggest a better way to handle the merging of two parallel workflows?


Below is the XProc file.

/Roger

<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" name="validate-and-track">
        <p:input port="source">
            <p:document href="document.xml"/>
        </p:input>
        <p:output port="result">
            <p:pipe step="uuid" port="result"/>
        </p:output>
    

    <p:validate-with-xml-schema assert-valid="true" mode="strict" name="xsdValidation">
        <p:input port="schema">
            <p:document href="check-classifications.xsd"/>
        </p:input>
    </p:validate-with-xml-schema>

    
    <p:validate-with-schematron phase="classificationValidation" name="checkClassifications">
        <p:input port="source">
            <p:pipe step="validate-and-track" port="source" />
        </p:input>
        <p:input port="schema">
            <p:document href="check-classifications-and-reserved-words.sch"/>
        </p:input>
        <p:input port="parameters">
            <p:empty/>
        </p:input>
    </p:validate-with-schematron>
    
    
    <p:validate-with-schematron phase="reservedWordValidation" name="checkReservedWords">
        <p:input port="source">
            <p:pipe step="checkClassifications" port="result" />
        </p:input>
        <p:input port="schema">
            <p:document href="check-classifications-and-reserved-words.sch"/>
        </p:input>
        <p:input port="parameters">
            <p:empty/>
        </p:input>
    </p:validate-with-schematron>

    <p:identity name="merge">
        <p:input port="source">
            <p:pipe step="checkReservedWords" port="result" />
        </p:input>
    </p:identity>
    

    <p:insert position="first-child" match="/Document" name="insertTrackingElement">
        <p:input port="insertion">
            <p:inline>
                <TrackingNumber> </TrackingNumber>
            </p:inline>
        </p:input>
    </p:insert>

    
    <p:uuid match="/Document/TrackingNumber/text()" name="uuid">
        <p:input port="source">
            <p:pipe step="insertTrackingElement" port="result" />
        </p:input>
    </p:uuid>

</p:declare-step>

Received on Monday, 20 April 2009 20:51:15 UTC