Single Sourcing means outputting several different documents from a single source file. The resulting documents can be of different file types, such as a printed manual, pdf, an HTML Help file, a web page or even a WAP file. Or the documents can be various versions in the same format aimed at different user groups.
There are many different technical solutions to Single Sourcing.
With these methods, you output exactly the same content to different file formats for different uses. If you want manuals for different purposes, you still have to write separate manuals, which often means that you have to disturb the Subject Matter Expert several times for each version. If the manual is HTML, the user can search for specific topics, but there is only the one treatment of a topic available in any one manual.
Single sourcing is one of the major reasons tech writers get interested in XML. XML provides much more flexibility to single-sourcing. With XML you structure a document, enabling you to output different sections to different documents. For example, you can identify sections for beginners, intermediates or advanced users, for different security levels, or for different tasks. The writer prepares the same topic in different ways for different users and file formats at the same time. Only one writer needs to talk to a Subject Matter Expert about a given topic once, rather than different people asking him the same questions for different documents. This is a great argument to use with management to get them to go over to XML-based documentation, as it saves a lot of time and resources.
The structure is specified with a Document Type Definition (DTD) or XML-Schema, which is established prior to writing the document. There are a number of standard DTD's and Schemas available that are generic enough to be used for many different applications. Or you can create (or have someone create) a special DTD for your purposes. A DTD defines the Elements and the hierarchical, nested element structure that can be used within a document type, as well as the Attributes that can be used to further specify and Element.
The completed XML document is outputted to the various formats with XSL -stylesheets, which are also XML documents. These can be coupled with .css stylesheet formatting for webpages and other formats.
The tech writer's favorite authoring application, FrameMaker has long had a version for producing SGML, the forerunner of XML. The new Version 7 enables you to write so-called structured documents quite simply. FrameMaker uses templates, which include Element Definition Documents , combining a DTD with styling rules, and other properties. These are usually set up by an application developer. Adobe is pushing Structured FrameMaker as an easy way to revise documents, since everything that belongs together is a single element. That way it's easy to move things around, or have different people working on the same document and adding things together.
There are lots of other "light" authoring tools like XMetal, Authentic, which comes with my favorite XML development tool XMLSPy, and Veredus from Rascal software, which I heard about at the Conference. These tools make it easy for writers who don't really want to know much about coding XML to do it anyway within a WYSIWYG environment that can even be set up with stylesheets so you can see what it's going to look like. This is creating a whole new job market for those of us who are interested in the "under the hood" stuff, to create DTDs and XSLTs .
This table shows the levels of structuring which are used in different types of Desktop Publsihing applications. It is taken from the page "Analyzing Document Structure".
| Type | Example | Characteristics |
|---|---|---|
| Unstructured documents | QuarkXPress document | Look and feel. "It's all presentation. No points for technical merit." |
| Semi-structured documents | FrameMaker or Word with consistentlytagged styles. | Look and feel. "Use tags to organize the look and feel. Presentation counts, but tagging is important." |
| Structured documents | FM Structured Document, XML | Determine hierarchical tagging structure based on content. Formatting based automatically on structure. |