Testing p:hash replaces the complete element.
Test ab-hash-007.xml is expected to pass.
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
<p:output port="result"/>
<p:hash value="XML Processing Model Working Group" algorithm="crc" match="/doc/p">
<p:with-input>
<doc>
<p>This is a p.</p>
</doc>
</p:with-input>
</p:hash>
</p:declare-step>
<s:schema 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="not(doc/text()='852b1f51')">Whitespace around element 'p' is not correctly handled.</s:assert>
<s:assert test="normalize-space(doc/text())='852b1f51'">Normalized text of doc is not '852b1f51'.</s:assert>
<s:assert test="count(doc/*)=0">doc must not have child elements.</s:assert>
</s:rule>
</s:pattern>
</s:schema>
Added attribute 'queryBinding' to schematron's schema.
Fixed test by taking care of whitespace in schema.
New tests for p:hash