nw-validate-with-xsd-001

A simple validation with XSD test.

Test nw-validate-with-xsd-001.xml is expected to pass.

It requires the following features: p-validate-with-xsd.

The pipeline


<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" name="pipeline" version="3.0">
<p:output port="result"/>

<p:validate-with-xml-schema>
  <p:with-input port="source">
    <doc xmlns="">
      <title>Title</title>
      <p>Some paragraph.</p>
    </doc>
  </p:with-input>
  <p:with-input port="schema">
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="doc">
	<xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema">
	  <xs:sequence xmlns:xs="http://www.w3.org/2001/XMLSchema">
	    <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" minOccurs="0" ref="title"/>
	    <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" minOccurs="0" maxOccurs="unbounded" ref="p"/>
	  </xs:sequence>
	</xs:complexType>
      </xs:element>
      <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="title" type="xs:string"/>
      <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="p" type="xs:string"/>
    </xs:schema>
  </p:with-input>
</p:validate-with-xml-schema>

</p:declare-step>
  
MorganaXProc passing XML Calabash passing

Schematron validation


    <s:schema xmlns:s="http://purl.oclc.org/dsdl/schematron">
      <s:pattern>
        <s:rule context="/">
          <s:assert test="doc">The pipeline root is not “doc”.</s:assert>
        </s:rule>
        <s:rule context="doc">
          <s:assert test="title">There’s no “title” element.</s:assert>
          <s:assert test="p">There’s no “p” element.</s:assert>
          <s:assert test="title[.='Title']">The title is incorrect.</s:assert>
          <s:assert test="p[.='Some paragraph.']">The paragraph is incorrect.</s:assert>
        </s:rule>
      </s:pattern>
    </s:schema>
  

Revision history

21 Jul 2019, Norman Walsh

Initial publication