diff --git a/specifications/xpath-functions-40/src/function-catalog.xml b/specifications/xpath-functions-40/src/function-catalog.xml index a7fa79cf4..178e0c5f7 100644 --- a/specifications/xpath-functions-40/src/function-catalog.xml +++ b/specifications/xpath-functions-40/src/function-catalog.xml @@ -699,6 +699,19 @@ $node ! (
In general, an item matches more than one type, and there are cases where there is no single matching type that is more specific than all the others. This is especially true with functions, maps, and arrays. This function therefore selects one of the types that matches the item, which is not necessarily the most specific type.
+ +This function should not be used as a substitute for an instance of
test. The precise type annotation
+ of the result of an expression is not always predictable, because processors are free to deliver a more specific type
+ than is mandated by the specification. For example, if $n
is of type xs:positiveInteger
,
+ then the result of abs($n)
is guaranteed to be an instance of xs:integer
, but an
+ implementation might reasonably return the supplied value unchanged: that is, a value whose actual type
+ annotation is xs:positiveInteger
. Similarly the type annotation of the value returned by
+ position()
might be xs:long
rather than xs:integer
.
Implementations xs:string
.
abs($n)
is guaranteed to be an instance of xs:integer
, but an
implementation might reasonably return the supplied value unchanged: that is, a value whose actual type
annotation is xs:positiveInteger
. Similarly the type annotation of the value returned by
- position()
might have a type annotation of xs:long
rather than xs:integer
.
+ position()
might be xs:long
rather than xs:integer
.
Implementations