[Sixml]  [Schema]  [DOM]  [Serialization]  [Query]  [Downloads]

Sixml DOM: Implementation


Sixml DOM is implemented in C# using two strategies: extend DOM according to interface Alternative 3, and alter DOM according to interface Alternative 4. The implementations are based on the DOM implementation in the .NET Framework and conform to DOM Level 2 (Core). The implementations include a bi-level navigator which can be used with the traditional .NET XPath evaluator and XSLT processor to execute bi-level queries.

Extending DOM: The implementations in this strategy implement Sixml DOM using inheritance. Both DOM and Sixml DOM are simultaneously available, in the packages System.Xml and Sixml.DOM, respectively. Nodes can be created using the document classes XmlDocument and SixmlDocument, but marks can be associated only with a node created from SixmlDocument. Sixml nodes can be accessed using XML interfaces, but mark associations are accessible only with Sixml interfaces.

Altering DOM: This implementation alters a DOM implementation to add Sixml capability. For example, the property markAssociations and methods such as appendMarkAssociation are added directly to the class XmlNode. In this approach, all XML documents are Sixml documents.

Implementations: There are two implementations of Sixml DOM using the extension strategy, and one implementation using the alteration strategy. The first implementation in the extension strategy is based on Microsoft’s distribution of .NET. The other two implementations are based on Mono’s distribution (Version 1.2.5.1) of .NET. These implementations are called Microsoft Extension (MSX), Mono Extension (MNX), and Mono Revision (MNR), respectively. The base DOM implementation for MSX is called Microsoft Base (MS), and the base of MNX and MNR is called Mono Base (MN). The source code for MN is available, but the source code for MS is not. The same source code is used for both MSX and MNX, and much of this source code is adapted in MNR. The source code for MN is extracted from the source code for Mono's  .NET distribution.

Download the implementations.


 

Last edited: December 10, 2007