The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
        <WorkflowProcess Id="multi-parallel-split-and-join" Name="multi-parallel-split-and-join">
            <ProcessHeader>
                <Created>2010-09-07 04:04:58</Created>
            </ProcessHeader>
            <FormalParameters>
                <FormalParameter Id="splitA" Mode="IN">
                    <DataType>
                        <BasicType Type="STRING"/>
                    </DataType>
                </FormalParameter>
                <FormalParameter Id="splitB" Mode="IN">
                    <DataType>
                        <BasicType Type="STRING"/>
                    </DataType>
                </FormalParameter>
                <FormalParameter Id="path_taken" Mode="OUT">
                    <DataType>
                        <BasicType Type="STRING"/>
                    </DataType>
                </FormalParameter>
            </FormalParameters>
            <Participants>
                <Participant Id="newpkg1_wp1_par1">
                    <ParticipantType Type="ROLE"/>
                </Participant>
            </Participants>
            <DataFields>
                <DataField Id="PaintingName">
                    <DataType>
                        <BasicType Type="STRING"/>
                    </DataType>
                    <InitialValue>'Mona Lisa'</InitialValue>
                </DataField>
            </DataFields>            
            <Activities>
                <Activity Id="A" Name="A">
                    <Implementation><Task><TaskManual/></Task></Implementation>
                    <TransitionRestrictions>
                        <TransitionRestriction>
                            <Split Type="AND">
                                <TransitionRefs>
                                    <TransitionRef Id="A-B1"/>
                                    <TransitionRef Id="A-B"/>
                                </TransitionRefs>
                            </Split>
                        </TransitionRestriction>
                    </TransitionRestrictions>
                </Activity>
                <Activity Id="B" Name="B">
                    <Implementation><Task><TaskManual/></Task></Implementation>
                    <TransitionRestrictions>
                        <TransitionRestriction>
                            <Split Type="AND">
                                <TransitionRefs>
                                    <TransitionRef Id="B-B1"/>
                                    <TransitionRef Id="B-C"/>
                                </TransitionRefs>
                            </Split>
                        </TransitionRestriction>
                    </TransitionRestrictions>
                </Activity>
                <Activity Id="B1" Name="B1">
                    <Implementation><Task><TaskManual/></Task></Implementation>
                    <TransitionRestrictions>
                        <TransitionRestriction>
                            <Join Type="AND"/>
                        </TransitionRestriction>
                    </TransitionRestrictions>
                </Activity>
                <Activity Id="C" Name="C">
                    <Implementation><Task><TaskManual/></Task></Implementation>
                </Activity>
                <Activity Id="D" Name="D">
                    <Implementation><Task><TaskManual/></Task></Implementation>
                    <TransitionRestrictions>
                        <TransitionRestriction>
                            <Join Type="AND"/>
                        </TransitionRestriction>
                    </TransitionRestrictions>
                </Activity>
            </Activities>
            <Transitions>
                <Transition Id="A-B1" From="A" To="B1">
                    <Condition Type="CONDITION">1</Condition><!-- splitA == 'B1' -->
                </Transition>
                <Transition Id="A-B" From="A" To="B">
                    <Condition Type="CONDITION">1</Condition>
                </Transition>            
                <Transition Id="B-B1" From="B" To="B1">
                    <Condition Type="CONDITION"><Expression>1</Expression></Condition><!-- splitB == 'B1' -->
                </Transition>
                <Transition Id="B-C" From="B" To="C"/>
                <Transition Id="B1-D" From="B1" To="D"/>
                <Transition Id="C-D" From="C" To="D"/>
            </Transitions>
        </WorkflowProcess>