ab-validate-with-dtd-006
Test DTD validation: keys in the document properties take precedence over the
serialization option on the step. The document is valid, so there should be no detection
element in the xvrl report.
Test is expected to pass.
The pipeline
<p:declare-step xmlns:p="http://www.w3.org/ns/xproc"
xmlns:t="http://xproc.org/ns/testsuite/3.0" name="pipeline" version="3.0">
<p:output port="result"/>
<p:validate-with-dtd serialization="map{'doctype-system' : 'i-do-not-exist'}">
<p:with-input>
<p:inline document-properties="map{'serialization' : map{'doctype-system' : '../documents/address.dtd'} }">
<address>
<first>Douglas</first>
<last>Adams</last>
<phone>42</phone>
</address>
</p:inline>
</p:with-input>
</p:validate-with-dtd>
<p:identity>
<p:with-input pipe="report"/>
</p:identity>
</p:declare-step>
Result
<xvrl:report xmlns:t="http://xproc.org/ns/testsuite/3.0"
xmlns:xvrl="http://www.xproc.org/ns/xvrl">
<xvrl:metadata>
<xvrl:timestamp>2025-06-19T18:06:07.400429231Z</xvrl:timestamp>
<xvrl:creator name="XML Calabash"
version="3.0.5-SNAPSHOT"/>
<xvrl:document href="file:/woodpecker/src/codeberg.org/xmlcalabash/xmlcalabash3/tests/3.0-test-suite/test-suite/tests/ab-validate-with-dtd-006.xml"/>
</xvrl:metadata>
<xvrl:digest valid="true" fatal-error-count="0"
error-count="0" warning-count="0" info-count="0"
unspecified-count="0" fatal-error-codes="" error-codes=""
warning-codes="" info-codes="" unspecified-codes=""
worst="unspecified"/>
</xvrl:report>
Schematron checks
<s:schema xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://purl.oclc.org/dsdl/schematron" xmlns:t="http://xproc.org/ns/testsuite/3.0"
queryBinding="xslt2">
<s:ns uri="http://www.xproc.org/ns/xvrl"
prefix="xvrl"/>
<s:pattern>
<s:rule context="/">
<s:assert test="//xvrl:report">There is no xvrl:report element.</s:assert>
<s:assert test="not(exists(//xvrl:report//xvrl:detection))">There should be no element 'xvrl:detection'.</s:assert>
</s:rule>
</s:pattern>
</s:schema>
Revision history
- 14 Oct 2024, Norm Tovey-Walsh
- Clarify test description.
- 15 Aug 2024, Achim Berndzen
- Initial check in.