Virtuoso integrates classic free text retrieval and XML
semi-structured query features to offer a smart, scalable XML
repository. When a column is declared as indexed XML with the
CREATE TEXT XML INDEX statement the text is checked for
well-formedness at time of storage. The specific XML structure of
the text is also considered when making the free text index
entries. This XML-aware free text index is used for processing
XPath queries in the xcontains SQL predicate. This
predicate is only applicable to columns for which there is an XML
free text index.
Arbitrary free text criteria can appear inside the XPath
expression of xcontains .
These are introduced by the XPath extension function text-contains() , which may only be used within
xcontains as it relies on
the underlying free text index.
xpath_contains() does not require
the existence of a free text index and can thus apply to any
well-formed XML content.