ab-validate-with-relax-ng-016
Testing dtd-id-idref-warnings: set to true, source is valid.
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-relax-ng dtd-id-idref-warnings="true">
<p:with-input port="source">
<doc>
<title>Title</title>
<p id="foo">Some paragraph.</p>
<p idref="foo">Some other paragraph</p>
</doc>
</p:with-input>
<p:with-input port="schema">
<p:inline content-type="text/plain"
expand-text="false">
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
element doc {
element title {
[ a:defaultValue="en-us" ]
attribute language { text }?,
text
}?,
element p {
attribute id { xsd:ID }?,
attribute idref { xsd:IDREF }?,
text
}*
}
</p:inline>
</p:with-input>
</p:validate-with-relax-ng>
</p:declare-step>
Result
<doc xmlns:t="http://xproc.org/ns/testsuite/3.0">
<title>Title</title>
<p id="foo">Some paragraph.</p>
<p idref="foo">Some other paragraph</p>
</doc>
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:pattern>
<s:rule context="/">
<s:assert test="doc">The element root is not “doc”.</s:assert>
<s:assert test="doc/title">The element root does not have a child 'title'.</s:assert>
<s:assert test="doc/p">Element root does not have child 'p'.</s:assert>
</s:rule>
</s:pattern>
</s:schema>
Revision history
- 10 Jun 2021, Achim Berndzen
- Added attribute 'queryBinding' to schematron's schema.
- 18 Aug 2019, Achim Berndzen
- Initial publication