XML Application Objects (logo)
increasing the life expectancy of web applications developers
SourceForge.net Logo
This page was last updated Thursday 25 September 2003


This UML class diagram provides a birds-eye view of how the XAO library is modelled. Member attributes and methods are not shown (maintained) in the diagram. We suggest using this diagram in concert with the API reference where member attributes and methods are fully detailed.

Introducing the XAO classes

If you haven;t alread read the nutshell concept summary on the front page, then please do so now.

Which classes you need to know about

The good news is that you really only need to know about the 2 classes listed in bold type. Most of the other classes are simply there to support these. Most of the classes under construction are for advanced applications with special needs.

implemented and ready for use under construction
All the core classes to the XAO framework are here. They are enough for most applications. These should come online fairly quickly since all the groundwork is done (XaoRoot, DomDoc, Exceptions).
  • XaoRoot
  • DomDoc
  • AppDoc
  • Exceptions
  • Transformer
  • DbToXml
  • xmlDb
  • Xindice
  • DomXsl
  • CacheMan
  • RpcClient
  • RpcController
  • RpcServant
  • InputValidator
  • InputController
  • InputField

UML class diagram (names only)

Move your mouse pointer over a class to see a brief description tool-tip (IE only). Click on it to see the methods/attributes documentation (opens in new window).

XAO class diagram

validate input based on rules defined by InputField and InputControl Use this to access RPCs Use this to build a listener for RPC requests inherit this to make classes which carry out RPC requests object represents a single input item and all of it's rules group other InputFields or InputControls. Equivilent of GUI controls root class at the top of every ancestor tree This is the base class for all content objects grafts errors into DomDoc objects including function call trace base class for pure XML databases Dom representation of an XSLT stylesheet database results to XML conversion Apache Xindice getter and content object framework content object used as the master document Utility for cache management utility for XSLT processing

Central structure

XaoRoot forms the basis of all classes in the XAO library and is pretty thin. The class that gives XAO it's real personality is DomDoc, because it is the base content class that represents an XML packet. The AppDoc class which represents the entire content document for any given script is a DomDoc class. An instantiation of an AppDoc based class is an XML application object. The DbToXML class is a DomDoc class because it contains business payload data. DbToXml is really just a utlity class and sites along side other user-defined classes which represent business data (destined to be aggregated). Any user-defined class that represents content should inherit DomDoc or at least have it somewhere in it's ancestory. Any class that does NOT inherit from the DomDoc class in XAO is not considdered to be a content-related class. Content means business payload, not system data.

Relationships to DomDoc children

In the diagram, the linkages which have "child" written on the DomDoc end of the don't point directly to DomDoc as suggested in the diagram. "child" means that it is pointing to a derivative (child) of the class. So, for instance, DbToXml qualifies in this relationsip but it is not shown on the diagram.

Exceptional condition messaging

Notice that the Exceptions class is only bound to DomDoc, meaning that only classes inheriting from DomDoc can use them. This is because the messaging that the Exceptions class is concerned with is neccesarily embedded in the content payload encapsulated as XML (in the separate XAO namespace).

Different frameworks

Classes listed with the framework sterotype represent end-user entry points into an application that implements the XAO as a framework. RpcController and AppDoc based classes service remote applications based clients and browser based clients respectively.

User-Defined classes
(represented using the "speculative" sterotype)

The content classes based on, and including, DomDoc (such as DbToXml) are designed to be inherited by the end-user. In any medium to large-scale application, the developer is not expected to instatiate these classes directly. Doing so would reduce the scalability and flexibility that OO programming facilitates.


This website is copytight Terence Kearns 2003
The XML Application Objects library is copyright Terence Kearns 2003 and made freely available to the public via the Lesser General Public Licence (LGPL).
The hosting of this project is generously provided by sourceforge.net