<xsl:template name="process-index-term">
<xsl:param name="term"/>
<xsl:param name="xr"/>
<xsl:choose>
<xsl:when test="starts-with($term,'XE') or starts-with($term,' XE')">
<xsl:variable name="quoted-text" select="concat('[^',$dblq,']+',$dblq,'([^',$dblq,']+)',$dblq,'?.*')"/>
<xsl:variable name="clean-term" select="fn:replace($term,$quoted-text,'$1')"/>
<xsl:variable name="span" select="fn:replace(substring-after($term,$usr),$quoted-text,'$1')"/>
<xsl:variable name="see">
<xsl:value-of select="fn:replace(substring-after($term,$ust),$quoted-text,'$1')"/>
</xsl:variable>
<index indexName="XE">
<xsl:if test="normalize-space($span)">
<xsl:attribute name="spanTo">
<xsl:text>#</xsl:text>
<xsl:value-of select="normalize-space($span)"/>
</xsl:attribute>
</xsl:if>
<xsl:call-template name="process-index-term">
<xsl:with-param name="term" select="normalize-space($clean-term)"/>
<xsl:with-param name="xr" select="normalize-space($see)"/>
</xsl:call-template>
</index>
</xsl:when>
<xsl:when test="contains($term,':')">
<xsl:call-template name="process-index-term">
<xsl:with-param name="term" select="substring-before($term,':')"/>
</xsl:call-template>
<index>
<xsl:call-template name="process-index-term">
<xsl:with-param name="term" select="substring-after($term,':')"/>
<xsl:with-param name="xr" select="normalize-space($xr)"/>
</xsl:call-template>
</index>
</xsl:when>
<xsl:when test="normalize-space($term)">
<term>
<xsl:value-of select="normalize-space($term)"/>
<xsl:if test="normalize-space($xr)">
<ref type="xr">
<xsl:value-of select="normalize-space($xr)"/>
</ref>
</xsl:if>
</term>
</xsl:when>
<xsl:otherwise>
<xsl:message>[4.
<xsl:value-of select="$term"/>]</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template> |