length-spec — Return a fully qualified length specification
The length-spec
template returns the
qualified length from a dimension. If an unqualified length is given,
the default.units
will be added to it.
<xsl:template name="length-spec"> <xsl:param name="length" select="'0pt'"></xsl:param> <xsl:param name="default.units" select="'px'"></xsl:param> <xsl:variable name="magnitude"> <xsl:call-template name="length-magnitude"> <xsl:with-param name="length" select="$length"></xsl:with-param> </xsl:call-template> </xsl:variable> <xsl:variable name="units"> <xsl:value-of select="substring($length, string-length($magnitude)+1)"></xsl:value-of> </xsl:variable> <xsl:value-of select="$magnitude"></xsl:value-of> <xsl:choose> <xsl:when test="$units='cm' or $units='mm' or $units='in' or $units='pt' or $units='pc' or $units='px' or $units='em'"> <xsl:value-of select="$units"></xsl:value-of> </xsl:when> <xsl:when test="$units = ''"> <xsl:value-of select="$default.units"></xsl:value-of> </xsl:when> <xsl:otherwise> <xsl:message> <xsl:text>Unrecognized unit of measure: </xsl:text> <xsl:value-of select="$units"></xsl:value-of> <xsl:text>.</xsl:text> </xsl:message> </xsl:otherwise> </xsl:choose> </xsl:template>