p:choose-027 (AB)

Tests p:choose with multiple output ports. (ported from choose #006 of 1.0 test-suite)

Test ab-choose-027.xml is expected to pass.

The pipeline


        <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" name="pipeline" version="3.0">
            <p:output port="result"/>
            <p:input port="source">
                <document xmlns="">
                    <title>Some Title</title>
                    <para>Some paragraph.</para>
                </document>
            </p:input>
            <p:choose name="choose">
                <p:when test="count(//*) mod 2 = 0">
                    <p:output port="one" primary="true"/>
                    <p:output port="two">
                        <p:inline><doc xmlns=""/></p:inline>
                    </p:output>
                    <p:identity>
                        <p:with-input port="source">
                            <p:inline><p xmlns="">There are an even number of elements in the document.</p></p:inline>
                        </p:with-input>
                    </p:identity>
                </p:when>
                <p:otherwise>
                    <p:output port="one" primary="true"/>
                    <p:output port="two">
                        <p:inline><doc xmlns=""/></p:inline>
                    </p:output>
                    <p:identity>
                        <p:with-input port="source">
                            <p:inline><p xmlns="">There are an odd number of elements in the document.</p></p:inline>
                        </p:with-input>
                    </p:identity>
                </p:otherwise>
            </p:choose>
            
            <p:wrap-sequence wrapper="wrapper">
                <p:with-input port="source">
                    <p:pipe step="choose" port="one"/>
                    <p:pipe step="choose" port="two"/>
                </p:with-input>
            </p:wrap-sequence>
        </p:declare-step>
    

Schematron validation


        <s:schema xmlns:s="http://purl.oclc.org/dsdl/schematron">
            <s:pattern>
                <s:rule context="/">
                    <s:assert test="/wrapper">Root element is not 'wrapper'.</s:assert>
                    <s:assert test="/wrapper/p">Root element does not have a child 'p'.</s:assert>
                    <s:assert test="/wrapper/p/text()='There are an odd number of elements in the document.'">Text of 'p' is not 'There are an odd number of elements in the document.'</s:assert>
                    <s:assert test="/wrapper/doc">Root element does not have a child 'doc'.</s:assert>
                </s:rule>
            </s:pattern>
        </s:schema>
    

Revision history

05 Apr 2019, Achim Berndzen

New tests