p:choose-024 (AB)

Tests p:choose with different XPath contexts (ported from choose #003 of 1.0 test-suite)

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

The pipeline


        <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
            <p:output port="result"/>
             
            <p:choose>
                <p:with-input>
                    <p:inline>
                        <doc xmlns="">
                            <p>Para about XML</p>
                        </doc>
                    </p:inline>
                </p:with-input>
                <p:when test="//p[contains(., 'XML')]">
                    <p:with-input>
                        <p:inline>
                            <doc xmlns="">
                                <p>Para about something else</p>
                            </doc>
                        </p:inline>
                    </p:with-input>
                    <p:identity>
                        <p:with-input port="source">
                            <p:inline>
                                <result xmlns="">Incorrect</result>
                            </p:inline>
                        </p:with-input>
                    </p:identity>
                </p:when>
                <p:when test="//p[contains(., 'XML')]">
                    <p:identity>
                        <p:with-input port="source">
                            <p:inline>
                                <result xmlns="">Correct</result>
                            </p:inline>
                        </p:with-input>
                    </p:identity>
                </p:when>
                <p:otherwise>
                    <p:identity>
                        <p:with-input port="source">
                            <p:inline>
                                <result xmlns="">Incorrect</result>
                            </p:inline>
                        </p:with-input>
                    </p:identity>
                </p:otherwise>
            </p:choose>
        </p:declare-step>
    
MorganaXProc passing

Schematron validation


        <s:schema xmlns:s="http://purl.oclc.org/dsdl/schematron">
            <s:pattern>
                <s:rule context="/">
                    <s:assert test="/result">Root element is not 'result'.</s:assert>
                    <s:assert test="/result/text()='Correct'">Text in 'result' is not 'Correct'.</s:assert>
                </s:rule>
            </s:pattern>
        </s:schema>
    

Revision history

05 Apr 2019, Achim Berndzen

New tests