doc.Index.index.uim.xmldb
The Virtuoso XML functionality is divided into the following sections:
- Generating XML data from relational data - Most data in today's IS relational.
Virtuoso can readily access most of this via its virtual database.
The Virtuoso SQL has a native XML data type which can be constructed from relational data using a number of SQL extensions.
A mapping scheme mechanism allows presenting joins of tables as XML hierarchies.
These 'virtual documents' can be queried with XPATH which is translated to SQL to retrieve the relevant data and generate the XML rendition on demand.
- Storing XML data - A column of a table may be declared to hold XML.
A special form of full text indexing is available for efficient retrieval of content with a special XPATH SQL predicate.
While a mapping schema deals with rendering native relational data into XML as needed, this mechanism deals with retrieving native XML data in SQL.
- XQuery - Unified querying of structured and structured data - Virtuoso implements the emerging XQuery standard.
This is a powerful language providing a single point of access to XML data whether it be stored natively as XML data, as relational data mapped to XML via a mapping schema or as XML on the external network.
Whether XML data be stored or generated on the fly, Virtuoso provides a broad range of functions for processing it in SQL. These include all the SQLX functions for composing XML, an XSLT 1.2 processor for transforming documents, XPATH and XQuery and a DOM-like system.