Name

[2.0] max()

Returns the largest value in a given sequence.

Syntax

xs:anyAtomicType max(xs:anyAtomicType*)
xs:anyAtomicType max(xs:anyAtomicType*, $collation as xs:string)

Input

A sequence of values.

Output

The maximum value in the given sequence. The max() function works with the following types of values: numeric values (xs:integer, xs:double, xs:decimal, and xs:float), xs:string, xs:boolean, xs:date, xs:dateTime, xs:time, xs:yearMonthDuration, and xs:dayTimeDuration (but not xs:duration).

Given a sequence of numeric values, the XSLT processor returns the largest number, converting datatypes as necessary. Given a sequence of durations, the XSLT processor returns the longest of those durations. Given a sequence of strings, the XSLT processor returns the string that appears last in sorted order.

The max() function assumes you’ll send it a sequence containing sensible data; if not, the XSLT processor throws an error. Asking for the maximum value in the sequence (xs:dayTimeDuration('P3DT8H17M'), 38, 'football') returns an error, as you’d expect.

Details about how the max() function works are as follows:

  • To find the longest of a sequence of durations, the values must all be xs:dayTimeDurations, or they must all be xs:yearMonthDurations. You can’t mix the two types of durations; if you do, the XSLT processor throws an error.

  • If any of the items in the sequence are of type xs:untypedAtomic, the XSLT processor attempts to cast it to xs:double. If the item can’t be converted to xs:double, the ...

Get XSLT, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.