p:wrap-sequence 010 (AB)

Tests p:wrap-sequence

Test ab-wrap-sequence-010.xml is expected to pass.

The pipeline


<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" name="pipeline" version="3.0">
   <p:input port="source"/>
   <p:output port="result"/>
   <p:identity name="pr">
      <p:with-input>
         <p:pipe step="pipeline" port="source"/>
         <p:pipe step="pipeline" port="source"/>
         <p:pipe step="pipeline" port="source"/>
         <p:pipe step="pipeline" port="source"/>
      </p:with-input>
   </p:identity>
   <p:wrap-sequence name="splitseq" wrapper="sequence" group-adjacent="position() = last()"/>
   <p:wrap-sequence wrapper="result"/>
</p:declare-step>
MorganaXProc passing XML Calabash failing

Inputs

port = source


<doc/>

Schematron validation


<s:schema xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2">
   <s:pattern>
      <s:rule context="/">
         <s:assert test="result">Root element is not 'result'.</s:assert>
         <s:assert test="count(result/child::node())=2">Root element should have two children.</s:assert>
         <s:assert test="count(result/sequence)=2">All children of root element should be 'sequence'.</s:assert>
         <s:assert test="count(result/sequence[1]/child::node())=3">First sequence element should have three child.</s:assert>
         <s:assert test="count(result/sequence[2]/child::node())=1">Second sequence element should have one child.</s:assert>
         <s:assert test="count(result/sequence[1]/doc)=3">First sequence element should have three 'doc' children.</s:assert>
         <s:assert test="result/sequence[2]/doc">Second sequence element should have one 'doc' child.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

16 Oct 2021, Norman Walsh

Remove spurious whitespace from input document.

10 Jun 2021, Achim Berndzen

Added attribute 'queryBinding' to schematron's schema.

02 Jun 2019, Achim Berndzen

Tests for p:wrap-sequence (Partly ported from 1.0)