Chapter 7: Xindice


Overview

One of the most important things you can do with data of any kind is store it persistently so you can retrieve it later. Most people store their XML data as files in a filesystem or as text or Character/Binary Large OBject (CLOB/BLOB) fields in relational databases. Files are great, but when you get a lot of files, it can become unwieldy to manage them or find the information you’re looking for. Relational databases aren’t really a good fit for XML documents, which are hierarchically structured. Using a text or CLOB field in a relational database lets you store the data and in some cases perform full-text indexing, but it doesn’t allow you to query the structure of the XML document that has been stored.

What we need is a database that understands XML and can use that understanding to make it easier to store and retrieve XML data. The XML:DB initiative is working to foster the development of databases that understand XML. The initiative has four goals:

  • Development of technology specifications for managing the data in XML databases.

  • Contribution of reference implementations of those specifications under an opensource license.

  • Formation of a community where XML database vendors and users can ask questions and exchange information to learn more about XML database technology and applications.

  • Evangelism of XML database products and technologies to raise the visibility of XML databases in the marketplace.

The XML:DB initiative has broken up the space of XML databases like this (taken from http://xmldb.org/faqs.html):

Note

The XML:DB initiative has defined three different types of XML database.

Native XML Database (NXD)

a) Defines a (logical) model for an XML document -- as opposed to the data in that document -- and stores and retrieves documents according to that model. At a minimum, the model must include elements, attributes, PCDATA, and document order. Examples of such models are the XPath data model, the XML Infoset, and the models implied by the DOM and the events in SAX 1.0.

b) Has an XML document as its fundamental unit of (logical) storage, just as a relational database has a row in a table as its fundamental unit of (logical) storage.

c) Is not required to have any particular underlying physical storage model. For example, it can be built on a relational, hierarchical, or object-oriented database, or use a proprietary storage format such as indexed, compressed files.

XML Enabled Database (XEDB)--A database that has an added XML mapping layer provided either by the database vendor or a third party. This mapping layer manages the storage and retrieval of XML data. Data that is mapped into the database is mapped into application specific formats and the original XML meta-data and structure may be lost. Data retrieved as XML is NOT guaranteed to have originated in XML form. Data manipulation may occur via either XML specific technologies(e.g. XPath, XSL-T, DOM or SAX) or other database technologies(e.g. SQL). The fundamental unit of storage in an XEDB is implementation dependent. The XML solutions from Oracle and Microsoft as well as many third party tools fall into this category.

Hybrid XML Database (HXD)--A database that can be treated as either a Native XML Database or as an XML Enabled Database depending on the requirements of the application. An example of this would be Ozone.

The Xindice project is a Native XML Database (NXD) as defined by the XML:DB initiative. It originated when the dbXML group decided to donate its XML:DB implementation, dbXML Core, to the Apache Software Foundation in December 2001.




Professional XML Development with Apache Tools. Xerces, Xalan, FOP, Cocoon, Axis, Xindice
Professional XML Development with Apache Tools: Xerces, Xalan, FOP, Cocoon, Axis, Xindice (Wrox Professional Guides)
ISBN: 0764543555
EAN: 2147483647
Year: 2003
Pages: 95

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net