Я реализовал следующую глобальную функцию xslt, но она не позволяет использовать выражения XPath.
Например: // Track_Chainings / Track_Chaining [Track_ID = $ TrackID] / Begin_Adjacent_Track_ID! = '' Вызывает исключение.
<xsl:function name="conn:getConnetion" as="xs:string">
<xsl:param name="TYPE" as="xs:string"/>
<xsl:param name="TrackID" as="xs:string"/>
<xsl:param name="SwitchID" as="xs:string"/>
<xsl:choose>
<xsl:when test="($TYPE = 'TrackBegin')">
<xsl:if test="((//Track_Chainings/Track_Chaining[Track_ID=$TrackID]/Begin_Adjacent_Track_ID !='') and (//Track_Chainings/Track_Chaining[Track_ID=$TrackID]/Begin_Adjacent_Track_ID !='0'))">
<xsl:sequence select="concat(concat((TrackID * 10000) , '#'), (concat((//Track_Chainings/Track_Chaining[Track_ID=$TrackID]/Begin_Adjacent_Track_ID * 10000), 1)))"/>
</xsl:if>
</xsl:when>
<xsl:when test="($TYPE = 'TrackEnd')">
<xsl:if test="((//Track_Chainings/Track_Chaining[Track_ID=$TrackID]/End_Adjacent_Track_ID !='') and (//Track_Chainings/Track_Chaining[Track_ID=$TrackID]/End_Adjacent_Track_ID !='0'))">
<xsl:sequence select="concat(concat(concat((TrackID * 10000) , 1) , '#'), (//Track_Chainings/Track_Chaining[Track_ID=$TrackID]/End_Adjacent_Track_ID * 10000))"/>
</xsl:if>
</xsl:when>
<!-- <xsl:otherwise></xsl:otherwise> -->
</xsl:choose>
</xsl:function>
Не могли бы вы сообщить нам, если у нашей реализации есть какие-либо проблемы.
Заранее спасибо