1.1 --- a/XSLForms/XSL/Prepare.xsl Mon Jul 18 16:41:12 2005 +0000
1.2 +++ b/XSLForms/XSL/Prepare.xsl Mon Jul 18 16:42:54 2005 +0000
1.3 @@ -66,7 +66,7 @@
1.4 <axsl:for-each select="{$first-element}">
1.5 <xsl:choose>
1.6 <xsl:when test="$remaining-elements = ''">
1.7 - <xsl:call-template name="special-attributes"/>
1.8 + <xsl:call-template name="enter-attribute"/>
1.9 </xsl:when>
1.10 <xsl:otherwise>
1.11 <xsl:call-template name="enter-element">
1.12 @@ -82,13 +82,35 @@
1.13 <!-- Match special expression attributes. -->
1.14
1.15 <xsl:template match="*[not(@template:element) and (@template:attribute or @template:value or @template:expr)]">
1.16 - <xsl:call-template name="special-attributes"/>
1.17 + <xsl:call-template name="enter-attribute"/>
1.18 + </xsl:template>
1.19 +
1.20 + <xsl:template name="enter-attribute">
1.21 + <xsl:choose>
1.22 + <xsl:when test="@template:attribute">
1.23 + <axsl:choose>
1.24 + <axsl:when test="@{@template:attribute}">
1.25 + <axsl:variable name="this-name"><xsl:value-of select="@template:attribute"/></axsl:variable>
1.26 + <axsl:variable name="this-value" select="@{@template:attribute}"/>
1.27 + <xsl:call-template name="special-attributes"/>
1.28 + </axsl:when>
1.29 + <axsl:otherwise>
1.30 + <axsl:variable name="this-name"><xsl:value-of select="@template:attribute"/></axsl:variable>
1.31 + <axsl:variable name="this-value"></axsl:variable>
1.32 + <xsl:call-template name="special-attributes"/>
1.33 + </axsl:otherwise>
1.34 + </axsl:choose>
1.35 + </xsl:when>
1.36 + <xsl:otherwise>
1.37 + <xsl:call-template name="special-attributes"/>
1.38 + </xsl:otherwise>
1.39 + </xsl:choose>
1.40 </xsl:template>
1.41
1.42 <xsl:template name="special-attributes">
1.43 <xsl:choose>
1.44 <xsl:when test="@template:effect = 'replace'">
1.45 - <xsl:call-template name="special-values"/>
1.46 + <xsl:call-template name="special-value"/>
1.47 </xsl:when>
1.48 <xsl:otherwise>
1.49 <xsl:copy>
1.50 @@ -98,34 +120,12 @@
1.51 <axsl:attribute name="{@template:expr-attr}"><xsl:value-of select="@template:expr-attr"/></axsl:attribute>
1.52 </axsl:if>
1.53 </xsl:if>
1.54 - <xsl:call-template name="special-values"/>
1.55 + <xsl:call-template name="special-value"/>
1.56 </xsl:copy>
1.57 </xsl:otherwise>
1.58 </xsl:choose>
1.59 </xsl:template>
1.60
1.61 - <xsl:template name="special-values">
1.62 - <xsl:choose>
1.63 - <xsl:when test="@template:attribute">
1.64 - <axsl:choose>
1.65 - <axsl:when test="@{@template:attribute}">
1.66 - <axsl:variable name="this-name"><xsl:value-of select="@template:attribute"/></axsl:variable>
1.67 - <axsl:variable name="this-value" select="@{@template:attribute}"/>
1.68 - <xsl:call-template name="special-value"/>
1.69 - </axsl:when>
1.70 - <axsl:otherwise>
1.71 - <axsl:variable name="this-name"><xsl:value-of select="@template:attribute"/></axsl:variable>
1.72 - <axsl:variable name="this-value"></axsl:variable>
1.73 - <xsl:call-template name="special-value"/>
1.74 - </axsl:otherwise>
1.75 - </axsl:choose>
1.76 - </xsl:when>
1.77 - <xsl:otherwise>
1.78 - <xsl:call-template name="special-value"/>
1.79 - </xsl:otherwise>
1.80 - </xsl:choose>
1.81 - </xsl:template>
1.82 -
1.83 <xsl:template name="special-value">
1.84 <xsl:choose>
1.85 <xsl:when test="@template:value">