AB-xslt-094

Tests global-context-item is set correctly.

Test ab-xslt-094.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">
      <p:with-option name="global-context-item" select="()"/>
      <p:with-input>
         <doc att="present"/>
      </p:with-input>
      <p:with-input port="stylesheet">
         <xsl:stylesheet xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
            <xsl:variable name="gci" as="xs:string?">
               <xsl:try>
                  <xsl:sequence select="./doc/@att"/>
                  <xsl:catch>
                     <xsl:value-of select="'absent'"/>
                  </xsl:catch>
               </xsl:try>
            </xsl:variable>
            <xsl:template match="/">
               <result>
                  <xsl:value-of select="$gci"/>
               </result>
            </xsl:template>
         </xsl:stylesheet>
      </p:with-input>
   </p:xslt>
</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="result">The document root is not 'result'.</s:assert>
         <s:assert test="result/text()='present'">The text in result is not 'present'.</s:assert>
      </s:rule>
   </s:pattern>
</s:schema>

Revision history

05 Jan 2025, Norm Tovey-Walsh

Change test to reflect changes adopted in 3.1. It’s no longer possible to distinguish between an absent global context item and explicitly setting it to the empty sequence.

10 Jun 2021, Achim Berndzen

Added attribute 'queryBinding' to schematron's schema.

11 Jun 2020, Achim Berndzen

Added tests for p:xslt with version="3.0".