Predicados aninhados XPath / XSLT: como obter o contexto do predicado externo?

Parece que esta questão não foi discutida anteriormente sobre stackoverflow, salve paraTrabalhando com predicados XPath aninhados ... Refinado onde a solução que não envolve predicados aninhados foi oferecid

Então, tentei escrever uma amostra simplificada do que gostaria de obter:

Entrada

<root>
    <shortOfSupply>
        <food animal="doggie"/>
        <food animal="horse"/>
    </shortOfSupply>
    <animalsDictionary>
        <cage name="A" animal="kittie"/>
        <cage name="B" animal="dog"/>
        <cage name="C" animal="cow"/>
        <cage name="D" animal="zebra"/>
    </animals>
</root>

Saída

<root>
    <hungryAnimals>
        <cage name="B"/>
        <cage name="D"/>
    </hungryAnimals>
</root>

ou, alternativamente, se não houver interseções,

<root>
    <everythingIsFine/>
</root>

E eu quero obtê-lo usando um predicados aninhados:

<xsl:template match="cage">
    <cage>
        <xsl:attribute name="name">
            <xsl:value-of select="@name"/>
        </xsl:attribute>
    </cage>
</xsl:template>

<xsl:template match="/root/animalsDictionary">
    <xsl:choose>
        <!--                                                             in <food>     in <cage>       -->
        <xsl:when test="cage[/root/shortOfSupply/food[ext:isEqualAnimals(./@animal, ?????/@animal)]]">
            <hungryAnimals>
                <xsl:apply-templates select="cage[/root/shortOfSupply/food[ext:isEqualAnimals(@animal, ?????/@animal)]]"/>
            </hungryAnimals>
        </xsl:when>
        <xsl:otherwise>
            <everythingIsFine/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>

Então, o que devo escrever no lugar disso??????

Sei que eu poderia reescrever a folha de estilo inteira usando mais um modelo e uso extensivo de variáveis / parâmetros, mas torna essa folha de estilo significativamente mais complexa, sem falar na folha de estilo real que tenho para um problema rea

Está escrito na referência XPath que o ponto. sign significa o nó de contexto atual, mas não informa se existe alguma possibilidade de obter o nó de contexto antes disso; e eu simplesmente não acredito que o XPath está faltando esse recurso óbvi

questionAnswers(4)

yourAnswerToTheQuestion