То, как я подхожу к этому вопросу, аналогично тому, как это сделал @Kirill Polishchuk (+1 btw), и это означает переопределение преобразования идентификаторов только для узла, который необходимо изменить.
Однако в вашемНа вопрос вы указали: « Я бы хотел использовать только шаблон идентификации. ».Если это действительно так и вам нужен только один шаблон, вы можете сделать это следующим образом:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:choose>
<xsl:when test="current()[name()='RequestQueue'][ancestor::SORRegion[@name = 'default']]">
<xsl:copy>
<xsl:text>DEFAULT.REQUEST</xsl:text>
</xsl:copy>
</xsl:when>
<xsl:otherwise>
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Мне было бы интересно узнать, почему вы хотите использовать только шаблон преобразования идентификаторов.Если вам в конечном итоге потребуется изменить больше, чем просто RequestQueue
, это будет ужасно быстро.