| SGML Extended Facilities and HyTime Two | Table of contents | Indexes | Style Concepts | |||
An Implementation design of XLL as a subset of HyTime |
|
Masatomo Goto |
| Researcher |
| Fujitsu Laboratories Ltd. Information Service Architecture Labs. 64 Nishiwaki Ohkubocho Akashi Hyogo Japan 674 8555 Phone: +81 78 934 8249 Fax: +81 78 934 3312 Email: gotou@flab.fujitsu.co.jp Web: www.fujitsu.co.jp |
Biographical notice: |
Masatomo Goto |
ABSTRACT: |
HyTime ![]() XLL ![]() |
To provide a useful document management system having a facility to process link representations, we have already developed a document browser called HyBrick and intended to append the facility to process the link representat ions to this HyBrick. We selected XLL as the link representation. We consider that in the future synchronization of objects and representation of a space will also become necessary and that the XLL specification is nearly equal to the linkin g part of HyTime specification. So the new XLL engine is designed in line with the HyTime standard to be easily extended to HyTime. This paper gives an implementation design of that XLL engine, and also describes one application design using this engine. |
1. Introduction |
|
This paper describes an implementation design of an XLL engine, which is based on HyTime, and also describes one application design using this engine. |
2. XLL engine design |
|
2.1. Design policy |
|
AFDR ![]() |
In designing this XLL processing engine (XLL engine), we focus on the generality and efficiency of an application development process. Therefore, the engine should be a module and not embedded in an application d irectly. Moreover, to extend this XLL engine to the HyTime engine easily, this engine should be designed as an XLL architecture along with AFDR like HyTime. |
AFDR (Architectural Form Definition Requirement) which is described in the annex of the HyTime 2nd edition , defines how to construct an architecture in the SGML document. |
Fig. 2.1 XLL architecture processing |
![]() |
DSSSL ![]() |
In addition to the SGML and HyTime standards, there is the DSSSL (Document Style Semantics and Specification Language) standard that uses grove to represent a document. Like these, in the field of SGML, all data representations of a document are grove, so the XLL engine also can be used in this field if the engine is designed to use grove as the data representation. Further, it is convenient that XPointer defined in the curr ent XLL draft, which is a query for addressing a position in a document, uses grove to resolve the query. |
Addressing ![]() |
XPointer is an addressing language used to point to a position in a document. If XPointer is described in a link to address a position, any part of a document (offcourse, one character in some CDATA) can be pointed to, although HTML's link can only point to a whole document or a specified element having special attributes. |
shows the construction of an application including this XLL engine. |
Fig. 2.2 An application construction |
![]() |
2.2. Construction of XLL engine |
|
This section describes the construction of the XLL engine. |
shows the construction of the XLL engine. |
Fig. 2.3 XLL engine construction |
![]() |
This engine can be separated into three parts. |
This module creates an XLL architecture grove by extracting XLL information from SGML/XML groves. All application APIs are given from the module. |
This module creates and stores maps between default attribute names and newly specified attribute names. This module is only called by the XML-Link module. |
The XPointer module is also designed to provide an interface outside the engine for further independent use of the addressing facility. |
2.3. XLL Property Set |
|
Property Set ![]() |
As described in the SGML extended facilities in the annex of the HyTime 2nd edition, a grove is created according to an appropriate property set defined according to PSDR (Property Set Definition Requirem ent: definitions of how to define a property set) . |
This module includes properties and a class, which represent HyTime BOS. From this module, a class and properties representing an extended link group are defined. |
This module includes a property, which represents a pointer to the original SGML grove's node. From this module, a property which has the same meaning as HyTime is defined. |
This module includes properties and classes, which represent all links consistently. From this module, properties and classes which represent two links (SIMPLE and EXTENDED) consistently are defined. |
This module includes properties and a class, which represent the hyperlink type. From this module, a property which represents a type of Link is defined. |
This module includes properties and a class, which represent the HyTime Location address. From this module, properties and a class which represent HREF attribute as the location address are defined. |
The following list shows newly created classes for the XLL property set. In each explanation, properties, which are specified in each class, are also shown with their type. |
Corresponds to the BosMember class. Representation of extended link group. This class has steps (integer) and href (subnode to href) properties. |
Corresponds to HyperDocument class. Representation of XML-Link document. This class has hub (bool), sgmldoc (urefnode to a SGML grove's node) and content (subnodelist to XmlLink) properties. |
Corresponds to the AnchorObject class. Representation of resource which can start traversal. This class has object (urefnode to a SGML grove's node) and locators (irefnodelist to locator) properties. |
Corresponds to LocationAddress class. Representation of Href data as Location address. This class has url (string), xpointer (string) and connectortype (enum) properties. |
is a graph representation, which shows relation among this newly created classes and properties of the XLL property set. |
Fig. 2.4 Graph representation of the XLL property set |
![]() |
All collection of these definitions is the XLL property set along with HyTime property set, and XLL architecture grove is constructed by referencing this XLL property set. |
3. An application example using the XLL engine |
|
3.1. Application API |
|
Deletes the current XLL grove if it exists, then creates a new XLL grove. |
Checks whether the given SGML/XML node is a resource of a link or not. |
Gets the Locator Node of the XLL grove which is appropriate to the given SGML/XML node if that node is a resource. |
3.2. An application example using this link engine |
|
For the document browser, we use HyBrick. HyBrick is an SGML/XML document browser using DSSSL style sheet. |
Fig. 3.1 Application Image |
![]() |
This application shows several use of the XLL link engine. |
Fig. 3.2 Example of documents |
![]() |
[2] To implement this annotation facility, the application uses three kinds of XLL features, which are not included in the HTML link facilities, like: |
Facility to construct a link without including it's own content as a resource |
Facility to traverse a link from more than one resource |
Facility to construct a link in some documents from another document |
4. Conclusion |
|
Although this implementation is based on grove, we can use this design policy to construct the XLL engine based on DOM (Document Object Model), which is now under construction in the W3C. |
| SGML Extended Facilities and HyTime Two | Table of contents | Indexes | Style Concepts | |||