p:set-attributes-002 (AB)

Tests p:set-attributes

Test ab-set-attributes-002.xml is expected to pass.

The pipeline


<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
   <p:input port="source"/>
   <p:output port="result"/>
   <p:set-attributes xmlns:a="http://xproc.org/ns/testsuite/attributes" match="*" attributes="map{'att':'1', 'a:att':'2'}"/>
</p:declare-step>
MorganaXProc passing XML Calabash passing

Inputs

port = source


<doc>
   <this/>
   <is>
      <other>
         <doc/>
      </other>
   </is>
</doc>

Schematron validation


<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/attributes" prefix="a"/>
   <s:pattern>
      <s:rule context="/">
         <s:assert test="doc">Root element is not 'doc'.</s:assert>
         <s:assert test="/doc/@att='1'">Root element does not have an attribute 'a' with value '1'.</s:assert>
         <s:assert test="/doc/@a:att='2'">Root element does not have an attribute Q{http://xproc.org/ns/testsuite/attributes}att with value '2'.</s:assert>
         <s:assert test="doc/this">Root element has no child 'this'.</s:assert>
         <s:assert test="/doc/this/@att='1'">Element 'this' does not have an attribute 'a' with value '1'.</s:assert>
         <s:assert test="/doc/this/@a:att='2'">Element 'this' does not have an attribute Q{http://xproc.org/ns/testsuite/attributes}att with value '2'.</s:assert>
         <s:assert test="doc/is/other">Element 'is' has no child 'other'.</s:assert>
         <s:assert test="/doc/is/other/@att='1'">Element 'other' does not have an attribute 'a' with value '1'.</s:assert>
         <s:assert test="/doc/is/other/@a:att='2'">Element 'other' does not have an attribute Q{http://xproc.org/ns/testsuite/attributes}att with value '2'.</s:assert>
         <s:assert test="doc/is/other/doc">Element 'other' has no child 'doc'.</s:assert>
         <s:assert test="/doc/is/other/doc/@att='1'">Element 'doc' does not have an attribute 'a' with value '1'.</s:assert>
         <s:assert test="/doc/is/other/doc/@a:att='2'">Element 'doc' does not have an attribute Q{http://xproc.org/ns/testsuite/attributes}att with value '2'.</s:assert>
         <s:assert test="count(//*/@test)=0">Attribute 'test' should not show up.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

10 Jun 2021, Achim Berndzen

Added attribute 'queryBinding' to schematron's schema.

23 Jun 2019, Achim Berndzen

Changed test to new step signature.

19 May 2019, Achim Berndzen

Tests for p:set-attributes