Features: p-validate-with-nvdl

ab-validate-with-nvdl-009

Testing nvdl validation: Valid document, references to schema ports.

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-nvdl>
      <p:with-input port="source"
                    href="../documents/NDVL-Book-valid.xml"/>
      <p:with-input port="nvdl">
         <rules xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
            <namespace ns="http://xproc.org/ns/testsuite/3.0/book">
               <validate schema="../documents/NVDL-Book.rng"/>
               <validate schema="http://xproc.org/ns/testsuite/3.0/NVDL-Book.sch"/>
            </namespace>
            <namespace ns="http://xproc.org/ns/testsuite/3.0/comments">
               <validate schema="../documents/NVDL-Comments.xsd"/>
            </namespace>
         </rules>
      </p:with-input>
      <p:with-input port="schemas">
         <p:inline document-properties="map{'base-uri' : 'http://xproc.org/ns/testsuite/3.0/NVDL-Book.sch'}">
            <s:schema xmlns="http://www.w3.org/1999/xhtml"
                      xmlns:s="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">
               <s:ns uri="http://xproc.org/ns/testsuite/3.0/book"
                     prefix="book"/>
               <s:pattern>
                  <s:rule context="/">
                     <s:assert test="book:Book">The document root is not "book".</s:assert>
                  </s:rule>
               </s:pattern>
            </s:schema>
         </p:inline>
      </p:with-input>
   </p:validate-with-nvdl>
</p:declare-step>

Result

<Book xmlns="http://xproc.org/ns/testsuite/3.0/book"
      xmlns:t="http://xproc.org/ns/testsuite/3.0">
   <Title>XProc 3.0. Programmers reference</Title>
   <Author>Erik Siegel</Author>
   <comments>
      <par>A recommended introduction to XProc 3.0.</par>
   </comments>
</Book>

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 prefix="xvrl"
         uri="http://www.xproc.org/ns/xvrl"/>
   <s:pattern>
      <s:rule context="/">
         <s:assert test="deep-equal(., doc('../documents/NDVL-Book-valid.xml'))">The document is not equal to the source document.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

20 Sep 2022, Achim Berndzen
Initial commit.