Tests global-context-item is set correctly.
Test ab-xslt-094.xml is expected to pass.
It requires the following features: xslt-3.
<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>
<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>
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.
Added attribute 'queryBinding' to schematron's schema.
Added tests for p:xslt with version="3.0".