Virtual XML - overview
Virtual XML is the ability to view and process any data - whether XML or non-XML - as though it is XML, and in particular allow use of XML processing languages, such as XPath and XQuery, on the data. In the Virtual XML project we couple this with special access functions that make it possible to write scripts that "mix and match" XML and non-XML data, and advanced analysis and adaptation technology to ensure that the Virtual XML processing is efficient even on large data collections.
More and more structured data is converted into XML documents, either for transmission and processing that follow various standards like the Web services standards, or for combination with semi-structured data such as HTML documents. Sometimes the original structured data is replaced with the converted data, sometimes it is converted "on the fly." Both approaches pose problems: If the original data is converted, then legacy applications depending on the old format must be rewritten. Converting data on the fly, on the other hand, imposes a significant performance penalty because the standard XML format requires significant overhead for generating or parsing XML character sequences.
Virtual XML solves these problems by
- keeping everything in the native format most natural for the data, and
- providing thin "on-demand" adapters for each format in a generic abstract XML interface corresponding to the XML Infoset as well as the forthcoming XPath and XQuery Data Model.
This solution is combined with implementations of the XPath and XQuery XML processing languages that allow scripts to access, process, and combine the data from the diverse data sources in a uniform manner.
As a technology, Virtual XML has
graduated in that it has been and is being incorporated into our products.
Virtual XML Garden prototype is no longer being maintained.
Use as namespace
We also use the address of this page (http://www.research.ibm.com/virtualxml) as the namespace URI for experimental extensions that add Virtual XML capabilities to XML processing.