XProc Unit Test: validrng001

Inputs

Port=schema:

<grammar xmlns="http://relaxng.org/ns/structure/1.0">
  <start>
    <ref name="doc"/>
  </start>
  <define name="doc">
    <element name="doc">
      <optional>
        <ref name="title"/>
      </optional>
      <zeroOrMore>
        <ref name="p"/>
      </zeroOrMore>
    </element>
  </define>
  <define name="title">
    <element name="title">
      <text/>
    </element>
  </define>
  <define name="p">
    <element name="p">
      <text/>
    </element>
  </define>
</grammar>

Port=source:

<doc>
<title>Title</title>
<p>Some paragraph.</p>
</doc>

Pipeline

pipeline:

<p:pipeline name="pipeline" xmlns:p="http://www.w3.org/2007/03/xproc">
<p:input port="source"/>
<p:input port="schema"/>
<p:output port="result"/>

<p:validate-relax-ng>
  <p:input port="source">
    <p:pipe step="pipeline" port="source"/>
  </p:input>
  <p:input port="schema">
    <p:pipe step="pipeline" port="schema"/>
  </p:input>
</p:validate-relax-ng>

</p:pipeline>

Outputs

Port=result:

<doc>
<title>Title</title>
<p>Some paragraph.</p>
</doc>