Description
The functx:min-determine-type function returns the minimum of the values in $seq . It differs from
the built-in fn:min function only in the way it treats untyped data. The built-in fn:min function treats all untyped data as numeric and raises an error if a value cannot be cast to xs:double . This function tests whether untyped values are numeric, and if so, sorts them as numbers. If untyped values are not numeric, it sorts them like strings.
If your values are typed, or all numeric, there is no need to use this function instead of the built-in fn:min function.
Arguments and Return TypeName | Type | Description |
$seq |
xs:anyAtomicType* |
the sequence of values to test |
return value |
xs:anyAtomicType? |
XSLT Function DeclarationSee XQuery definition. | <xsl:function name="functx:min-determine-type" as="xs:anyAtomicType?"
xmlns:functx="http://www.functx.com">
<xsl:param name="seq" as="xs:anyAtomicType*"/>
<xsl:sequence select="
if (every $value in $seq satisfies ($value castable as xs:double))
then min(for $value in $seq return xs:double($value))
else min(for $value in $seq return xs:string($value))
"/>
</xsl:function>
|
Examples<xsl:variable name="in-xml" as="item()*"> | | <values>
<nums>
<num>12</num>
<num>23</num>
<num>115</num>
<num>12.5</num>
</nums>
<strings>
<str>def</str>
<str>abc</str>
</strings>
</values> |
| </xsl:variable> |
XPath Example | Results |
---|
functx:min-determine-type($in-xml//num) |
12 |
functx:min-determine-type($in-xml//str) |
abc |
functx:min-determine-type($in-xml//(num|str)) |
115 |
See AlsoHistory |
Recommended Reading:
|