Test
p:viewport
with no matching nodes.
Test ab-viewport-004.xml is expected to pass.
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
<p:output port="result"/>
<p:viewport match="i-do-not-exist">
<p:with-input>
<doc>
<para>Some paragraph.</para>
<para>Some paragraph.</para>
<para>Some paragraph.</para>
<para>
<para>Nested paragraph.</para>
</para>
</doc>
</p:with-input>
<p:identity>
<p:with-input>
<i-should-not-apper-in-the-output-of-the-viewport/>
</p:with-input>
</p:identity>
</p:viewport>
</p:declare-step>
<s:schema xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">
<s:pattern>
<s:rule context="/">
<s:assert test="doc">The document root is not 'doc'.</s:assert>
<s:assert test="count(doc/*)=4">Document root should have four child elements.</s:assert>
<s:assert test="count(doc/para)=4">Document root should four child elements 'para'.</s:assert>
<s:assert test="doc/para[1]/text()='Some paragraph.'">Text in para[1] is not 'Some paragraph.'</s:assert>
<s:assert test="doc/para[2]/text()='Some paragraph.'">Text in para[2] is not 'Some paragraph.'</s:assert>
<s:assert test="doc/para[3]/text()='Some paragraph.'">Text in para[3] is not 'Some paragraph.'</s:assert>
<s:assert test="doc/para[4]/para/text()='Nested paragraph.'">para[4]/para is not 'Nested paragraph.'.</s:assert>
</s:rule>
</s:pattern>
</s:schema>
Added attribute 'queryBinding' to schematron's schema.
Additional tests for p:viewport (partly ported from 1.0)