max
O maior valor de uma sequência
Descrição
A função fn:max acha o maior valor de uma sequência. A sequência $arg só pode ter valores de um tipo, ou de tipos derivados dele. A exceção é quando todos são numéricos (de tipos numéricos diferentes); aí valem as regras de promoção numérica. O tipo precisa ser ordenável: deve ser possível comparar os valores com os operadores < e >.
A função fn:max supõe que valores sem tipo são numéricos, a menos que sejam convertidos explicitamente em xs:string. Para tratar dados sem tipo como strings, use a função fn:string, como no último exemplo abaixo.
Parâmetros |
Descrição |
|---|---|
arg:integer() |
a sequência de valores |
collation:string() |
a collation usada para comparar strings |
Exemplos
Os exemplos abaixo usam este documento de entrada:
<xsl:variable name="ordDoc" select="doc('http://www.functx.com/input/order.xml')"/>
<!-- content of order.xml -->
<order num="00299432" date="2006-09-15" cust="0221A">
<item dept="WMN" num="557" quantity="1" color="beige"/>
<item dept="ACC" num="563" quantity="1"/>
<item dept="ACC" num="443" quantity="2"/>
<item dept="MEN" num="784" quantity="1" color="blue/white"/>
<item dept="MEN" num="784" quantity="1" color="blue/red"/>
<item dept="WMN" num="557" quantity="1" color="sage"/>
</order>
XPath |
Resultado |
|---|---|
max( (2, 1, 5, 4, 3) ) |
5 |
max( ('a', 'b', 'c') ) |
c |
max((xs:date('1999-04-15'), current-date()) ) |
The current date |
max( ('a', 'b', 1) ) |
Error FORG0006 |
max ( 2 ) |
2 |
max($ordDoc//item/@dept) |
Error, if dept is untyped |
max($ordDoc//item/string(@dept)) |
WMN |