XML object overview
The purpose of this document is to define the functional requirements for the XML object. The XML object is an extension of the Baan VM allowing a 3GL/4GL application to exchange structured data using the XML format.
The XML object functionality is integrated into the Baan VM. It is accessible by 3GL/4GL programs using a set of Baan 3GL functions. The XML object is applied by CMF for communication between a messaging service and a 4GL application. The XML object is also applied by B3 for constructing and exploring communication objects. The XML object functionality is not restricted to CMF and B3 but may be used by other applications that want to exchange structured data using the XML format.
The architecture of the XML object functionality is shown the following picture:
In this figure, the following components are shown:
- XML Object API. A set of 3GL functions available to a 3GL/4GL application to access an XML Object.
- XML Object. Baan VM in-memory structure closely representing the structure of an XML document.
- XML Parser. The XML object component which function is to convert an XML document into an XML object.
- XML generator. The XML object component which function is to convert an XML object into an XML document.
The direct users of the XML object are application programmers using the XML Object API. Users of CMF and B3 use the XML object implicitly.
A possible future extension is the option of using a validating parser.
The XML parser implementation used as a basis for the XML object has been optimized for performance.
Software system attributes
The approximate size of this component is about 7K lines of C code.
The XML parser is based on James's Clark free minimal XML parser written in C: "expat". See [EXPAT] for source and description.
Naming convention: all XML object functions start with the prefix: "xml".
The following implementation decisions are made:
- The XML functions is built as a library in /logic/lib/xml.
- Conversion from TSS to UTF-8 and vice-versa are built-in.
- Source code conforms to ANSI-C.