DSSSL Developer’s Toolkit

We are reposting this document in case people would like to revisit this. All credits go to R. Alexander Milowski.

The DSSSL Developer’s Toolkit (dsssltk) provides a means for different DSSSL implementations in Java to share components such as parsers, transformation engines and flow object semantics. The toolkit contains three Java packages: dsssl.engine, dsssl.grove, and dsssl.flowobject.

The dsssl.engine package:

The dsssl.engine package provides access to the DSSSL processor. It allows compilation of DSSSL expressions, style sheets, and transformations into Java objects.

The dsssl.grove package:

This package provides access to the data model of an SGML or XML document. It allows parsers to access a construct called a “Grove Constructor” which allows parsers to be abstracted from actual grove implementations. In this way, one parser for a particular data type (e.g. SGML) can populate different grove implementations.

The dsssl.flowobject package:

This package provides access to the resulting formatted document after a style has been applied. In addition, it provides and “Flow Object Constructor” interface that allows style engines to operate on different flow object implementations. It also contains the infrastructure for “loadable” flow object semantics.

dsssldevarch

A Standards Effort:

The DSSSL Developer’s Toolkit was developed by Copernican Solutions Incorporated as part of the development of the Seng/DSSSL engine. It was developed as a separate part to allow interchange of DSSSL applications in Java and is intended to be standardized. Starting in June of 1997 we will be working with other developers in the industry to expand this toolkit and standardize it further.

Overview

The DSSSL Developer’s Toolkit provides an abstract interface for accessing groves, flow object trees, and DSSSL processors. It is intended to provide a standard API for DSSSL implementations in Java.

There are three basic packages: dsssl.grove, dsssl.flowobject, and dsssl.engine. Each of these packages represents a translation of the DSSSL standard into Java considering the following goals:

  • Within an implementation, different components for groves, flowobjects, and engines should be able to be mixed.
  • Groves and flowobject trees may need to be stored in more than one place.
  • Grove production is separate from parsing of data formats such as SGML or XML.
  • Flow object definitions need to be loadable.

API Documentation

package dsssl.engine

Expression
Processor
SDQL
StyleSheet
Transformation

package dsssl.flowobject

CharacteristicSet
Exterior
ExteriorDriver
FlowObjectConstructor
FlowObjectDefinition
Registry
atomic
node
ported
sosofo

package dsssl.grove

AttributeAssignment
AttributeValueToken
DataChar
DataCharString
DocumentType
Element
Entity
ExternalData
ExternalId
GroveConstructor
IgnoredRE
IgnoredRS
Notation
PI
SData
SGMLConstants
SGMLDocument
cnmlist
nmndlist
node
nodelist

dsssl-xml-language2

Breakthroughs And Benefits Of DSSSL Implementation

The Document Style Semantics and Specification Language (DSSSL) is an internationally accepted international standard developed to offer convenient stylesheets for SGML files. DSSSL includes the core elements of the HTML document model, which allows authors to describe XML documents in a portable and flexible manner.

DSSSL was introduced as an international standard to give international guidelines for XML documents. It specifies the document format and its relationships with HTML. This is a part of the International Standard for XML (XML). A data model in DSSSL has been derived from the terminology, grammar and style rules of HTML. It provides a complete model of an XML document while retaining the benefits of HTML.

This enables authors to specify features and properties that are specific to a particular document type, such as XML documents or Simple Text documents. DSSSL allows the author to specify the style requirements directly while simultaneously defining the scope of those requirements.

For example, the author may define the style requirements for a DSSSL document without needing to specify the scope of that requirement for the rest of the text in the document. This allows authors to freely style a document in a manner they see fit.

The benefits of DSSSL are several. First, DSSSL allows the authoring tool to create hyperlinks, which link a document to the definition resource and so forth. Second, DSSSL provides a uniform set of rules so that all DSSSL-conformant applications will be uniformly readable. Third, DSSSL makes the authoring task simpler because it encourages good practices for writing DSSSL documents and makes it easier for others to read and change such documents.

One of the major benefits DSSSL gives its users is the increased structural separation achieved by using DSSSL. This brings us to the notion of document slices. A slice is a small part of a document that represents a single definition or piece of information. Prior to DSSSL, there was no easy way to separate document slices and still maintain backwards compatibility. With DSSSL, there are now two distinct subsets of DSSSL documents, each representing different slices of a single definition.

Another advantage users gain from DSSSL is the consistent organization of content within a document. When DSSSL was introduced, it was designed to allow for reuse of content across multiple documents. Currently, DSSSL allows for reuse of any content within a document even when that content is removed or moved.

This consistency provides greater objectivity for the DSSSL author. A DSSSL author can identify and use specific pieces of content in a single document, and this eliminates the need to rewrite portions of a document just to match other parts of a document.

Although there are many advantages to DSSSL adoption, there are also some potential drawbacks. Because of the significant time investment required to learn how to use DSSSL and to complete the requisite documentation, some authors may find it difficult to fully reap the benefits of DSSSL.

Another potential drawback of DSSSL is that the use of DSSSL introduces additional technical debt at a time when the authors might not yet be comfortable with DSSSL. Another possible drawback is the additional time required to learn how to use the authoring tool in conjunction with DSSSL.

One of the reasons why DSSSL has been adopted is because it provides automatic content duplication. Typically, content duplication requires authors to repeat the same material multiple times. This repetition would be prohibitively expensive in terms of time and effort for authors.

With DSSSL, authors only need to enter the specifics for each piece of content once. The resulting document would have the same content as the original document without the additional time and effort.

Another reason why DSSSL has become so widely used is because of the strong compatibility with industry standard software. Adobe, Microsoft, Sun and several other industry-recognized software vendors have already adopted DSSSL as part of their tools.

As a result, DSSSL authors can easily integrate their works into industry-standard software and can target specific users with exactly the same tools. The majority of DSSSL readers are capable of authoring works that will run across multiple platforms. Furthermore, users can use the tool without having to understand proprietary or industry-specific terminology.

In today’s highly competitive world, time is often a very valuable commodity. Authors who want to minimize their expenses and increase the productivity of their documents should consider DSSSL.

A DSSSL document can have an XML data model that may be different from that of a HTML based document. An XML data model usually corresponds to a set of definitions and naming conventions used by an XML processor. XHTML stores the document’s markup rather than the data model. The benefits of using DSSSL include compatibility with HTML and the ability to generate content that is machine-readable.

XML documents are stored into an application’s Document Object Models (DPMs) and the same data model is used for generating a web page. DSSSL allows you to create a vocabulary, which is a superset of the vocabulary used by HTML. By using a DSSSL, the document’s structure is specified at the server and the application developer is provided with an application interface, which can be accessed without having to learn HTML.

A data model in DSSSL may be a relational or an object-oriented database. This data model is created at the server and all the required information is stored on the application server. If a data model is provided, it is necessary to define the document’s layout and how the elements of the document are interconnected.

DSSSL also allows for easier cross-browser testing. In addition, a DSSSL can provide support for other languages, which may not be supported in a traditional HTML environment. Web applications using DSSSL may also access databases that aren’t available on the web server. Many people don’t realise it but there are many scenarios where a local copy of a document is necessary, and a DSSSL can provide this service. You can also use DSSSL with a client-side programming language.

Many people are intimidated by the notion of a language as advanced as DSSSL, and you shouldn’t be. The biggest benefit of DSSSL is that the terminology between the server and the browser is clear and self-explanatory. You don’t need to learn a new language when developing a web site.

A DSSSL can also create a document’s semantics, which means that it describes the rules for how a particular document should behave. For example, DSSSL could describe the rules for updating an image. It could also describe the layout of the document’s content in terms of color scheme and positioning. This information is all contained in the document’s data model. Your application would only need to query the data model once in order to obtain all the information required by a document.

An example of using a DSSSL in an application is Google Docs, which provides a rich data model for documents. You’d first need to download and install the Google tools required for Docs, such as the Chrome browser and the Google Docs application server. Once these are installed, you can then begin writing.

Using the tools that are provided, you can create a new document or modify an existing one, and the resulting document is automatically saved to the user’s desktop. Google provides a number of tools for users to edit their documents; you can also edit them from the command line interface.

Some applications offer the ability to save the document directly from the application server to your local computer. For example, in Joomla, this is done by clicking on “mails” and then “manage”. Furthermore, some document management systems allow users to search for and download documents directly from the application servers, rather than saving them locally in a database.

On the server side, DSSSL allows for the synchronization of two data sources. This can be done by synchronizing the data on the application servers with the information fetched from the user’s local system. This ensures that two users will get the same version of a document regardless of where it is stored. Since the application servers are usually in the same location, it is possible to access them simultaneously.

Another advantage is that the application servers can serve multiple documents at the same time without taking up server resources. They may also allow you to perform multi-user access, which allows you to open a document in the browser and edit it from your mobile device.
DSSSL offers streamlined applications of documents while minimizing the cost of document duplication. For companies that are serious about reducing costs and improving productivity, DSSSL may be the ideal choice.

DSSSL can benefit companies that send high volumes of sensitive documents or those that are used frequently. They can be more secure than emails since there is a lower chance for a document to be tampered with or hacked into. It is also ideal for those who use a variety of devices to access their documents from various locations.

Because DSSSL is similar to the local intranet in terms of administration, installing it will not be too difficult. If your company uses a variety of different devices to read and view its documents, DSSSL should be considered as an ideal document management solution.

Do you agree with my points?