</pre>
It yields {{Code|true}}, because the search string is ''tokenized'' before it is compared with the tokenized input string. In the tokenization process, several normalizations take place. Many of those steps can hardly be simulated with plain XQuery: as an example, upper/lower case and diacritics (umlauts, accents, etc.) are removed and an optional, language-dependent stemming algorithm is applied. Beside that, special characters such as whitespaces and punctuation marks will be ignored. Thus, this query also yields true: <pre class="brush:xquery">"Well... Done!" contains text "well, done"</pre> The {{Code|occurs}} keyword comes into play when more than one occurrence of a token is to be found: <pre class="brush:xquery">"one and two and three" contains text "and" occurs at least 2 times</pre> Varius range modifiers are available: {{Code|exactly}}, {{Code|at least}}, {{Code|at most}}, and {{Code|from ... to ...}}.
==Combining Results==
XQFT expressions can also be applied on XML documentsIn the given example, curly braces are used to combine multiple keywords:
<pre class="brush:xquery">
</pre>
In the given example, curly braces are used to combine multiple keywords. The query will output the names of all countries with a religion element containing {{Code|sunni}} or {{Code|shia}}. The {{Code|any}} keyword is optional; it can be replaced with:
* {{Code|all}}: all strings need to be found
return $text contains text "New" not in "New York"
</pre>
The {{Code|occurs}} keyword comes into play when more than one occurrence of a token is to be found:
<pre class="brush:xquery">
"one and two and three" contains text "and" occurs at least 2 times
</pre>
Varius range modifiers are available: {{Code|exactly}}, {{Code|at least}}, {{Code|at most}}, and {{Code|from ... to ...}}.
==Positional Filters==