A communiqué from Steve Muench reports on two XML-related announcements from Oracle. (1) In March 2002, Oracle released a Java XQuery prototype which includes a Java API to XQuery (JXQI) and a command-line interface. This technical preview implementation of the W3C XQuery language with Oracle specific extensions features support "focusing on the 'R' (Relational Data) and the 'XMP' (Experiences and Exemplars) XQuery use cases; it also features an experimental JDBC-style Java API for XQuery as well as a sql() function for using XQuery over SQL query results." Oracle's goal ultimately is to "provide both a SQL-flavored and an XQuery-based query syntax for XML content in Oracle leveraging the same underlying database engine via appropriate query rewriting." (2) Oracle has also announced Oracle9i Release 2, offering significant new "native database support for XML. The new Oracle9i Database Release 2 provides a high-performance, native XML storage and retrieval technology available within Oracle9i Release 2; it fully absorbs the W3C XML data model into the Oracle9i Database, and provides new standard access methods for navigating and querying XML." Enhanced support includes XMLType and related native XML data-management features as well as XML Repository and XML-based content-management features.
From "Oracle XML DB - An Introduction": "Oracle XML DB is a high-performance, native XML storage and retrieval technology available with Oracle9i Database Release 2. It fully absorbs the W3C XML data model into the Oracle9i Database, and provides new standard access methods for navigating and querying XML. With Oracle XML DB, you get all the advantages of relational database technology plus the advantages of XML technology. Oracle XML DB is a set of features in the Oracle9i database server that encompass both SQL and XML in a highly interoperable manner. It is not a separate server. Oracle XML DB adds a native XML repository to the database. The XML data-model encompasses both unstructured content and structured data. Oracle XML DB provides new capabilities for both content-oriented and data-oriented access. For developers who see XML as documents (news stories, articles, etc.), Oracle XML DB provides an XML repository accessible from standard protocols and queryable from SQL. For others, the structured-data aspect of XML (invoices, addresses, etc.) is more important. For these users, Oracle XML DB provides a native XMLType, support for XML Schema, XPath, XSL-T, DOM, etc. The data-oriented access is typically more query-intensive..."
Oracle9i Release 2 new XML features include:
- Single database engine supporting all existing datatypes (relational, SQL99 objects, data warehousing, geospatial, time-series, multimedia, etc.) integrated with a new native XMLType...all sharing a common SQL query language (extended for XML), common maintenance, transactions, backup/recovery, etc.
- Support for forthcoming ISO SQLX standard extensions to SQL for constructing XML in SQL including the operators XMLElement(), XMLAttributes(), XMLForest(), XMLAgg(), and XMLConcat()
- Full W3C XML Schema 1.0, XPath 1.0, XSLT 1.0, and DOM Core support for native XMLType datatype implemented deep inside the engine and exposed to SQL, PL/SQL and Java API's. Users can augment built-in processing of XML documents with stored procedures, functions, and triggers as for any other types and tables.
- Automatic Object/Relational Storage for XML documents based on XML Schema, with optional fine-tuning of the mapping via Schema Annotations (already supported in XML Spy 4.3 tool). Includes optional support for full DOM fidelity and mixed content storage.
- SQL extensions for XPath-based extract(), extractValue(), existsNode(), and updateXML() operators for manipulating documents, including the ability to rewrite a subset of XPath expressions to use underlying object/relational indices and full-text indices for maximum performance.
On JXQI: "JXQI is a Java API for XQuery proposed by Oracle. The API can be used to execute and fetch results from XQuery queries. This is similar to JDBC and SQL. JXQI has a very similar API like JDBC. You can compile XQuery statements and execute them, binding different values each time. Similar to the JDBC result set, the JXQI provides a XQueryResultSet class which can be used to fetch the results of executing the XQuery..."
Principal references:
- Download the Oracle XQuery Prototype. Referenced from Oracle XML DB Sample Code.
- Oracle XQuery Prototype README file
- JXQI: A Java API to the Oracle XQuery Prototype
- Using the Oracle XQuery prototype Command-line Utility
- W3C XQuery 1.0: An XML Query Language. W3C Working Draft 30-April-2002.
- XML Query Use Cases
- "Querying XML in a Standard Way." Article from Oracle.
- Oracle XML DB - An Introduction. With figures.
- Oracle XML DB technical overview page.
- "Oracle Bets on XML for 9i Software." By Wylie Wong. In ZDNet News (May 15, 2002).
- "XML and Databases" - Main reference page.
- "XML and Query Languages" - Main reference page.