fn:concat
Returns the concatenation of the string values of the arguments.
Operator Mapping
The two-argument form of this function defines the semantics of the "||" operator.
Signature
fn:concat(
$arg1 as xs:anyAtomicType?,
$arg2 as xs:anyAtomicType?,
$... as xs:anyAtomicType?
) as xs:stringProperties
This function is deterministic, context-independent, and focus-independent.
Rules
This function accepts two or more xs:anyAtomicType arguments and casts each
one to xs:string. The function returns the xs:string that is
the concatenation of the values of its arguments after conversion. If any argument
is
the empty sequence, that argument is treated as the zero-length string.
The fn:concat function is specified to allow two or more arguments, which
are concatenated together. This is the only function specified in this document that
allows a variable number of arguments. This capability is retained for compatibility
with [XML Path Language (XPath) Version 1.0].
Notes
As mentioned in String types Unicode normalization is not automatically
applied to the result of fn:concat. If a normalized result is required,
fn:normalize-unicode can be applied to the xs:string
returned by fn:concat. The following XQuery:
let $v1 := "I plan to go to Mu"
let $v2 := "?nchen in September"
return concat($v1, $v2)where the "?" represents either the actual Unicode character COMBINING DIARESIS (Unicode codepoint U+0308) or "̈", will return:
"I plan to go to Mu?nchen in September"
where the "?" represents either the actual Unicode character COMBINING DIARESIS (Unicode codepoint U+0308) or "̈". It is worth noting that the returned value is not normalized in NFC; however, it is normalized in NFD.
However, the following XQuery:
let $v1 := "I plan to go to Mu"
let $v2 := "?nchen in September"
return normalize-unicode(concat($v1, $v2))where the "?" represents either the actual Unicode character COMBINING DIARESIS (Unicode codepoint U+0308) or "̈", will return:
"I plan to go to München in September"
This returned result is normalized in NFC.
Examples
The expression fn:concat('un', 'grateful') returns "ungrateful".
The expression fn:concat('Thy ', (), 'old ', "groans", "", ' ring',
' yet', ' in', ' my', ' ancient',' ears.') returns "Thy old groans ring yet in my ancient ears.".
The expression fn:concat('Ciao!',()) returns "Ciao!".
The expression fn:concat('Ingratitude, ', 'thou ', 'marble-hearted', ' fiend!') returns "Ingratitude, thou marble-hearted fiend!".
The expression fn:concat(01, 02, 03, 04, true()) returns "1234true".
The expression 10 || '/' || 6 returns "10/6".