<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE test-suite [
    <!ELEMENT test-suite (test-cases+)>
    <!ELEMENT test-cases (input-file,test-case+)>
    <!ELEMENT input-file (#PCDATA)>
    <!ELEMENT test-case (xpath,output)>
    <!ELEMENT xpath (#PCDATA)>
    <!ELEMENT output (#PCDATA)>

    <!ENTITY xalan-tests "resources/XSLT-testsuite-04/TESTS/Xalan_Conformance_Tests">
    <!ENTITY msft-tests "resources/XSLT-testsuite-04/TESTS/MSFT_Conformance_Tests">
]>
<test-suite>
    <test-cases>
        <input-file>&xalan-tests;/attribset/attribset20.xml</input-file>
        <test-case>
            <xpath>/docs/doc/*/@ped:att1</xpath>
            <output>a,c,</output>
        </test-case>
        <test-case>
            <xpath>/docs/doc/*/@xml:att1</xpath>
            <output>b,d,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes01.xml</input-file>
        <test-case>
            <xpath>name(/.//center/ancestor::*)</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor::*[1])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor::*[2])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor::*[3])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes02.xml</input-file>
        <test-case>
            <xpath>name(/.//center/ancestor-or-self::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor-or-self::*[1])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor-or-self::*[2])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor-or-self::*[3])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/ancestor-or-self::*[4])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes03.xml</input-file>
        <test-case>
            <xpath>name(/.//center/attribute::*)</xpath>
            <output>center-attr-1,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/attribute::*[1])</xpath>
            <output>center-attr-1,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/attribute::*[2])</xpath>
            <output>center-attr-2,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/attribute::*[3])</xpath>
            <output>center-attr-3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes04.xml</input-file>
        <test-case>
            <xpath>name(/.//center/child::*)</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/child::*[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/child::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/child::*[3])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes05.xml</input-file>
        <test-case>
            <xpath>name(/.//center/descendant::*)</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant::*[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant::*[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant::*[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant::*[5])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes06.xml</input-file>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*[1])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*[2])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*[3])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*[4])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*[5])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/descendant-or-self::*[6])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes07.xml</input-file>
        <test-case>
            <xpath>name(/.//center/following::*)</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following::*[1])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following::*[2])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following::*[3])</xpath>
            <output>far-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following::*[4])</xpath>
            <output>way-out-yonder-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following::*[5])</xpath>
            <output>out-yonder-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes08.xml</input-file>
        <test-case>
            <xpath>name(/.//center/preceding::*)</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding::*[1])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding::*[2])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding::*[3])</xpath>
            <output>far-west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding::*[4])</xpath>
            <output>out-yonder-west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding::*[5])</xpath>
            <output>way-out-yonder-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes09.xml</input-file>
        <test-case>
            <xpath>name(/.//center/following-sibling::*)</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following-sibling::*[1])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following-sibling::*[2])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/following-sibling::*[3])</xpath>
            <output>far-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes10.xml</input-file>
        <test-case>
            <xpath>name(/.//center/preceding-sibling::*)</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding-sibling::*[1])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding-sibling::*[2])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/preceding-sibling::*[3])</xpath>
            <output>far-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes11.xml</input-file>
        <test-case>
            <xpath>name(/.//center/parent::*)</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/parent::*[1])</xpath>
            <output>near-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes12.xml</input-file>
        <test-case>
            <xpath>name(/.//center/self::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/.//center/self::*[1])</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes13.xml</input-file>
        <test-case>
            <xpath>string(//text()[ancestor::*[@new='true'][not(text())]][1])</xpath>
            <output>is new,</output>
        </test-case>
        <test-case>
            <xpath>string((//text()[ancestor::*[2][@new]])[1])</xpath>
            <output>is new,</output>
        </test-case>
        <test-case>
            <xpath>string((//text()[ancestor::*[2][@new]])[2])</xpath>
            <output>is new but has text,</output>
        </test-case>
        <test-case>
            <xpath>string((//text()[ancestor::*[2][@new]])[3])</xpath>
            <output>is not new,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes14.xml</input-file>
        <test-case>
            <xpath>//baz/ancestor-or-self::*[@att1][1]/@att1</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/ancestor-or-self::*)[@att1][1]/@att1</xpath>
            <output>c,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes16.xml</input-file>
        <test-case>
            <xpath>name(//center/ancestor::*[3])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes17.xml</input-file>
        <test-case>
            <xpath>name(//center/ancestor-or-self::*[1])</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes18.xml</input-file>
        <test-case>
            <xpath>name(//center/attribute::*[2])</xpath>
            <output>center-attr-2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes19.xml</input-file>
        <test-case>
            <xpath>//center/@*</xpath>
            <output>c1,c2,c3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes20.xml</input-file>
        <test-case>
            <xpath>name(//center/@*[2])</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes21.xml</input-file>
        <test-case>
            <xpath>name(//center/child::*[2])</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes22.xml</input-file>
        <test-case>
            <xpath>name(//center/child::near-south)</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/child::near-south-west)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes23.xml</input-file>
        <test-case>
            <xpath>name(//center/descendant::*[3])</xpath>
            <output>far-south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes24.xml</input-file>
        <test-case>
            <xpath>name(//center/descendant::far-south)</xpath>
            <output>far-south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes25.xml</input-file>
        <test-case>
            <xpath>name(//center/descendant-or-self::*[3])</xpath>
            <output>south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes26.xml</input-file>
        <test-case>
            <xpath>name(//center/descendant-or-self::far-south)</xpath>
            <output>far-south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes27.xml</input-file>
        <test-case>
            <xpath>name(//center/descendant-or-self::center)</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes28.xml</input-file>
        <test-case>
            <xpath>name(//center/following::*[4])</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes29.xml</input-file>
        <test-case>
            <xpath>name(//center/following::out-yonder-east)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes30.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding::*[4])</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes31.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding::out-yonder-west)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes32.xml</input-file>
        <test-case>
            <xpath>name(//center/following-sibling::*[2])</xpath>
            <output>east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes33.xml</input-file>
        <test-case>
            <xpath>name(//center/following-sibling::east)</xpath>
            <output>east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes34.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2])</xpath>
            <output>west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes35.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding-sibling::west)</xpath>
            <output>west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes36.xml</input-file>
        <test-case>
            <xpath>name(//center/parent::near-north)</xpath>
            <output>near-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes37.xml</input-file>
        <test-case>
            <xpath>name(//center/parent::*[1])</xpath>
            <output>near-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes38.xml</input-file>
        <test-case>
            <xpath>name(//center/parent::foo)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes39.xml</input-file>
        <test-case>
            <xpath>name(//center/..)</xpath>
            <output>near-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes40.xml</input-file>
        <test-case>
            <xpath>name(//center/self::center)</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes41.xml</input-file>
        <test-case>
            <xpath>name(//center/self::*[1])</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes42.xml</input-file>
        <test-case>
            <xpath>name(//center/self::foo)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes43.xml</input-file>
        <test-case>
            <xpath>name(//center/.)</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes44.xml</input-file>
        <test-case>
            <xpath>name(//center/attribute::center-attr-2)</xpath>
            <output>center-attr-2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes45.xml</input-file>
        <test-case>
            <xpath>name(//center/@center-attr-2)</xpath>
            <output>center-attr-2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes46.xml</input-file>
        <test-case>
            <xpath>//center/../@width</xpath>
            <output>22,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes47.xml</input-file>
        <test-case>
            <xpath>/docs/doc/..//foo/@att1</xpath>
            <output>c,b,a,a,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes48.xml</input-file>
        <test-case>
            <xpath>name(//center/child::*/child::*)</xpath>
            <output>south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes49.xml</input-file>
        <test-case>
            <xpath>name(//center/child::*/descendant::*)</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/child::*/descendant::*)[1])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/child::*/descendant::*)[2])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/child::*/descendant::*)[3])</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes50.xml</input-file>
        <test-case>
            <xpath>name((//center/descendant::*/child::*))</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/descendant::*/child::*)[1])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/descendant::*/child::*)[2])</xpath>
            <output>far-south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes51.xml</input-file>
        <test-case>
            <xpath>name((//near-north/center//child::*))</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//child::*)[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//child::*)[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//child::*)[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//child::*)[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//child::*)[5])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes52.xml</input-file>
        <test-case>
            <xpath>name(//near-north/center//descendant::*)</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center//descendant::*[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center//descendant::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center//descendant::*[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center//descendant::*[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center//descendant::*[5])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes53.xml</input-file>
        <test-case>
            <xpath>name(//near-north/center/descendant::*)</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/descendant::*[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/descendant::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/descendant::*[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/descendant::*[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/descendant::*[5])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes54.xml</input-file>
        <test-case>
            <xpath>name(//near-north/center/child::*)</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/child::*[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/child::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//near-north/center/child::*[3])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes55.xml</input-file>
        <test-case>
            <xpath>name((//near-north/center//*))</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//*)[1])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//*)[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//*)[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//*)[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//near-north/center//*)[5])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes56.xml</input-file>
        <test-case>
            <xpath>name((//doc//xx/descendant::*))</xpath>
            <output>xxchild,</output>
        </test-case>
        <test-case>
            <xpath>name((//doc//xx/descendant::*)[1])</xpath>
            <output>xxchild,</output>
        </test-case>
        <test-case>
            <xpath>name((//doc//xx/descendant::*)[2])</xpath>
            <output>xxchild,</output>
        </test-case>
        <test-case>
            <xpath>name((//doc//xx/descendant::*)[3])</xpath>
            <output>childofxx,</output>
        </test-case>
        <test-case>
            <xpath>name((//doc//xx/descendant::*)[4])</xpath>
            <output>xxsub,</output>
        </test-case>
        <test-case>
            <xpath>name((//doc//xx/descendant::*)[5])</xpath>
            <output>xxsubsub,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes57.xml</input-file>
        <test-case>
            <xpath>//doc//title</xpath>
            <output>Test for source tree depth,Level A,Level B,Level C,Level D,Level E,Level F,Level G,Level H,Level I,Level J,Level K,Level L,Level M,Level N,Level O,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes59.xml</input-file>
        <test-case>
            <xpath>//doc/namespace::*</xpath>
            <output>http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://xml.apache.org/xslt/java,http://tester.com,http://buster.com,http://administrator.com,http://www.w3.org/XML/1998/namespace,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes60.xml</input-file>
        <test-case>
            <xpath>//center/attribute::*</xpath>
            <output>c1,c2,c3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes63.xml</input-file>
        <test-case>
            <xpath>name(//center/self::*[near-south])</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes64.xml</input-file>
        <test-case>
            <xpath>name(//center/self::*[@center-attr-2])</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes65.xml</input-file>
        <test-case>
            <xpath>//center/self::text()</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes66.xml</input-file>
        <test-case>
            <xpath>//center/self::comment()</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes67.xml</input-file>
        <test-case>
            <xpath>//center/self::processing-instruction()</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes68.xml</input-file>
        <test-case>
            <xpath>//doc/namespace::*</xpath>
            <output>http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,</output>
        </test-case>
        <test-case>
            <xpath>//section/namespace::*</xpath>
            <output>http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://foo.com,</output>
        </test-case>
        <test-case>
            <xpath>//inner/namespace::*</xpath>
            <output>http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://foo.com,http://whiz.com/special/page,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes69.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*)</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*[1])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*[2])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*[3])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*[4])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*[5])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*/following-sibling::*[6])</xpath>
            <output>far-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes71.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*)</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*[1])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*[2])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*[3])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*[4])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*[5])</xpath>
            <output>far-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes73.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding-sibling::*[2]/following-sibling::*[4]/preceding-sibling::*[5]/following-sibling::*[4]/following-sibling::*[2])</xpath>
            <output>far-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes74.xml</input-file>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*)</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*[1])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*[2])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*[3])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*[4])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*[5])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*/preceding-sibling::*[6])</xpath>
            <output>far-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes76.xml</input-file>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*)</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*[1])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*[2])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*[3])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*[4])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*[5])</xpath>
            <output>far-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes78.xml</input-file>
        <test-case>
            <xpath>name(//center/following-sibling::*[2]/preceding-sibling::*[4]/following-sibling::*[5]/preceding-sibling::*[4]/preceding-sibling::*[2])</xpath>
            <output>far-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes80.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding::*[2]/../following::*)</xpath>
            <output>north-north-east1,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding::*[2]/../following::*[1])</xpath>
            <output>north-north-east1,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/preceding::*[2]/../following::*[2])</xpath>
            <output>north-north-east2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes81.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding::*[2]/../descendant::*[10]/following-sibling::east)</xpath>
            <output>east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes82.xml</input-file>
        <test-case>
            <xpath>name((//center//*))</xpath>
            <output>near-south-west,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//*)[1])</xpath>
            <output>near-south-west,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//*)[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//*)[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//*)[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//*)[5])</xpath>
            <output>near-south-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes83.xml</input-file>
        <test-case>
            <xpath>name(//center//ancestor::*)</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center//ancestor::*[1])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center//ancestor::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center//ancestor::*[3])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center//ancestor::*[4])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center//ancestor::*[5])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center//ancestor::*[6])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes84.xml</input-file>
        <test-case>
            <xpath>name((//*[count(ancestor::*) &gt;= 2]/../parent::*))</xpath>
            <output>far-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(ancestor::*) &gt;= 2]/../parent::*)[1])</xpath>
            <output>far-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(ancestor::*) &gt;= 2]/../parent::*)[2])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(ancestor::*) &gt;= 2]/../parent::*)[3])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(ancestor::*) &gt;= 2]/../parent::*)[4])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(ancestor::*) &gt;= 2]/../parent::*)[5])</xpath>
            <output>near-south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes85.xml</input-file>
        <test-case>
            <xpath>name((//*[count(./*/*) &gt; 0]))</xpath>
            <output>far-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(./*/*) &gt; 0])[1])</xpath>
            <output>far-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(./*/*) &gt; 0])[2])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(./*/*) &gt; 0])[3])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(./*/*) &gt; 0])[4])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name((//*[count(./*/*) &gt; 0])[5])</xpath>
            <output>near-south,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes87.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/ancestor::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[1])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[2])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[3])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[4])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes88.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/following::*)</xpath>
            <output>near-south-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[1])</xpath>
            <output>near-south-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[2])</xpath>
            <output>near-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[3])</xpath>
            <output>south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[4])</xpath>
            <output>far-south,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[5])</xpath>
            <output>near-south-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[6])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[7])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[8])</xpath>
            <output>far-east,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[9])</xpath>
            <output>north-north-east1,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/following::*[10])</xpath>
            <output>north-north-east2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes89.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/preceding::*)</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/preceding::*[1])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/preceding::*[2])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/preceding::*[3])</xpath>
            <output>far-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/preceding::*[4])</xpath>
            <output>north-north-west2,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/preceding::*[5])</xpath>
            <output>north-north-west1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes90.xml</input-file>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*))</xpath>
            <output>far-west,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)[1])</xpath>
            <output>far-west,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)[2])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)[3])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)[4])</xpath>
            <output>near-east,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)[5])</xpath>
            <output>east,</output>
        </test-case>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)[6])</xpath>
            <output>far-east,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes91.xml</input-file>
        <test-case>
            <xpath>name((//center/preceding-sibling::*|//center/following-sibling::*)/ancestor::*[last()]/*[last()])</xpath>
            <output>north-north-east2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes92.xml</input-file>
        <test-case>
            <xpath>name(//center//near-south/preceding-sibling::*|//center/following-sibling::east/ancestor-or-self::*[2])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//near-south/preceding-sibling::*|//center/following-sibling::east/ancestor-or-self::*[2])[1])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name((//center//near-south/preceding-sibling::*|//center/following-sibling::east/ancestor-or-self::*[2])[2])</xpath>
            <output>near-south-west,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes93.xml</input-file>
        <test-case>
            <xpath>name(//center/@*)</xpath>
            <output>center-attr-1,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*[1])</xpath>
            <output>center-attr-1,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*[2])</xpath>
            <output>center-attr-2,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*[3])</xpath>
            <output>center-attr-3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes94.xml</input-file>
        <test-case>
            <xpath>//center/@*/child::*</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes95.xml</input-file>
        <test-case>
            <xpath>//center/@*/descendant::node()</xpath>
            <output>c1,c2,c3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes96.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/parent::*)</xpath>
            <output>center,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes97.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/ancestor::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[1])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[2])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[3])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*[4])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes98.xml</input-file>
        <test-case>
            <xpath>//center/@*/self::node()</xpath>
            <output>c1,c2,c3,</output>
        </test-case>
        <test-case>
            <xpath>//center/@*/.</xpath>
            <output>c1,c2,c3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes99.xml</input-file>
        <test-case>
            <xpath>//center/@*/descendant-or-self::node()</xpath>
            <output>c1,c1,c2,c2,c3,c3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes100.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/ancestor-or-self::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor-or-self::*[1])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor-or-self::*[2])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor-or-self::*[3])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor-or-self::*[4])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes101.xml</input-file>
        <test-case>
            <xpath>//center/@*/preceding-sibling::node()</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes102.xml</input-file>
        <test-case>
            <xpath>//center/@*/following-sibling::*</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes103.xml</input-file>
        <test-case>
            <xpath>name(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::*)</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::*[1])</xpath>
            <output>near-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::*[2])</xpath>
            <output>west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::*[3])</xpath>
            <output>far-west,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::*[4])</xpath>
            <output>north-north-west2,</output>
        </test-case>
        <test-case>
            <xpath>name(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::*[5])</xpath>
            <output>north-north-west1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes104.xml</input-file>
        <test-case>
            <xpath>//center/@*/ancestor::*/near-north/*[4]/@*/preceding::comment()</xpath>
            <output> Comment-4 , Comment-3 , Comment-2 ,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes105.xml</input-file>
        <test-case>
            <xpath>count(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::text())</xpath>
            <output>14,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes106.xml</input-file>
        <test-case>
            <xpath>//center/@*/ancestor::*/near-north/*[4]/@*/preceding::processing-instruction()</xpath>
            <output>pi-4,pi-3,pi-2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes107.xml</input-file>
        <test-case>
            <xpath>count(//center/@*/ancestor::*/near-north/*[4]/@*/preceding::node())</xpath>
            <output>25,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes108.xml</input-file>
        <test-case>
            <xpath>//center/@*/following::comment()</xpath>
            <output>Comment-5,Comment-6,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes109.xml</input-file>
        <test-case>
            <xpath>name(//c/@x/following::*)</xpath>
            <output>d1,</output>
        </test-case>
        <test-case>
            <xpath>name(//c/@x/following::*[1])</xpath>
            <output>d1,</output>
        </test-case>
        <test-case>
            <xpath>name(//c/@x/following::*[2])</xpath>
            <output>d2,</output>
        </test-case>
        <test-case>
            <xpath>name(//c/@x/following::*[3])</xpath>
            <output>c2,</output>
        </test-case>
        <test-case>
            <xpath>name(//c/@x/following::*[4])</xpath>
            <output>b2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes110.xml</input-file>
        <test-case>
            <xpath>//center/@*/following::processing-instruction()</xpath>
            <output>pi-5,pi-6,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes111.xml</input-file>
        <test-case>
            <xpath>count(//center/@*/ancestor::*/near-north/*[4]/@*/following::node())</xpath>
            <output>34,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes112.xml</input-file>
        <test-case>
            <xpath>count(//center/@*/following::text())</xpath>
            <output>20,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes114.xml</input-file>
        <test-case>
            <xpath>//baz/preceding::foo[1]/@att1</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/preceding::foo)[1]/@att1</xpath>
            <output>c,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes115.xml</input-file>
        <test-case>
            <xpath>//baz/preceding-sibling::foo[1]/@att1</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/preceding-sibling::foo)[1]/@att1</xpath>
            <output>c,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes117.xml</input-file>
        <test-case>
            <xpath>count(//@*)</xpath>
            <output>16,</output>
        </test-case>
        <test-case>
            <xpath>count(//@title)</xpath>
            <output>12,</output>
        </test-case>
        <test-case>
            <xpath>count(//section//@*)</xpath>
            <output>14,</output>
        </test-case>
        <test-case>
            <xpath>count(//section//@title)</xpath>
            <output>11,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter//@*)</xpath>
            <output>16,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter//@title)</xpath>
            <output>12,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter/section[1]//@*)</xpath>
            <output>5,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter/section[1]//@title)</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter/section[2]//@*)</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter/section[2]//@title)</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter/section[3]//@*)</xpath>
            <output>5,</output>
        </test-case>
        <test-case>
            <xpath>count(//chapter/section[3]//@title)</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes119.xml</input-file>
        <test-case>
            <xpath>name(/far-north/north/near-north/center/ancestor-or-self::*)</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/far-north/north/near-north/center/ancestor-or-self::*[1])</xpath>
            <output>center,</output>
        </test-case>
        <test-case>
            <xpath>name(/far-north/north/near-north/center/ancestor-or-self::*[2])</xpath>
            <output>near-north,</output>
        </test-case>
        <test-case>
            <xpath>name(/far-north/north/near-north/center/ancestor-or-self::*[3])</xpath>
            <output>north,</output>
        </test-case>
        <test-case>
            <xpath>name(/far-north/north/near-north/center/ancestor-or-self::*[4])</xpath>
            <output>far-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes122.xml</input-file>
        <test-case>
            <xpath>count(/descendant-or-self::*/@att1)</xpath>
            <output>5,</output>
        </test-case>
        <test-case>
            <xpath>count(//doc/descendant-or-self::*/@att1)</xpath>
            <output>5,</output>
        </test-case>
        <test-case>
            <xpath>//doc/descendant-or-self::*/@att1[last()]</xpath>
            <output>e,d,c,b,a,</output>
        </test-case>
        <test-case>
            <xpath>//doc/descendant-or-self::*[last()]/@att1</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//doc/descendant-or-self::*/@att1)[last()]</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>count(//baz/ancestor-or-self::*/@att1)</xpath>
            <output>5,</output>
        </test-case>
        <test-case>
            <xpath>//baz/ancestor-or-self::*/@att1[last()]</xpath>
            <output>e,d,c,b,a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/ancestor-or-self::*)/@att1[last()]</xpath>
            <output>e,d,c,b,a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/ancestor-or-self::*/@att1)[last()]</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/ancestor::*|self::*)/@att1[last()]</xpath>
            <output>e,d,c,b,</output>
        </test-case>
        <test-case>
            <xpath>((//baz/ancestor::*|//baz/self::*)/@att1)[last()]</xpath>
            <output>a,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes123.xml</input-file>
        <test-case>
            <xpath>name(//center/@center-attr-1/../..)</xpath>
            <output>near-north,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/axes/axes124.xml</input-file>
        <test-case>
            <xpath>//center/comment()</xpath>
            <output>Center Comment,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean01.xml</input-file>
        <test-case>
            <xpath>true()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true() and true()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true() or true()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>not(true())</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>boolean('')</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1&gt;2</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1&gt;=2</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>false()</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1=2</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1 = 1.00</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>0 = -0</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1 = '001'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true() = '0'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>false() = ''</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true()=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>false()=0</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>false() and false()</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>'foo' and 'fop'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true() and false()</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>false() and true()</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>'1' and '0'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true() or false()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>false() or true()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>false() or false()</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>0 or ''</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>not(false())</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>not(false() = false())</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>not(true() = false())</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>not('')</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>not('0')</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>boolean('0')</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>boolean(0)</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>boolean(-0)</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>boolean(1)</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>boolean(1 div 0)</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>0 div 0</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>boolean(0 div 0)</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1&gt;1</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>2&gt;1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1&lt;2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1&lt;1</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>2&lt;1</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>'2'&gt;'1'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>0 &gt; -0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>2&gt;=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>2&gt;=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1&lt;=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1&lt;=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>2&lt;=1</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>false() and 1 div 0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>true() or 1 div 0</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1!=1</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1!=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1 != 1.00</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>false()!=true()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>true()!=false()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>false()!=false()</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>'ace' != 'ace'</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>'ace' != 'abc'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>'H' != '  H'</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>'H' != 'H  '</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1.9999999 &lt; 2.0</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>2.0000001 &lt; 2.0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>1.9999999 &lt; 2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>2 &lt; 2.0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>'001' = 1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>0=false()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>'0'=true()</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>boolean('1')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean40.xml</input-file>
        <test-case>
            <xpath>boolean(//doc)</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean41.xml</input-file>
        <test-case>
            <xpath>boolean(//foo)</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean70.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='12'] = //doc/j[@w='33']</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean71.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='12'] = //doc/j[@w='17']</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean72.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='12'] = //doc/j[@w='45']</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean73.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='12'] != //doc/j[@w='33']</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean74.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='12'] != //doc/j[@l='17']</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean75.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='12'] != //doc/j[@w='45']</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/boolean/boolean76.xml</input-file>
        <test-case>
            <xpath>//doc/j[@l='16'] != //doc/j[@w='78']</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/copy/copy16.xml</input-file>
        <test-case>
            <xpath>id(/main/b)</xpath>
            <output>W,X,Y,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/copy/copy24.xml</input-file>
        <test-case>
            <xpath>/processing-instruction('a-pi')</xpath>
            <output>some data,</output>
        </test-case>
        <test-case>
            <xpath>/processing-instruction()</xpath>
            <output>some data,another,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/expression/expression01.xml</input-file>
        <test-case>
            <xpath>//doc/para[@id='1' and lang('en')]</xpath>
            <output>en,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/expression/expression03.xml</input-file>
        <test-case>
            <xpath>//doc/para[@id='3' and lang('en')]</xpath>
            <output>EN,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/expression/expression04.xml</input-file>
        <test-case>
            <xpath>//doc/div/para[lang('en')]</xpath>
            <output>en,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/expression/expression05.xml</input-file>
        <test-case>
            <xpath>//doc/para[@id='3' and lang('en')]</xpath>
            <output>EN,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey04.xml</input-file>
        <test-case>
            <xpath>id('c')/@id</xpath>
            <output>c,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey09.xml</input-file>
        <test-case>
            <xpath>id('c')/@id</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey23.xml</input-file>
        <test-case>
            <xpath>id('nomatch')/@id</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey24.xml</input-file>
        <test-case>
            <xpath>id('d b c')/@id</xpath>
            <output>b,c,d,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey26.xml</input-file>
        <test-case>
            <xpath>id(main/b)</xpath>
            <output>W,X,Y,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey57.xml</input-file>
        <test-case>
            <xpath>id(main/@list)</xpath>
            <output>W,Y,Z,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey61.xml</input-file>
        <test-case>
            <xpath>count(id('d b c k'))</xpath>
            <output>3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey62.xml</input-file>
        <test-case>
            <xpath>count(id('c'))</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/idkey/idkey63.xml</input-file>
        <test-case>
            <xpath>count(id('k'))</xpath>
            <output>0,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match01.xml</input-file>
        <test-case>
            <xpath>//foo/@att1</xpath>
            <output>c,b,a,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match04.xml</input-file>
        <test-case>
            <xpath>/letters/letter[.='b']</xpath>
            <output>b,b,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match05.xml</input-file>
        <test-case>
            <xpath>/letters/letter[.='b' or .='h']</xpath>
            <output>b,b,h,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match06.xml</input-file>
        <test-case>
            <xpath>/letters/letter[not(.='b')]</xpath>
            <output>a,c,h,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match07.xml</input-file>
        <test-case>
            <xpath>/letters/letter[.!='b']</xpath>
            <output>a,c,h,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match09.xml</input-file>
        <test-case>
            <xpath>count(/doc//foo[@att1='b' and @att2='ok'])</xpath>
            <output>2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match10.xml</input-file>
        <test-case>
            <xpath>//letter[position()=last()]</xpath>
            <output>h,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match11.xml</input-file>
        <test-case>
            <xpath>id('b')</xpath>
            <output>B,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match13.xml</input-file>
        <test-case>
            <xpath>//aac|//llh|//oop|//aah|//ssb|//iii|//rre|//eek|//xxo|//aar|//sst|//bbd|//eeo|//xxi|//ddg|//nne</xpath>
            <output>9,44,51,77,114,118,154,176,187,209,224,255,355,374,390,426,494,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/match/match15.xml</input-file>
        <test-case>
            <xpath>/doc/element1[(((((2*10)-4)+9) div 5) mod 3)]/child1[last()]</xpath>
            <output>Test Executed Successfully.,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/math/math01.xml</input-file>
        <test-case>
            <xpath>number(/doc/n1)</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/math/math02.xml</input-file>
        <test-case>
            <xpath>floor(0.0)</xpath>
            <output>0,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(0.0)</xpath>
            <output>0,</output>
        </test-case>
        <test-case>
            <xpath>round(0.0)</xpath>
            <output>0,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/math/math05.xml</input-file>
        <test-case>
            <xpath>sum(/doc/n)</xpath>
            <output>10,</output>
        </test-case>
        <test-case>
            <xpath>2*3</xpath>
            <output>6,</output>
        </test-case>
        <test-case>
            <xpath>3+6</xpath>
            <output>9,</output>
        </test-case>
        <test-case>
            <xpath>6 div 2</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>5 mod 2</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>number(2)</xpath>
            <output>2,</output>
        </test-case>
        <test-case>
            <xpath>number('')</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>number('abc')</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>number(string(1.0))=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>number(true())=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>number(false())=0</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>floor(1.9)</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>floor(2.999999)</xpath>
            <output>2,</output>
        </test-case>
        <test-case>
            <xpath>floor(-1.5)</xpath>
            <output>-2,</output>
        </test-case>
        <test-case>
            <xpath>floor(1)=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>floor(1.9)=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>floor(-1.5)=-2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(1.54)</xpath>
            <output>2,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(2.999999)</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(1)=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(1.1)=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(-1.5)=-1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(1.24)</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>round(2.999999)</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>round(1.1)=1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(-1.1)=-1</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(1.9)=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(-1.9)=-2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(1.5)=2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(2.5)</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>round(-2.5)=-2</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>round(-1.5)</xpath>
            <output>-1,</output>
        </test-case>
        <test-case>
            <xpath>1-2</xpath>
            <output>-1,</output>
        </test-case>
        <test-case>
            <xpath>7+-3</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>7 - -3</xpath>
            <output>10,</output>
        </test-case>
        <test-case>
            <xpath>-7 --3</xpath>
            <output>-4,</output>
        </test-case>
        <test-case>
            <xpath>6 div -2</xpath>
            <output>-3,</output>
        </test-case>
        <test-case>
            <xpath>1 div -0 = 2 div -0</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>1 div -0 = 1 div 0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>0 div 0 &gt;= 0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>0 div 0 &lt; 0</xpath>
            <output>false,</output>
        </test-case>
        <test-case>
            <xpath>(5 mod 2 = 1) and (5 mod -2 = 1) and (-5 mod 2 = -1) and (-5 mod -2 = -1)</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>2 * -number('xxx')</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>2 div number('xxx')</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>number('xxx') div 3</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>2 mod number('xxx')</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>number('xxx') mod 3</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>floor(number('xxx'))</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>ceiling(number('xxx'))</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>round(number('xxx'))</xpath>
            <output>NaN,</output>
        </test-case>
        <test-case>
            <xpath>10+5+25+20+15+50+35+40</xpath>
            <output>200,</output>
        </test-case>
        <test-case>
            <xpath>100-9-7-4-17-18-5</xpath>
            <output>40,</output>
        </test-case>
        <test-case>
            <xpath>3*2+5*4-4*2-1</xpath>
            <output>17,</output>
        </test-case>
        <test-case>
            <xpath>9876543210</xpath>
            <output>9876543210,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/math/math11.xml</input-file>
        <test-case>
            <xpath>number(/doc/foo)</xpath>
            <output>NaN,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/math/math110.xml</input-file>
        <test-case>
            <xpath>number(1.75)</xpath>
            <output>1.75,</output>
        </test-case>
        <test-case>
            <xpath>number(7 div 4)</xpath>
            <output>1.75,</output>
        </test-case>
        <test-case>
            <xpath>(number(1.75) = (7 div 4))</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>number(0.109375 * 16)</xpath>
            <output>1.75,</output>
        </test-case>
        <test-case>
            <xpath>(number(1.75) = (0.109375 * 16))</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>number(/doc/k)</xpath>
            <output>0.0004,</output>
        </test-case>
        <test-case>
            <xpath>number(4 div 10000)</xpath>
            <output>0.0004,</output>
        </test-case>
        <test-case>
            <xpath>(number(/doc/k) = (4 div 10000))</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>number(0.0001 * 4)</xpath>
            <output>0.0004,</output>
        </test-case>
        <test-case>
            <xpath>(number(/doc/k) = (0.0001 * 4))</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/math/math111.xml</input-file>
        <test-case>
            <xpath>string(number(/doc/number))</xpath>
            <output>0,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[1]))</xpath>
            <output>0,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[2]))</xpath>
            <output>0.4,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[3]))</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[4]))</xpath>
            <output>0.04,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[5]))</xpath>
            <output>0.004,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[6]))</xpath>
            <output>0.0004,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[7]))</xpath>
            <output>0.0000000000001,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[8]))</xpath>
            <output>0.0000000000000000000000000001,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[9]))</xpath>
            <output>0.0000000000001000000000000001,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[10]))</xpath>
            <output>0.0012,</output>
        </test-case>
        <test-case>
            <xpath>string(number(/doc/number[11]))</xpath>
            <output>0.012,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/namespace/namespace08.xml</input-file>
        <test-case>
            <xpath>name(/doc/a/@at1)</xpath>
            <output>at1,</output>
        </test-case>
        <test-case>
            <xpath>namespace-uri(/doc/a/@at1)</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>local-name(/doc/a/@at1)</xpath>
            <output>at1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/namespace/namespace29.xml</input-file>
        <test-case>
            <xpath>name(//processing-instruction())</xpath>
            <output>a-pi,</output>
        </test-case>
        <test-case>
            <xpath>namespace-uri(//processing-instruction())</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>local-name(//processing-instruction())</xpath>
            <output>a-pi,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/namespace/namespace30.xml</input-file>
        <test-case>
            <xpath>name(//comment())</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>namespace-uri(//comment())</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>local-name(//comment())</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/namespace/namespace31.xml</input-file>
        <test-case>
            <xpath>name(//text())</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>namespace-uri(//text())</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>local-name(//text())</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/namespace/namespace33.xml</input-file>
        <test-case>
            <xpath>//namespace::*</xpath>
            <output>http://www.w3.org/XML/1998/namespace,http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://foo.com,http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://foo.com,http://whiz.com/special/page,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/node/node01.xml</input-file>
        <test-case>
            <xpath>//text()</xpath>
            <output>&#xA;&#x20;&#x20;test&#xA;,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/node/node02.xml</input-file>
        <test-case>
            <xpath>//comment()</xpath>
            <output> This is a comment ,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/node/node03.xml</input-file>
        <test-case>
            <xpath>//processing-instruction('a-pi')</xpath>
            <output>some data,</output>
        </test-case>
        <test-case>
            <xpath>//processing-instruction('*')</xpath>
            <output></output>
        </test-case>
        <test-case>
            <xpath>//processing-instruction()</xpath>
            <output>some data,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/node/node16.xml</input-file>
        <test-case>
            <xpath>//center/attribute::*</xpath>
            <output>c1,c2,c3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/node/node17.xml</input-file>
        <test-case>
            <xpath>//doc/namespace::node()</xpath>
            <output>http://www.w3.org/XML/1998/namespace,http://somebody.elses.extension,http://xml.apache.org/xslt/java,http://tester.com,http://buster.com,http://administrator.com,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/node/node18.xml</input-file>
        <test-case>
            <xpath>count(//doc//comment())</xpath>
            <output>3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position02.xml</input-file>
        <test-case>
            <xpath>/doc/*[position()=4]</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position03.xml</input-file>
        <test-case>
            <xpath>/doc/*[@test and position()=8]</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position04.xml</input-file>
        <test-case>
            <xpath>/doc/*[@test][position()=4]/num</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position06.xml</input-file>
        <test-case>
            <xpath>count(/doc/*)</xpath>
            <output>8,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position07.xml</input-file>
        <test-case>
            <xpath>/doc/*[last()=position()]</xpath>
            <output>h,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position09.xml</input-file>
        <test-case>
            <xpath>/doc/foo[3]/a[position()=3]/num/@val</xpath>
            <output>9,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[3]/a[position()=2]/num/@val</xpath>
            <output>8,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[3]/a[position()=1]/num/@val</xpath>
            <output>7,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[2]/a[position()=3]/num/@val</xpath>
            <output>6,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[2]/a[position()=2]/num/@val</xpath>
            <output>5,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[2]/a[position()=1]/num/@val</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[1]/a[position()=3]/num/@val</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[1]/a[position()=2]/num/@val</xpath>
            <output>2,</output>
        </test-case>
        <test-case>
            <xpath>/doc/foo[1]/a[position()=1]/num/@val</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position11.xml</input-file>
        <test-case>
            <xpath>normalize-space(/letters/letter/text())</xpath>
            <output>a,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position15.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()=4]</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position16.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()=3]</xpath>
            <output>3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position17.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()=1]</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position19.xml</input-file>
        <test-case>
            <xpath>/doc/a[4]</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position20.xml</input-file>
        <test-case>
            <xpath>/doc/a[3]</xpath>
            <output>3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position21.xml</input-file>
        <test-case>
            <xpath>/doc/a[1]</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position22.xml</input-file>
        <test-case>
            <xpath>/doc/text()[1]</xpath>
            <output>A,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position52.xml</input-file>
        <test-case>
            <xpath>count(/doc/*/z[2])</xpath>
            <output>5,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position53.xml</input-file>
        <test-case>
            <xpath>count(/doc/a/@*)</xpath>
            <output>6,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position60.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()&gt;2]</xpath>
            <output>3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position61.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()&lt;3]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position62.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()&gt;=2]</xpath>
            <output>2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position63.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()&lt;=3]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position64.xml</input-file>
        <test-case>
            <xpath>/doc/a[position()!=2]</xpath>
            <output>1,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position65.xml</input-file>
        <test-case>
            <xpath>/doc/a[3-2]</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position66.xml</input-file>
        <test-case>
            <xpath>/doc/a[0]</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position67.xml</input-file>
        <test-case>
            <xpath>/doc/a[number('3')]</xpath>
            <output>3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position68.xml</input-file>
        <test-case>
            <xpath>/metadata/keyword[@tag='ticker']/@value</xpath>
            <output>MSFT,IBM,Lotus,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position71.xml</input-file>
        <test-case>
            <xpath>name(/processing-instruction()[2])</xpath>
            <output>b-pi,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position76.xml</input-file>
        <test-case>
            <xpath>name(/doc/namespace::*[1])</xpath>
            <output>xml,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position81.xml</input-file>
        <test-case>
            <xpath>count(/doc/alpha[last()]/h)</xpath>
            <output>2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position82.xml</input-file>
        <test-case>
            <xpath>count(/doc/alpha/*[last()][name()='z'])</xpath>
            <output>6,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position85.xml</input-file>
        <test-case>
            <xpath>//baz/ancestor::foo[1]/@att1</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/ancestor::foo[1])/@att1</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>(//baz/ancestor::foo)[1]/@att1</xpath>
            <output>c,</output>
        </test-case>
        <test-case>
            <xpath>((//baz/ancestor::foo))[1]/@att1</xpath>
            <output>c,</output>
        </test-case>
        <test-case>
            <xpath>(((//baz/ancestor::foo))[1])/@att1</xpath>
            <output>c,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position88.xml</input-file>
        <test-case>
            <xpath>(/chapter//footnote)[2]</xpath>
            <output>ahoy,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position89.xml</input-file>
        <test-case>
            <xpath>(/child::chapter/descendant-or-self::node())/footnote[2]</xpath>
            <output>sayonara,yo,ciao,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position90.xml</input-file>
        <test-case>
            <xpath>/chapter/descendant::footnote[6]</xpath>
            <output>aloha,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position91.xml</input-file>
        <test-case>
            <xpath>(/chapter/section//@title)[7]</xpath>
            <output>A2c,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position103.xml</input-file>
        <test-case>
            <xpath>/doc/item[last()-1]</xpath>
            <output>must,</output>
        </test-case>
        <test-case>
            <xpath>/doc/item[last()]</xpath>
            <output>use,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position104.xml</input-file>
        <test-case>
            <xpath>/doc/item[last()][last()]</xpath>
            <output>must,</output>
        </test-case>
        <test-case>
            <xpath>/doc/item[1][last()]</xpath>
            <output>XSLT,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position105.xml</input-file>
        <test-case>
            <xpath>/doc/item[last()-1][1]</xpath>
            <output>must,</output>
        </test-case>
        <test-case>
            <xpath>/doc/item[last()-1][last()]</xpath>
            <output>must,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position107.xml</input-file>
        <test-case>
            <xpath>name(/doc/north/preceding-sibling::*[last()])</xpath>
            <output>north-west1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position108.xml</input-file>
        <test-case>
            <xpath>name(/doc/north/following-sibling::*[last()])</xpath>
            <output>north-east2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position109.xml</input-file>
        <test-case>
            <xpath>name(//center/preceding::*[last()])</xpath>
            <output>north-west1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/position/position110.xml</input-file>
        <test-case>
            <xpath>name(//center/following::*[last()])</xpath>
            <output>north-east2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate01.xml</input-file>
        <test-case>
            <xpath>/doc/a[true()=4]</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate02.xml</input-file>
        <test-case>
            <xpath>/doc/a[true()='stringwithchars']</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate03.xml</input-file>
        <test-case>
            <xpath>/doc/a[true()=following-sibling::*]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate04.xml</input-file>
        <test-case>
            <xpath>/doc/a[3.0='3.0']</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate05.xml</input-file>
        <test-case>
            <xpath>/doc/a[3=following-sibling::*]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate06.xml</input-file>
        <test-case>
            <xpath>/doc/a['target'=descendant::*]</xpath>
            <output>2&#xA;&#x20;&#x20;&#x20;&#x20;target&#xA;&#x20;&#x20;,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate07.xml</input-file>
        <test-case>
            <xpath>/doc/a[0 &lt; true()]</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate08.xml</input-file>
        <test-case>
            <xpath>/doc/a['3.5' &lt; 4]</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate09.xml</input-file>
        <test-case>
            <xpath>/doc/a[3 &lt; following-sibling::*]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate10.xml</input-file>
        <test-case>
            <xpath>/doc/a[1 &lt; 2 &lt; 3]</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate11.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::*=descendant::*]</xpath>
            <output>2&#xA;&#x20;&#x20;&#x20;&#x20;target&#xA;&#x20;&#x20;,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate12.xml</input-file>
        <test-case>
            <xpath>/doc/a[('target'=descendant::*) or @squish]</xpath>
            <output>1,2&#xA;&#x20;&#x20;&#x20;&#x20;target&#xA;&#x20;&#x20;,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate13.xml</input-file>
        <test-case>
            <xpath>/doc/a[not(('target'=descendant::*) or @squish)]</xpath>
            <output>3,target,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate14.xml</input-file>
        <test-case>
            <xpath>/doc/a[@squeesh or (@squish and @squash)]</xpath>
            <output>1,2,3,5,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate15.xml</input-file>
        <test-case>
            <xpath>/doc/a[(@squeesh or @squish) and @squash]</xpath>
            <output>1,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate16.xml</input-file>
        <test-case>
            <xpath>/doc/a[@squeesh or @squish and @squash]</xpath>
            <output>1,2,3,5,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate17.xml</input-file>
        <test-case>
            <xpath>/doc/a[not(@*)]</xpath>
            <output>2&#xA;&#x20;&#x20;&#x20;&#x20;child2&#xA;&#x20;&#x20;,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate18.xml</input-file>
        <test-case>
            <xpath>name(/doc/*[starts-with(name(.),'f')])</xpath>
            <output>f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate19.xml</input-file>
        <test-case>
            <xpath>name(/doc/descendant::*[string-length(name(.))=1])</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>name((/doc/descendant::*[string-length(name(.))=1])[1])</xpath>
            <output>a,</output>
        </test-case>
        <test-case>
            <xpath>name((/doc/descendant::*[string-length(name(.))=1])[2])</xpath>
            <output>b,</output>
        </test-case>
        <test-case>
            <xpath>name((/doc/descendant::*[string-length(name(.))=1])[3])</xpath>
            <output>c,</output>
        </test-case>
        <test-case>
            <xpath>name((/doc/descendant::*[string-length(name(.))=1])[4])</xpath>
            <output>d,</output>
        </test-case>
        <test-case>
            <xpath>name((/doc/descendant::*[string-length(name(.))=1])[5])</xpath>
            <output>q,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate20.xml</input-file>
        <test-case>
            <xpath>/doc/a[descendant::*='target']</xpath>
            <output>2&#xA;&#x20;&#x20;&#x20;&#x20;target&#xA;&#x20;&#x20;,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate21.xml</input-file>
        <test-case>
            <xpath>/doc/a['target'!=descendant::*]</xpath>
            <output>4missed,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate22.xml</input-file>
        <test-case>
            <xpath>/doc/a[descendant::*!='target']</xpath>
            <output>4missed,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate23.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::*=true()]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate24.xml</input-file>
        <test-case>
            <xpath>/doc/a[false()!=following-sibling::*]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate25.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::*!=false()]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate26.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::*=3]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate27.xml</input-file>
        <test-case>
            <xpath>/doc/a[4 != following-sibling::*]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate28.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::* != 4]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate29.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::* &lt; 3]</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate30.xml</input-file>
        <test-case>
            <xpath>/doc/a[3 &gt;= following-sibling::*]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate31.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::* &gt;= 3]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate32.xml</input-file>
        <test-case>
            <xpath>/doc/a[3 &gt; following-sibling::*]</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate33.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::* &gt; 3]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate34.xml</input-file>
        <test-case>
            <xpath>/doc/a[3 &lt;= following-sibling::*]</xpath>
            <output>1,2,3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate35.xml</input-file>
        <test-case>
            <xpath>/doc/a[following-sibling::* &lt;= 3]</xpath>
            <output>1,2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate36.xml</input-file>
        <test-case>
            <xpath>/doc/a[1 &lt; 3 &lt; 2]</xpath>
            <output>1,2,3,4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate39.xml</input-file>
        <test-case>
            <xpath>/doc/child1[child::child2]</xpath>
            <output>Text from child1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate40.xml</input-file>
        <test-case>
            <xpath>//child2[ancestor::element2]</xpath>
            <output>Text from child2 of second element (correct execution),</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate41.xml</input-file>
        <test-case>
            <xpath>//child2[ancestor-or-self::element2]</xpath>
            <output>Text from child2 of second element (correct execution),</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate42.xml</input-file>
        <test-case>
            <xpath>//child2[attribute::attr1]</xpath>
            <output>Text from child2 of second element (correct execution),</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate43.xml</input-file>
        <test-case>
            <xpath>/doc/element1[descendant-or-self::child2]</xpath>
            <output>Text from first element (correct execution)&#xA;&#x20;&#x20;&#x20;&#x20;,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate44.xml</input-file>
        <test-case>
            <xpath>//child1[parent::element1]</xpath>
            <output>Test executed successfully,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate45.xml</input-file>
        <test-case>
            <xpath>/doc/element1[(((((2*10)-4)+9) div 5) mod 3 )]</xpath>
            <output>Test executed successfully,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate46.xml</input-file>
        <test-case>
            <xpath>/doc/element1[(((((2*10)-4)+9) div 5) mod floor(3))]</xpath>
            <output>Test executed successfully,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate47.xml</input-file>
        <test-case>
            <xpath>/doc/element1[floor(2)]</xpath>
            <output>Test executed successfully,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate48.xml</input-file>
        <test-case>
            <xpath>/foo/bar[@a='1' and @b='1']/@seq</xpath>
            <output>c,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate49.xml</input-file>
        <test-case>
            <xpath>/foo/bar[(@a='1' or @b='1') and @c='1']/@seq</xpath>
            <output>6,7,a,b,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate50.xml</input-file>
        <test-case>
            <xpath>/foo/bar[@a='1' and (@b='1' or @c='1') and @d='1']/@seq</xpath>
            <output>b,d,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate51.xml</input-file>
        <test-case>
            <xpath>/foo/bar[@a='1' and @b='1' or @c='1' and @d='1']/@seq</xpath>
            <output>3,7,b,c,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate52.xml</input-file>
        <test-case>
            <xpath>/foo/bar[(@a='1' and @b='1') or (@c='1' and @d='1')]/@seq</xpath>
            <output>3,7,b,c,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate53.xml</input-file>
        <test-case>
            <xpath>/foo/bar[@a='1' or (@b='1' and @c='1') or @d='1']/@seq</xpath>
            <output>1,3,5,6,7,8,9,a,b,c,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate54.xml</input-file>
        <test-case>
            <xpath>/foo/bar[(@a='1' or @b='1') and (@c='1' or @d='1')]/@seq</xpath>
            <output>5,6,7,9,a,b,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate55.xml</input-file>
        <test-case>
            <xpath>/foo/bar[@a='1' or @b='1' and @c='1' or @d='1']/@seq</xpath>
            <output>1,3,5,6,7,8,9,a,b,c,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate56.xml</input-file>
        <test-case>
            <xpath>/foo/bar[@a='1' or @b='1' or @c='1']/@seq</xpath>
            <output>2,3,4,5,6,7,8,9,a,b,c,d,e,f,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/predicate/predicate58.xml</input-file>
        <test-case>
            <xpath>count(/doc/a[@ex])</xpath>
            <output>2,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[@ex=''])</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[string-length(@ex)=0])</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[@ex!=''])</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[string-length(@ex) &gt; 0])</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[not(@ex)])</xpath>
            <output>3,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[not(@ex='')])</xpath>
            <output>4,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[not(string-length(@ex)=0)])</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[@why='value'])</xpath>
            <output>1,</output>
        </test-case>
        <test-case>
            <xpath>count(/doc/a[@why!='value'])</xpath>
            <output>1,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select01.xml</input-file>
        <test-case>
            <xpath>/doc/a/b/@attr</xpath>
            <output>test,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select12.xml</input-file>
        <test-case>
            <xpath>/doc//Q</xpath>
            <output></output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select15.xml</input-file>
        <test-case>
            <xpath>normalize-space(/doc/child::sub/text())</xpath>
            <output>OK,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select16.xml</input-file>
        <test-case>
            <xpath>normalize-space(/doc/child :: sub/text())</xpath>
            <output>OK,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select17.xml</input-file>
        <test-case>
            <xpath>normalize-space(/doc/comment())</xpath>
            <output>Good,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select18.xml</input-file>
        <test-case>
            <xpath>normalize-space(/doc/comment ())</xpath>
            <output>Good,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select19.xml</input-file>
        <test-case>
            <xpath>string-length(/doc)</xpath>
            <output>36,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select20.xml</input-file>
        <test-case>
            <xpath>string-length (/doc)</xpath>
            <output>36,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select21.xml</input-file>
        <test-case>
            <xpath>/doc/div + 3</xpath>
            <output>12,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select22.xml</input-file>
        <test-case>
            <xpath>/doc/* +3</xpath>
            <output>12,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select23.xml</input-file>
        <test-case>
            <xpath>/doc/@div - 5</xpath>
            <output>15,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select24.xml</input-file>
        <test-case>
            <xpath>/doc/@div -5</xpath>
            <output>15,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select25.xml</input-file>
        <test-case>
            <xpath>/doc/@div-5</xpath>
            <output>12,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select26.xml</input-file>
        <test-case>
            <xpath>/doc/@*-5</xpath>
            <output>15,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select27.xml</input-file>
        <test-case>
            <xpath>/doc/attribute :: div</xpath>
            <output>20,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select28.xml</input-file>
        <test-case>
            <xpath>/doc/attribute :: *</xpath>
            <output>20,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select29.xml</input-file>
        <test-case>
            <xpath>/doc/attribute*(/doc/div - 4)</xpath>
            <output>40,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select30.xml</input-file>
        <test-case>
            <xpath>(/doc/* - 4)*/doc/*</xpath>
            <output>45,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select31.xml</input-file>
        <test-case>
            <xpath>/doc/a[div=9]</xpath>
            <output>y9,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select32.xml</input-file>
        <test-case>
            <xpath>/doc/a[*=9]/@s</xpath>
            <output>w,x,y,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select33.xml</input-file>
        <test-case>
            <xpath>16-/doc/div</xpath>
            <output>7,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select34.xml</input-file>
        <test-case>
            <xpath>25-/doc/*</xpath>
            <output>16,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select35.xml</input-file>
        <test-case>
            <xpath>54 div/doc/*</xpath>
            <output>6,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select36.xml</input-file>
        <test-case>
            <xpath>(/doc/* - 4) div 2</xpath>
            <output>5,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select37.xml</input-file>
        <test-case>
            <xpath>' 6 ' div 2</xpath>
            <output>3,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select38.xml</input-file>
        <test-case>
            <xpath>' 6 '*/doc/div</xpath>
            <output>24,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/select/select40.xml</input-file>
        <test-case>
            <xpath>5.+/doc/*</xpath>
            <output>11,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string01.xml</input-file>
        <test-case>
            <xpath>string-length('This is a test')</xpath>
            <output>14,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string02.xml</input-file>
        <test-case>
            <xpath>string-length(doc)</xpath>
            <output>4,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string04.xml</input-file>
        <test-case>
            <xpath>string-length()</xpath>
            <output>27,</output>
        </test-case>
        <test-case>
            <xpath>string-length(doc/a)</xpath>
            <output>12,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string05.xml</input-file>
        <test-case>
            <xpath>string(doc)</xpath>
            <output>Test,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string06.xml</input-file>
        <test-case>
            <xpath>starts-with('ENCYCLOPEDIA', 'ENCY')</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>contains('ENCYCLOPEDIA', 'CYCL')</xpath>
            <output>true,</output>
        </test-case>
        <test-case>
            <xpath>substring-before('1999/04/01', '/')</xpath>
            <output>1999,</output>
        </test-case>
        <test-case>
            <xpath>substring-after('1999/04/01', '/')</xpath>
            <output>04/01,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string10.xml</input-file>
        <test-case>
            <xpath>normalize-space('&#9;&#10;&#13;ab  cd&#9;&#10;&#13; ef&#9;&#10;&#13; ')</xpath>
            <output>ab cd ef,</output>
        </test-case>
        <test-case>
            <xpath>normalize-space(/doc/a)</xpath>
            <output>This is a normalized text node from the source document.,</output>
        </test-case>
        <test-case>
            <xpath>translate("bar","abc","ABC")</xpath>
            <output>BAr,</output>
        </test-case>
        <test-case>
            <xpath>concat("x","yz")</xpath>
            <output>xyz,</output>
        </test-case>
        <test-case>
            <xpath>substring('1999/04/01', 1, 4)</xpath>
            <output>1999,</output>
        </test-case>
        <test-case>
            <xpath>substring("12345", 1.5, 2.6)</xpath>
            <output>234,</output>
        </test-case>
        <test-case>
            <xpath>substring("12345", 0, 3)</xpath>
            <output>12,</output>
        </test-case>
        <test-case>
            <xpath>substring("12345", 0 div 0, 3)</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>substring("12345", 1, 0 div 0)</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>substring("12345", -42, 1 div 0)</xpath>
            <output>12345,</output>
        </test-case>
        <test-case>
            <xpath>substring("12345", -1 div 0, 1 div 0)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string22.xml</input-file>
        <test-case>
            <xpath>substring(foo, 12, 3)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string37.xml</input-file>
        <test-case>
            <xpath>string(/doc/foo)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string38.xml</input-file>
        <test-case>
            <xpath>string(0)</xpath>
            <output>0,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string39.xml</input-file>
        <test-case>
            <xpath>string(2)</xpath>
            <output>2,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string40.xml</input-file>
        <test-case>
            <xpath>string('test')</xpath>
            <output>test,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string41.xml</input-file>
        <test-case>
            <xpath>string('')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string44.xml</input-file>
        <test-case>
            <xpath>starts-with('ENCYCLOPEDIA', 'EN')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string45.xml</input-file>
        <test-case>
            <xpath>starts-with('ENCYCLOPEDIA', 'en')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string46.xml</input-file>
        <test-case>
            <xpath>starts-with('ab', 'abc')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string47.xml</input-file>
        <test-case>
            <xpath>starts-with('abc', 'bc')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string48.xml</input-file>
        <test-case>
            <xpath>starts-with('abc', '')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string49.xml</input-file>
        <test-case>
            <xpath>starts-with('','')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string50.xml</input-file>
        <test-case>
            <xpath>starts-with('true()', 'tr')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string51.xml</input-file>
        <test-case>
            <xpath>starts-with(doc, 'ENCY')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string52.xml</input-file>
        <test-case>
            <xpath>starts-with(doc, 'test')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string53.xml</input-file>
        <test-case>
            <xpath>starts-with(doc/@attr, 'slam')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string54.xml</input-file>
        <test-case>
            <xpath>starts-with(doc/@attr, 'wich')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string55.xml</input-file>
        <test-case>
            <xpath>contains('ENCYCLOPEDIA', 'TEST')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string57.xml</input-file>
        <test-case>
            <xpath>contains(concat(.,'BC'),concat('A','B','C'))</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string58.xml</input-file>
        <test-case>
            <xpath>contains('ab', 'abc')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string59.xml</input-file>
        <test-case>
            <xpath>contains('abc', 'bc')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string60.xml</input-file>
        <test-case>
            <xpath>contains('abc', 'bcd')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string61.xml</input-file>
        <test-case>
            <xpath>contains('abc', '')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string62.xml</input-file>
        <test-case>
            <xpath>contains('','')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string63.xml</input-file>
        <test-case>
            <xpath>contains('true()', 'e')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string64.xml</input-file>
        <test-case>
            <xpath>contains(doc, 'CYCL')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string65.xml</input-file>
        <test-case>
            <xpath>contains(doc, 'TEST')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string66.xml</input-file>
        <test-case>
            <xpath>contains(doc/@attr, 'amwi')</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string67.xml</input-file>
        <test-case>
            <xpath>contains(doc/@attr, 'TEST')</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string68.xml</input-file>
        <test-case>
            <xpath>substring-before('ENCYCLOPEDIA', '/')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string69.xml</input-file>
        <test-case>
            <xpath>substring-before('ENCYCLOPEDIA', 'C')</xpath>
            <output>EN,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string70.xml</input-file>
        <test-case>
            <xpath>substring-before('ENCYCLOPEDIA', 'c')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string71.xml</input-file>
        <test-case>
            <xpath>substring-before(doc, '/')</xpath>
            <output>1999,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string72.xml</input-file>
        <test-case>
            <xpath>substring-before(/doc/foo, '/')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string73.xml</input-file>
        <test-case>
            <xpath>substring-before(doc/@attr, 'z')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string74.xml</input-file>
        <test-case>
            <xpath>substring-before(doc/@attr, 'D')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string75.xml</input-file>
        <test-case>
            <xpath>substring-before(doc/@attr, 'd')</xpath>
            <output>abc,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string76.xml</input-file>
        <test-case>
            <xpath>substring-after('ENCYCLOPEDIA', '/')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string77.xml</input-file>
        <test-case>
            <xpath>substring-after('ENCYCLOPEDIA', 'C')</xpath>
            <output>YCLOPEDIA,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string78.xml</input-file>
        <test-case>
            <xpath>substring-after('abcdefghijk','l')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string79.xml</input-file>
        <test-case>
            <xpath>substring-after('1999/04/01', '1')</xpath>
            <output>999/04/01,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string80.xml</input-file>
        <test-case>
            <xpath>substring-after(doc, '/')</xpath>
            <output>04/01,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string81.xml</input-file>
        <test-case>
            <xpath>substring-after(/doc/foo, '/')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string82.xml</input-file>
        <test-case>
            <xpath>substring-after(doc/@attr, 'z')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string83.xml</input-file>
        <test-case>
            <xpath>substring-after(doc/@attr, 'D')</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string84.xml</input-file>
        <test-case>
            <xpath>substring-after(doc/@attr, 'd')</xpath>
            <output>efg,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string87.xml</input-file>
        <test-case>
            <xpath>translate(&#34;BAR&#34;,&#34;abc&#34;,&#34;ABC&#34;)</xpath>
            <output>BAR,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string88.xml</input-file>
        <test-case>
            <xpath>translate(&#34;bar&#34;,&#34;RAB&#34;,&#34;xyz&#34;)</xpath>
            <output>bar,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string89.xml</input-file>
        <test-case>
            <xpath>translate(&#34;BAR&#34;,&#34;Rab&#34;,&#34;TxX&#34;)</xpath>
            <output>BAT,</output>
        </test-case>
        <test-case>
            <xpath>translate("B&#039;B","&#039;","&#096;")</xpath>
            <output>B`B,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string90.xml</input-file>
        <test-case>
            <xpath>translate(/doc/a,&#34;abc&#34;,&#34;ABC&#34;)</xpath>
            <output>BAr,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string91.xml</input-file>
        <test-case>
            <xpath>translate(/doc/b,&#34;ABC&#34;,&#34;abc&#34;)</xpath>
            <output>baR,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string92.xml</input-file>
        <test-case>
            <xpath>translate(doc/a/@attrib,&#34;lo&#34;,&#34;IT&#34;)</xpath>
            <output>heIIT,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string93.xml</input-file>
        <test-case>
            <xpath>translate(doc/b/@attrib,&#34;LO&#34;,&#34;it&#34;)</xpath>
            <output>HEiit,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string94.xml</input-file>
        <test-case>
            <xpath>translate(doc/b/@attrib,&#34;lo&#34;,&#34;it&#34;)</xpath>
            <output>HELLO,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string95.xml</input-file>
        <test-case>
            <xpath>translate(&#34;zzaaazzz&#34;,&#34;abcz&#34;,&#34;ABC&#34;)</xpath>
            <output>AAA,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string96.xml</input-file>
        <test-case>
            <xpath>translate(&#34;ddaaadddd&#34;,&#34;abcd&#34;,&#34;ABCxy&#34;)</xpath>
            <output>xxAAAxxxx,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string97.xml</input-file>
        <test-case>
            <xpath>concat(&#34;a&#34;,&#34;b&#34;,&#34;c&#34;,&#34;d&#34;,&#34;ef&#34;)</xpath>
            <output>abcdef,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string98.xml</input-file>
        <test-case>
            <xpath>concat(doc/a, doc/b)</xpath>
            <output>ab,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string99.xml</input-file>
        <test-case>
            <xpath>concat(/doc/a, /doc/b, /doc/c, /doc/d, /doc/e)</xpath>
            <output>abcdef,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string100.xml</input-file>
        <test-case>
            <xpath>concat(&#34;cd&#34;, &#34;34&#34;)</xpath>
            <output>cd34,</output>
        </test-case>
        <test-case>
            <xpath>concat(&#34;cd&#34;, 34)</xpath>
            <output>cd34,</output>
        </test-case>
        <test-case>
            <xpath>concat(&#34;bc&#34;, string(23))</xpath>
            <output>bc23,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string103.xml</input-file>
        <test-case>
            <xpath>concat(/doc/a, 34)</xpath>
            <output>a34,</output>
        </test-case>
        <test-case>
            <xpath>concat(false(),'ly')</xpath>
            <output>falsely,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string111.xml</input-file>
        <test-case>
            <xpath>substring('ENCYCLOPEDIA', 8, 3)</xpath>
            <output>PED,</output>
        </test-case>
        <test-case>
            <xpath>substring('abcdefghijk',0 div 0, 5)</xpath>
            <output>,</output>
        </test-case>
        <test-case>
            <xpath>substring('abcdefghijk',4, 6)</xpath>
            <output>defghi,</output>
        </test-case>
        <test-case>
            <xpath>substring('1999/04/01', 1, 0)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string116.xml</input-file>
        <test-case>
            <xpath>substring(doc, 1, 4)</xpath>
            <output>1999,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string117.xml</input-file>
        <test-case>
            <xpath>substring(foo, 2, 2)</xpath>
            <output>,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string118.xml</input-file>
        <test-case>
            <xpath>substring(doc/@attr, 1, 3)</xpath>
            <output>abc,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string119.xml</input-file>
        <test-case>
            <xpath>substring(doc/@attr, 4)</xpath>
            <output>defg,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string120.xml</input-file>
        <test-case>
            <xpath>substring(doc/@attr, 2.5, 3.6)</xpath>
            <output>cdef,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string125.xml</input-file>
        <test-case>
            <xpath>contains(/doc/main,/doc/sub)</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string126.xml</input-file>
        <test-case>
            <xpath>contains(/doc/main,/doc/sub)</xpath>
            <output>true,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string127.xml</input-file>
        <test-case>
            <xpath>contains(/doc/main,/doc/sub)</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string128.xml</input-file>
        <test-case>
            <xpath>contains(/doc/main,/doc/sub)</xpath>
            <output>false,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string136.xml</input-file>
        <test-case>
            <xpath>translate(/doc/a,"abe","bao")</xpath>
            <output>abrtor,</output>
        </test-case>
    </test-cases>
    <test-cases>
        <input-file>&xalan-tests;/string/string137.xml</input-file>
        <test-case>
            <xpath>translate(doc/a,"aeiouy","******")</xpath>
            <output>b*rb*r*t*,</output>
        </test-case>
    </test-cases>
</test-suite>