The Cover PagesThe OASIS Cover Pages: The Online Resource for Markup Language Technologies
Advanced Search
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

Cover Stories
Articles & Papers
Press Releases

XML Query

XML Applications
General Apps
Government Apps
Academic Apps

Technology and Society
Tech Topics
Related Standards
Created: August 25, 2005.
News: Cover StoriesPrevious News ItemNext News Item

DITA Open Toolkit 1.1: A Reference Implementation for OASIS DITA 1.0.


The open source DITA Open Toolkit being developed at SourceForge.Net has been released as a major upgrade in Version 1.1. The DITA Open Toolkit application transforms XML-based DITA content (maps and topics) into deliverable formats including XHTML, Eclipse Help, HTML Help, and JavaHelp.

The toolkit "uses open source solution of ANT, XSLT, and Java to implement transformation functions from DITA content (XML-encoded data in maps and topics) into different deliverable formats. The whole process works like a pipeline. The pipeline input is DITA map, DITA XML files and property files. And the pipeline output is XHTML, Eclipse help, PDF, JavaHelp, etc. depending on what output user selects. The pipeline consists of various modules which performs different functions. The Toolkit implements a two-pass, map-driven architecture that resolves any conditional properties and content references on the first pass, then applies transformations to the normalized files on the second pass."

The highlight of the version 1.1 release is implementation of the OASIS DITA 1.0 standard for DITA DTDs and Schemas: the Toolkit now provides reference implementation support for OASIS DITA 1.0, approved as an OASIS Standard in April 2005. A DITA map might contain topicrefs that reference topics using either the older IBM doctypes (e.g., the "1.3.2" DTDs) or the OASIS doctypes; each will be processed according to its own DTD.

The Darwin Information Typing Architecture (DITA) is "an XML-based, end-to-end architecture for authoring, producing, and delivering readable information as discrete, typed topics. It provides a technology for (1) managing readable information, (2) reusing information in many different combinations and deliverables, (3) creating online information systems such as User Assistance (help) or web resource, and (4) creating minimalist books for easier authoring and use."

The DITA Open Toolkit version 1.1 provides new functionality to fulfill additional requirements, offers several feature enhancements, and fix bugs reported since the version 1.0.2 release. Providing a reference implementation for the DITA 1.0 Standard through its core transforms is the single most important feature.

Release 1.1 also contains a new Eclipse transformation that produces as output a version of DITA XML that can be dynamically rendered in the Eclipse Help System. In previous Toolkit releases, one could transform DITA files to HTML format before building them into Eclipse help output. With the new Eclipse Content Provider included in V1.1, you do not need to transform DITA files to HTML: DITA files are preprocessed by a plugin and are dynamically transformed at runtime. The developer team plans to contributed the DITA Eclipse Content Provider to the Eclipse community.

Version 1.1 of the DITA Open Toolkit also provides new support for the XML catalog. An OASIS Committee Specification for XML Catalogs Version 1.1 was approved on July 22, 2005, and is working its way through the standardization process. An XML Catalog provides an interoperable way to "map the information in an XML external identifier into a URI reference for the desired resource." The current OASIS Committee Specification defines an entity catalog that handles two simple cases: (1) Mapping an external entity's public identifier and/or system identifier to a URI reference; (2) Mapping the URI reference of a resource (a namespace name, stylesheet, image, etc.) to another URI reference. Several schema language descriptions of XML Catalogs are documented in non-normative appendices of the CS (W3C XML Schema; RELAX NG Grammar; XML DTD).

The DITA Open Toolkit Version 1.1 also globalization enhancements, now supporting over twenty (20) popular languages within the content of DITA files. V1.1 provides a translation function for DITA keywords to over twenty languages. Currently this globalization support applies fully to Eclipse Help and XHTML transformations, and applies partially to other transformations.

Mapref functionality is another added features in the DITA Toolkit V1.1. Mapref "refers to a special usage of the topicref element as a reference to another DITA Map (ditamap) file. This allows one to manage the overall DITA Map more easily. For example, a large ditamap file can be broken down into several ditamap files, making it easier for the user to manage the overall logical structure; the mechanism also increases the reusability of the referenced ditamap files."

The DITA Open Toolkit Version 1.1 supports a transformation to troff, suitable for generation of technical documentation in various layouts/formats, including UNIX man pages.

The Toolkit is distributed as open source software under the Common Public License Version 1.0. Under this license, the Contributor "grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form."

DITA Open Toolkit Version 1.1 Enhancements

Enhancements in V1.1 according to the Release Notes:

  • Adaptation to the new OASIS DITA standard
  • Transformation to troff
  • XML catalog support
  • Topicref referring to a nested topic
  • Globalization support
  • Accessibility support
  • Eclipse Content Provider Support
  • Index information in output
  • Mapref function
  • TOC generation for Eclipse Help transformation
  • Helpset generation for Java Help transformation
  • New parameters supported in Java commands
  • New parameters supported in Ant scripts

About DITA

The Darwin Information Typing Architecture was created by IBM in 1999-2000. In March 2004 the technology was contributed to OASIS for further development within a new OASIS TC, chartered to promote the use of the DITA architecture for creating standard information types and domain-specific markup vocabularies.

DITA, according to the specification Introduction, is "an architecture for creating topic-oriented, information-typed content that can be reused and single-sourced in a variety of ways. It is also an architecture for creating new topic types and describing new information domains based on existing types and domains. The process for creating new topic types and domains is called specialization. Specialization allows the creation of very specific, targeted document type definitions while still sharing common output transforms and design rules developed for more general types and domains, in much the same way that classes in an object-oriented system can inherit methods of ancestor classes."

In DITA, a topic is "the basic unit of authoring and of reuse. A document may contain one topic or multiple topics, and a document type may support authoring one or many kinds of topics. But regardless of where they occur, all topics have the same basic structure and capabilities. Books, PDF files, Websites, and help sets, for example, can all be constructed from the same set of underlying topic content, although there may be some topics that are unique to a particular deliverable, and the organization of topics may differ to take advantage of the unique capabilities of each delivery mechanism."

DITA topics are "XML conforming. As such, they are readily viewed, edited, and validated with standard XML tools, although some features such as content referencing and specialization may benefit from customized support."

The DITA Architectural Specification for Version 1.0 provides an overview and introduction, followed by a Chapter 3 on "DITA Markup," which presents DITA topics, DITA maps, Common metadata elements, and Common attributes. Chapter 4 discusses DITA specialization, providing details on the mechanisms DITA provides for defining and extending DITA document types. The Language Specification provides explanations for each element in the base DITA document types. Chapter 1 of the language reference contains an alphabetical listing of DITA elements, each with a description and documentation on permissible attributes. Chapter 2 presents the sets of attributes by named group. The Chapter 3 'Appendix' covers xml:lang values, outputclass processing, and keyref processing.

Members of the DITA TC believe that "compared to most XML language specifications, the DITA Specification is written in a very readable manner. Both the DITA Architecture Specification and the associated DITA Language Reference were composed from DITA topics organized by DITA maps. The main new DTD design changes in the TC's version 1.0 of the specification are: (1) The DTDVersion attribute has been replaced by a namespaced DITAArchVersion attribute; (2) The former CALS-based table model has been updated to the OASIS Exchange table model, which is more widely supported by vendors. This change might require migration of DITA source that uses the spanspec element or tfoot element in tables."

OASIS Sponsor members supporting DITA development include Arbortext Inc, BMC Software, IBM, Innodata Corporation, Intel, Nokia, Sun Microsystems, and US Department of Defense (DoD). Other TC participanats include representatives from Blast Radius, Idiom Technolgies, Lucent, National Library of Medicine, and Rascal Software, along with several individual TC members...

Principal References

Hosted By
OASIS - Organization for the Advancement of Structured Information Standards

Sponsored By

IBM Corporation
ISIS Papyrus
Microsoft Corporation
Oracle Corporation


XML Daily Newslink
Receive daily news updates from Managing Editor, Robin Cover.

 Newsletter Subscription
 Newsletter Archives
Bottom Globe Image

Document URI:  —  Legal stuff
Robin Cover, Editor: