AB-xslt-041

Tests output-base-uri (3.0)

Test ab-xslt-041.xml is expected to pass.

It requires the following features: xslt-3.

The pipeline


<p:declare-step xmlns:p="http://www.w3.org/ns/xproc" version="3.0">
   <p:output port="result"/>
   <p:xslt version="3.0" output-base-uri="xslt/" xml:base="http://xproc-test/">
      <p:with-input port="source">
         <doc/>
      </p:with-input>
      <p:with-input port="stylesheet">
         <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
            <xsl:template match="/">
               <xsl:result-document href="one.xml">
                  <one/>
               </xsl:result-document>
               <xsl:result-document href="two.xml">
                  <two/>
               </xsl:result-document>
            </xsl:template>
         </xsl:stylesheet>
      </p:with-input>
   </p:xslt>
   <p:for-each>
      <p:with-input pipe="secondary"/>
      <p:insert position="first-child" match="/*">
         <p:with-input port="insertion">
            <uri>{base-uri(.)}</uri>
         </p:with-input>
      </p:insert>
   </p:for-each>
   <p:wrap-sequence wrapper="wrapper"/>
</p:declare-step>
MorganaXProc passing XML Calabash passing

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="/wrapper">The document root is not 'wrapper'.</s:assert>
         <s:assert test="/wrapper/one/uri/text()='http://xproc-test/xslt/one.xml'">Element 'one' does not have a text child 'http://xproc-test/xslt/one.xml'.</s:assert>
         <s:assert test="/wrapper/two/uri/text()='http://xproc-test/xslt/two.xml'">Element 'two' does not have a text child 'http://xproc-test/two/one.xml'.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

10 Jun 2021, Achim Berndzen

Added attribute 'queryBinding' to schematron's schema.

04 Jul 2020, Achim Berndzen

Change test so it does not rely on document order of port "secondary".

04 Aug 2019, Achim Berndzen

Initial commit