Я создаю переменную карты и хочу проверить, есть ли у нее элементы.
<xsl:variable as="map(xs:string, xs:string)*" name="ancestorsMap">
<xsl:map>
<xsl:for-each select="$nodes">
<xsl:variable name="ancestor" select="(ancestor::node()[not(descendant-or-self::layer)])[1]/@xml:id"/>
<xsl:if test="exists($ancestor)">
<xsl:map-entry key="string(@xml:id)" select="string($ancestor)"/>
</xsl:if>
</xsl:for-each>
</xsl:map>
</xsl:variable>
<xsl:variable name="check">
<xsl:choose>
<xsl:when test="empty($ancestorsMap)">
<xsl:value-of select="'NaN'"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="$ancestorsMap"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
Когда она пуста, на панели переменных oXygen отображается: Тип значения: map (*) 1 Значение: map {}
Я пытался fn: empty () пока