Darwin Information Typing Architecture
The Darwin Information Typing Architecture or Document Information Typing Architecture (DITA) is an XML data model for authoring and publishing. It is an open standard that is defined and maintained by the OASIS DITA Technical Committee.
The name derives from the following components:
- Darwin: it uses the principles of specialization and inheritance, which is in some ways analogous to the naturalist Charles Darwin's concept of evolutionary adaptation,
- Information typing, which means each topic has a defined primary objective (procedure, glossary entry, troubleshooting information) and structure,
- Architecture: DITA is an extensible set of structures.
- 1 Features and limitations
- 2 Creating content in DITA
- 3 Publishing content written in DITA
- 4 History
- 5 Code samples
- 6 References
- 7 External links
Features and limitations
The latest version of DITA (DITA 1.3) includes five specialized topic types: Task, Concept, Reference, Glossary Entry, and Troubleshooting. Each of these three topic types is a specialization of a generic Topic type, which contains a title element, a prolog element for metadata, and a body element. The body element contains paragraph, table, and list elements, similar to HTML.
- A (General) Task topic is intended for a procedure that describes how to accomplish a task.
- A Task topic lists a series of steps that users follow to produce an intended outcome. The steps are contained in a taskbody element, which is a specialization of the generic body element. The steps element is a specialization of an ordered list element.
- Concept information is more objective, containing definitions, rules, and guidelines.
- A Reference topic is for topics that describe command syntax, programming instructions, and other reference material, and usually contains detailed, factual material.
- A Glossary Entry topic is used for defining a single sense of a given term. In addition to identifying the term and providing a definition, this topic type might also basic terminology information, along with any acronyms or acronym expansions that may apply to term.
- The Troubleshooting topic describes a condition that the reader may want to correct, followed by one or more descriptions of its cause and suggested remedies.
A DITA map is a container for topics used to transform a collection of content into a publication. It gives the topics' sequence and structure. A map can include relationship tables (reltables) that define hyperlinks between topics. Maps can be nested. Maps can reference topics or other maps, and can contain a variety of content types and metadata.
DITA includes extensive metadata elements and attributes, both at topic level and within elements. Conditional text allows filtering or styling content based on attributes for audience, platform, product, and other properties. The conditional processing profile (.ditaval file) is used to identify which values are to be used for conditional processing.
DITA allows adding new elements and attributes through specialization of base DITA elements and attributes. Through specialization, DITA can accommodate new topic types, element types, and attributes as needed for specific industries or companies. Specializations of DITA for specific industries, such as the semiconductor industry, are standardized through OASIS technical committees or subcommittees. Many organizations using DITA also develop their own specializations.
The extensibility of DITA permits organizations to specialize DITA by defining specific information structures and still use standard tools to work with them. The ability to define company-specific information architectures enables companies to use DITA to enrich content with metadata that is meaningful to them, and to enforce company-specific rules on document structure.
DITA content is created as topics, each an individual XML file. Typically, each topic covers a specific subject with a singular intent, for example, a conceptual topic that provides an overview, or a procedural topic that explains how to accomplish a task. Content should be structured to resemble the file structure in which it is contained.
Creating content in DITA
DITA map and topic documents are XML files. As with HTML, any images, video files, or other files that must appear in the output are inserted via reference. Any XML editor or even text editor can be used to write DITA content, depending on the level of support required while authoring. Aids to authoring featured in specialized editors includes WYSIWYG preview rendering, validation, and integration with a DITA processor, like DITA-OT or ditac.
Publishing content written in DITA
DITA is designed as an end-to-end architecture. In addition to indicating what elements, attributes, and rules are part of the DITA language, the DITA specification includes rules for publishing DITA content in HTML, online Help, print, and other formats.
For example, the DITA specification indicates that if the conref attribute of element A contains a path to element B, the contents of element B will display in the location of element A. DITA-compliant publishing solutions, known as DITA processors, must handle the conref attribute according to the specified behaviour. Rules also exist for processing other rich features such as conditional text, index markers, and topic-to-topic links. Applications that transform DITA content into other formats, and meet the DITA specification's requirements for interpreting DITA markup, are known as DITA processors.
DITA provides support for translation via the localization-atts attribute group. Element attributes can be set to indicate whether the content of the element should be translated. The language of the element content can be specified, as can the writing direction, the index filtering and some terms that are injected when publishing to the final format. A DITA project can be converted to an XLIFF file and back into its original maps and topics, using the DITA-XLIFF Roundtrip Tool for DITA-OT and computer-assisted translation (CAT) tools, like Swordfish Translation Editor or Fluenta DITA Translation Manager, a tool designed to implement the translation workflow suggested by the article Using XLIFF to Translate DITA Projectspublished by the DITA Adoption TC at OASIS.
The DITA standard is now maintained by OASIS. The latest (current) version is 1.3, approved December 2015.
- March 2001 Introduction by IBM of the core DTD and XML Schema
- May 2002 Domain specialization added to topic specialization
- April 2004 OASIS Technical Committee for DITA formed
- February 2005 SourceForge begins DITA Open Toolkit support
- June 2005 DITA v1.0 approved as an OASIS standard
- August 2005 DITA Open Toolkit v1.1 is released
- March 2006 OASIS launches DITA.XML.org
- August 2007 DITA V1.1 is approved by OASIS, including Bookmap specialization
- December 2010 DITA V1.2 is approved by OASIS, includes:
- Indirect linking with keys
- New content reuse features
- Enhanced glossary support, including acronyms
- New industry specializations (Training, Machinery)
- New support for controlled values / taxonomies (Subject Scheme specialization)
- 17 December 2015, DITA V1.3 is approved by OASIS, includes:
- New troubleshooting topic type
- Ability to use scoped keys
- Includes the MathML and equation domains.
- Add Relax NG XML syntax as the normative grammar for DITA.
Ditamap file (table of contents) sample
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE map PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd"> <map id="map" xml:lang="en"> <topicref format="dita" href="sample.dita" navtitle="Sample" type="topic"/> </map>
Hello World (topic DTD)
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd"> <topic xml:lang="en" id="sample"> <title>Sample</title> <body> <p audience="foo">Hello World!</p> </body> </topic>
.ditaval file sample (for conditionalizing text)
<?xml version="1.0" encoding="UTF-8"?> <val> <prop att="audience" val="foo" action="include" /> <prop att="audience" val="bar" action="exclude" /> </val>
Example of conditionalized text:
<?xml version="1.0" encoding="UTF-8"?> <p audience="foo"> This is an information useful for the foo audience! </p> <p audience="bar"> This is an information useful for the bar audience. </p>
- "Darwin Information Typing Architecture (DITA) Version 1.2". Retrieved 10 October 2012.
- "OASIS Darwin Information Typing Architecture (DITA) TC". OASIS. Retrieved 5 October 2012.
- "Frequently Asked Questions about the Darwin Information Typing Architecture". IBM Corporation. Retrieved 10 October 2012.
- "Introduction to the Darwin Information Typing Architecture". IBM Corporation. Retrieved 10 October 2012.
- "reltable". OASIS. Retrieved 22 October 2012.
- "Metadata elements". OASIS. Retrieved 22 October 2012.
- "ditaval". OASIS. Retrieved 22 October 2012.
- Priestly, Michael; Swope, Amber. "The DITA Maturity Model Whitepaper" (PDF). IBM Corp and JustSystems. Retrieved 22 October 2012.
- "Implementing DITA versus implementing custom XML architecture". Scriptorium Publishing Services, Inc. 2008. Retrieved 2009-07-29.
- "Structure, DITA, and content other than technical documentation …". The Rockley Group. October 16, 2007. Retrieved 2009-07-29.
- "Survey on DITA Challenges". WritePoint Ltd. January 18, 2010. Archived from the original on 2014-10-23. Retrieved 2010-01-21.
- "localization-atts attribute group". OASIS. Retrieved 15 October 2012.
- Schnabel, Bryan. "DITA-XLIFF Roundtrip for OT". Retrieved 15 October 2012.
- DITA 1.2 Feature Article: Using XLIFF to Translate DITA Projects