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

Sixml DOM: Interface Definitions


At a high-level, there are two ways to add Sixml capability to DOM: extend DOM and alter DOM. There are three ways of extending DOM to add Sixml capability, for a total of four alternative ways. Each of these alternatives is outlined below. Links to IDL files are included. The IDL files are validated using omniORB 4.1.0. Alternatives 3 and 4 are implemented.

Note: DOM interfaces are organized in three levels. Each level has a Core module and other optional modules. Sixml DOM interfaces relate only to the core modules in Levels 1 and 2, and to the Load and Save module in Level 3.

Alternative 1: Add a new level 4 to DOM. The core module in the new level extends the core module in Level 3. The Load and Save module in the new level extends the module of the same name in Level 3. This approach requires an implementation to comply with Level 3 functionality even though Sixml DOM does not involve any Level 3 functionality. (In general, conformance to DOM Level n requires conformance to Level n-1.)

- Level 4 (Core): Extends Level 3 (Core). Supports typed mark associations with any name, but unnecessarily requires implementation compliance with DOM Level 3.

- Level 4 (Load and Save): Extends Level 3 (Load and Save).

Alternative 2: Add new modules to existing DOM levels. For example, add a module Level 1 (Sixml) to DOM Level 1. The new module extends the DOM interface Node to add ability to create mark associations. There is no Sixml module for Level 3 because no features in the Level 3 Core module are extended. This approach contradicts the apparent DOM convention that no interface defined in a module at a level is extended by another module at the same level.

- Level 1 (Sixml): Adds a module to Level 1. Supports mark associations with default unqualified names because DOM Level 1 does not support namespaces.

- Level 2 (Sixml): Adds a module to Level 2. Supports mark associations with custom names, but does not support type information due to DOM 2 limitations.

- Level 3 (Load and Save Sixml): Adds a module to Level 3.

Alternative 3: Add new interfaces to existing DOM modules. For example, add the interface Sixml Node inheriting DOM interface Node, to each of the core modules. (The contents of the Sixml modules introduced in Alternative 2 are simply added to existing DOM modules.)

- Level 1 (Core + Sixml): Adds Sixml interfaces to Level 1 (Core). Supports mark associations with default unqualified names.

- Level 2 (Core + Sixml): Adds Sixml interfaces to Level 2 (Core). Supports mark associations with custom names.

- Level 3 (Core + Sixml): Adds Sixml interfaces to Level 3 (Core). Supports typed mark associations.

- Level 3 (Load and Save + Sixml): Adds Sixml interfaces to Level 3 (Load and Save).

Alternative 4: Alter existing DOM interfaces such that marks can be associated using the DOM interface Node, instead of using Sixml DOM interface Sixml Node.

- Level 1 (Core): Adds the ability to manipulate mark associations with default unqualified names.

- Level 2 (Core): Adds the ability to manipulate mark associations using namespaces.

- Level 3 (Core): No new Sixml functionality is added.

- Level 3 (Load and Save): Adds the ability to read and write mark associations and mark descriptors.


 

Last edited: July 21, 2008