From Trees to Graphs: Evolving XML for Building Enterprise Applications

Ravi Murthy


There are many benefits of using XML as the single data model for enterprise applications. In addition to its inherent flexibility and extensibility, it reduces impedance mismatch across tiers and provides opportunity for global dependency analysis and optimization. However, XML is fundamentally a tree data model whereas real world applications truly need graphs. The XML standards provide a few primitive ways of representing relationships (links) between XML nodes, namely ID/IDREF and XLink. But the existing standards require significant enhancements to be able to express declarative constraints (metadata) about links, to configure link behavior, and to easily query/traverse across forward and reverse links. This paper details the requirements and proposes a set of enhancements to XML schema and query languages to enable building enterprise and content management applications. Further, it describes various implementation issues and optimization challenges in managing links within large XML databases. Links between XML nodes can be either intra or inter-document links, and target a fragment (using XPointer) or the entire document. New schema annotations provide declarative mechanisms to constrain the type of the link target, scope the link to a specified domain and also express acyclic link conditions. The integrity of the link wrt to the guaranteed presence of target document and link validity when the target is renamed or moved can also be configured. New query functions enable forward and reverse traversal of links within XPath, XQuery and XSLT. We discuss efficient link storage techniques in XML databases and indexes for performant bidirectional link traversal. In addition to managing links that appear in the original documents, we present mechanisms to implicitly add links into documents. Since a document is the unit of locking, versioning and access control, there are several advantages to decomposing a large XML document into smaller sub documents. Users can declaratively express the decomposition rules using XPaths and/or XML schema annotations. When the document is inserted into the system, it is implicitly shredded into multiple documents, and XInclude link elements are inserted in place of the original fragments. These inter-document links can be managed, queried and traversed as described above. Users can also recompose the original document by invoking native XInclude expansion functions.


Bibliography Navigation: Reference List; Author Index; Title Index; Keyword Index

Generated by sharef2html on 2011-04-15, 02:00:41.