Miss an article? Archives
Monday, May 21, 2007
By Joel Amoussou, special to TheContentWrangler.com
The subject of interoperability between S1000D and the Darwin Information Typing Architecture (DITA) has received significant attention within the technical documentation community recently. This article discusses the following issues:
In general, our approach to designing technical solutions is based on the following principles:
Let’s look at the issue from the perspective of two important stakeholders: the XML Vocabulary User and the Information Architect.
The Right Tool for the Job at Hand
You are a technical writer, content publisher, or a publications manager. You work for an aircraft manufacturer. Your mandate is to produce maintenance and operation documentation for a new aircraft project. Should you use S1000D, DITA, or both?
Use S1000D to document the airframe, engine, components, and supporting equipments. Do not try to create DITA specializations for these subjects. Like DITA, S1000D supports the following concepts:
The design of S1000D is also well informed by over a century of efforts to document aviation and military hardware. The only significant difference between S1000D and DITA from the markup language design perspective is that S1000D lacks a specialization mechanism (more on that later).
If you also need to document the user interface (UI) and application programming interface (API) for an on-board software applications, use DITA. Note that this is subject to contract data requirements, particularly for defense contracts that sometimes dictate the XML vocabulary to be used for documentation deliverables. DITA already has specializations for the software, user interface, and programming domains. This by no means implies that DITA is good for software documentation only.
Although the S1000D specification provides an SNS for software projects (see chapter 8.3.8 of the S1000D specification), S1000D is not the most elegant solution for documenting software products. If you think that DITA alone is not enough to support the documentation needs of the on-board software, consider creating a DITA specialization using S1000D element names and semantics. This will greatly simplify round-tripping transforms in the future if necessary.
Your S1000D publications modules and data modules can link to DITA maps and topics using the
Another idea floating around is to use DITA to create chunks of reusable data that can be assembled to create S1000D data modules as well as other forms of content such as SCORM-compliant learning objects. While this technique could work in certain situations, it should be approached with caution. Both S1000D and DITA can be intellectually challenging to deploy and authoring S1000D data modules by assembling DITA chunks could add an additional layer of unnecessary complexity to your project.
Use S1000D for domains that are already well served by the specification such as: aerospace, defense, automotive, oil and gas, power generation, and the machine industry in general.
Best Practices in Information Design
You are an Information Architect. Your job is to research, develop, and implement best practices in information design. These best practices should be selected in light of new W3C recommendations such as XPath 2.0, XSLT 2.0, and XQuery. Some of the most recognized best practices in information design include object-oriented concepts such as inheritance and polymorphism which are well supported by the XML Schema language.
Document designers should also recognize that it is impossible to create an XML vocabulary that satisfies all current and future requirements of the users of an XML vocabulary. The XML vocabulary should provide for controlled extensibility to allow any party to add extensions that are needed to satisfy their specific needs.
The main strength of DITA is its extensibility. One of the benefits of DITA specialization is that it allows the reuse of processing code (e.g. XSLT stylesheets) across specializations through a fall back mechanism to base types. The lack of specialization in S1000D is cited as one of its main drawbacks. However the combination of XML Schema, XPath 2.0, and XSLT 2.0 can provide a very robust specialization mechanism for S1000D.
DITA Specialization Mechanism Revisited
Extensibility can be achieved in XML Schema using a variety of techniques including wildcards, element substitution, and subtype polymorphism via extension or restriction of a base type.
Despite all the criticism, one of the benefits of using XML Schema to model XML vocabularies (as opposed to DTDs or even RelaxNG) is that its type system is used by most of the current W3C recommendations such as XForms, XPath 2.0, XSLT 2.0, XQuery 1.0, and WSDL. James Clark, the brain behind some of the most important innovations in SGML and XML, in his recently published blog asked “Why do we still have cruft like processing instructions and DTDs?” One the problem with the DITA specialization mechanism is that it is based on DTD syntax.
The adoption of a specialization mechanism based on XML Schema’s substitution and inheritance mechanism could require a refactoring of both DITA and S1000D content models. However, the combination of XML Schema and schema-aware XSLT 2.0 can provide a simple and robust alternative to DITA’s complex and elaborate scheme for achieving the benefits of specialization with DTDs and XSLT 1.0.
S1000D should learn from DITA’s experience and success by providing a specialization mechanism that allows any party to add extensions that are needed to satisfy their unique requirements. An S1000D extensibility framework will allow organizations and communities of interest to adopt S1000D without “polluting” the core specification. This design pattern has been successfully adopted by the National Information Exchange Model (NIEM) sponsored by the US Department of Homeland Security and Department of Justice as the standard for data exchange between government agencies.
Reengineering S1000D into DITA?
Some have proposed the creation of an interoperability bridge between DITA and S1000D. This would be a massive undertaking for which it is hard to imagine a valid business case. The S1000D specification is 2588 pages strong and is likely to grow in version 3.0 and beyond. What is needed is a set of high level guidelines for creating interoperable DITA specializations for S1000D. Users can then follow those guidelines in creating specializations on an as needed basis.
A Shared Specialization Framework for DITA and S1000D
The good thing that came out of the DITA vs. S1000D debate is the need for extensibility in S1000D. Such a specialization framework based on modern technologies such as XSLT 2.0 and XML Schema could be shared by both DITA and S1000D. The framework could be developed under the auspices of OASIS as a standalone specification.
About the author
Joel Amoussou is the Founder and CEO of Efasoft, a company specializing in content management, enterprise portal, and enterprise learning solutions. Joel started his career as a Flight Engineer of Civil Aviation and later became an expert in markup technologies. His current focus is on improving the way organizations design and manage content through the use emerging technologies such as XQuery, XSLT 2.0, XForms, ISO Schematron, and S1000D™. Email Joel.
More articles about DITA : S1000D
Closed-Loop Publishing Brings the Wisdom of Crowds to Dynamic Documents
[Webinar] This Time It’s Personal: Delivering Customized Technical Content
Paradigm Shifts are Never Pretty: Advice on Making the Move to XML Authoring
DITA: Opportunities To Help Shape The Standard, Promote DITA Adoption, Develop Real-World Solutions
The Sometimes Humorous Side of Social Networking: Facebook / eHarmony Parody Video
Software-as-a-Service: Changing The Benefit Packages IT Organizations Offer

Get The Content Wrangler Newsletter delivered straight to your home or work Inbox. It's full of content goodness.