Oracle plans XML support in 8i
November 9, 1998
Built-in database support will integrate with DOM on client side
This week Oracle will make public its plans for XML support in Oracle 8i, a new version of its flagship database that is optimized for the Internet. Steve Muench, Oracle's key XML technology evangelist, furnished us with details, many of which can be found in a new XML portion of Oracle's Web site expected to go live this week.
XML functions in 8i
Oracle may not be the first database vendor to embrace XML, but its Oracle 8i XML implementation will be an eye-opener for both customers and competitors. The built-in XML support is the most extensive of any leading relational database to date, and it is designed to dovetail with XML work at the W3C, a move that pressures Oracle's competitors to move in a similar direction. The XML support comprises three facilities:
- Oracle's own XML parser. Written in Java, it programmatically processes XML documents or fragments coming into or out of the database.
- XML support in Oracle 8i's database-backed file system. The "file system" of the database can automate parsing and rendering of data between XML and the database.
- Tag-aware searching by the ConText full-text engine.
Oracle's fully conformant XML parser, written in Java, sits on top of the Java Virtual Machine built into 8i. The parser always checks to see if XML documents or fragments are well formed; optionally it can be made to validate against a DTD as well.
The parser connects to two APIs: the Document Object Model (DOM) specified by the W3C and the Simple API for XML (SAX), which was built co-operatively by the XML developer community using the xml-dev mailing list. These building blocks will make it much easier for developers to write server-side Java applications that interact with data in a browser, using XML as a means to interchange and validate the data.
Up next, according to Oracle, is a PL/SQL interface for the parser.
Special treatment of XML files and metadata
The Oracle Internet File System (iFS) is one of the most exciting aspects of Oracle 8i, giving end users a "file and folder" view of the database. This means that the database not only can store files of any data type (something it does now as Binary Large Objects) but users will be able to drag and drop objects into the database as easily as dragging them into folders on their desktops.
Both user-defined and built-it metadata about the files may be entered as conventional fielded data, or may be fed to the database in XML.
Even more interesting, files that are XML documents get built-in support for defining, parsing, and reassembling XML documents from XML components. Using Oracle's DTD-like iFS Document Type Definition, the administrator tells the database how to load documents of the new file type. According to Muench, "you should be able to map an element (and its subelements) as a fragment into a Character LOB." The database then has built-in support for parsing these documents, breaking them into components and re-assembling them for export. (Oracle speaks of database support for "rendering" XML-based file types, but what is meant is reassembling the document's components, not necessarily displaying them on the screen.)
Oracle's XML parser validates XML content when a file is saved, posted, or received by email into 8i's Internet File System.
On the search side, Oracle's ConText engine, part of the Oracle 8i's InterMedia content management facilities, now allows searches to be restricted to certain sections of a document, or even a fragment, based on the XML tags. This yields better precision, of course, and, coupled with ConText's integration with SQL queries, makes possible very precise queries with much less code (see example).
The tag-aware searching may be implemented regardless of whether XML documents are stored as single files are chunked into pieces.
Muench furnished several illustrative examples of how he expects developers to make use of XML with 8i. They illustrate just how broad the potential will be when this comes out in 1999.
The first example is book collectors. A large book collector could register an XML-based book catalog file type in its 8i database, and then request each bookstore supply its book data in that format. Because the book catalog is a simple text file, some stores could simply E-mail their information. Those that happened to have an 8i datbase of their own could be queried directly by the collector's 8i database.
Another example is the "what's related" button in Communicator 4.5. Clicking the button makes a request to Netscape's site to find related URLs. The server returns a set of related links (tagged as RDF), which the browser parses and displays.
As Muench pointed out, in this scenario, any client capable of sending an HTTP request and parsing XML output from the server can take advantage of XML-based Web services. And any Web server capable of responding to an HTTP request by returning appropriately formatted XML output can become an alternative to the same service. An Oracle white paper explains:
For example, in the future Netscape could offer other vendors a chance to provide alternative 'What's Related' services by simply allowing the end-user to select his favorite What's Related server in his browser preferences. In its implementation, each server might offer a different approach to deciding what's "related", but all would agree on the XML format of the suggestions they returned.
Oracle has designed its 8i XML support to make it easier and more cost-effective for developers to create such database-driven Internet information services.
Oracle is also exploring the possibilities of dynamic formatting based on XML's companion, the Extensible style language (XSL). The idea will be to dynamically generate XSL style sheets that transform XML to HTML on a per-user basis, taking the personalization offered by the CNN Custom News site (developed jointly with CNN) one step further.
Other potential applications include media asset management, e-commerce and integration between Web and legacy applications, all using a combination of XML-based dataand metadata.
The initial developer kits for the Oracle 8i XML Support are expected to be released in the "December-January" time frame, according to Muench, along with the first commercial release of 8i. The production release of the XML Support will follow some months later. The plan is to release 8i on multiple platforms -- certainly NT and several flavors of Unix -- at the get-go.
Looking farther ahead, Muench said that Oracle is considering a mapping of XML to the hierarchical object views of Oracle 8 for future releases. Oracle is already involved with W3C XML Schema efforts and will have a vested interest in shaping any forthcoming standard for XML query languages, according to Muench.
The XML support in Oracle 8i gives the database developer a set of tools for exchanging and processing data in tag-delimited form instead of as comma- or tab-delimited data streams. The tools will make it much easier to build server-to-server applications (such as syndication and e-commerce) that will play an increasingly prominent role as the Web matures as a communication medium.
For those with XML-encoded documents, the support for XML document shredding and assembly marks the first time a relational database vendor has introduced a capability that many document-management vendors (Xyvision, Texcel, STEP and so forth) previously had to write on their own. (Two object-database vendors, Poet and Object Design, offer such functionality.) By itself, this facility does not make 8i an XML-enabled editorial system. But for enterprising integrators it does make 8i attractive as a platform for XML-based publishing systems.
The original intent of the XML committee was to bring generic markup to a broader audience, especially to those involved with the Web. Netscape and Microsoft have been on board on the client side for some time, but Oracle's endorsement is equally significant: it will provide server-side XML tools to a huge base of mainstream database and Web application developers.