Sample IBMIDDoc Document IBM Corporation
Armonk, NY
+//ISBN 0-933186::IBM//DOCUMENT Sample IBMIDDoc Document//EN This document is a sample IBMIDDoc document containing representative elements.

This is a typical Frontmatter section. Note that it uses the element GeneratedTitle, which acts as a placeholder for style-defined titles in place of an explicit Title element.

Note the STYLE= attribute of the Frontmatter element. The value "display='tipage toc preface'" defines which frontmatter elements are to be used in the output and in what order. Note that tipage and toc are completely generated and therefore don't occur in the content. This particular style value is that used by the IDDOC2BK tool, which converts IBMIDDoc documents into BookMaster source. Other output systems might use different style values ("tipage", for example, is the name of the BookMaster tag that causes a title page to be generated). IBMIDDoc does not define any style functionality, leaving it up to individual implementations to define style mechanisms.

<TITLEBODY>A Typical Division</TITLEBODY>

This is a typical division (and this is the division introduction, which has its own element, DivIntro). Divisions are recursively nested in IBMIDDoc to enable blind re-use of divisions is various contexts.

<TITLEBODY>This is a nested division</TITLEBODY>

This is a nested division, within a higher-level division. Note that by use of the DivIntro element in the parent division, paragraphs and divisions are not mixed within the DivBody (although IBMIDDoc allows that).

<TITLEBODY>This is a second nested division</TITLEBODY>

This is a second nested division, within a higher-level division.

This is the division summary of the highest-level division. It can be used to sumarize the division ("what you have learned," etc.) or provide transisitions from one division to the next.

One useful aspect of DivIntro and DivSummary is that they could be used in traditional "book" presentations, but ignored in more modular presentations such as online help, where transitions and the like may be meaningless. IBMIDDoc features many structures of this sort.

<TITLEBODY>A Few Features of IBMIDDoc</TITLEBODY>
<TITLEBODY>Paragraph-Level Elements</TITLEBODY>

IBMIDDoc divides elements into two basic groups: pararaph-level elements and phrase-level elements. Paragraph-level elements are paragraphs, lists, figures, other display elements, and the like.

Paragraph-level elements are the content of divisions and the like.

Lists come in two flavor: single-part lists and defining lists. Single-part lists are ordered and unordered lists, containing list items (LI):

  1. Ordered list item one
  2. Ordered list item two

Defining lists are things like glossary lists and definition lists: appleA brand of computers orangeA type of fruit.All defining lists consist of one or more entry (GLEntry for glossary lists, DLEntry for definition lists), which then consist of various combinations of DefinedTerm and definition elements.

<TITLEBODY>Phrase-Level Elements</TITLEBODY>

Phrases are things inside paragraph-level elements, and are generally valid wherever you would expect PCDATA to be valid. Phrases are primarily intended to identify the mentions of the names of objects being documented (e.g., command names, filenames, part numbers, etc.). IBMIDDoc defines the very general element Phrase which can also be used simply to define containment (for example, to associate a footnote with a sentence, you would put the sentence and the footnote within a common Phrase container). Phrase can also be used to apply style to arbitrary text within a paragraph (IBMIDDoc defines some simple style keywords for this purpose to be used as values of the common Style attribute).

One of the intents of this rather detailed phrase mechanism is to enable automatic hyperlinking between the mention of things and their descriptions in other places, such as glossary lists, reference pages, syntax diagrams, and the like. For example, the DefinedTerm element can be used by itself, thus establishing an implicit hyperlink between the use of the term and its definition.

<TITLEBODY>Modular Information</TITLEBODY>

IBMIDDoc defines a class of information structures it calls "modular information". Modular information is meant to be used for the descriptions of objects where each object has the same properties. Unix MAN pages are a typical example of modular information. Most technical reference information is modular information and IBMIDDoc attempts to support it directly through the modular information elements.

One important feature of modular information is that you can apply a variety of presentation styles to modular information. For example, modular information can be presented in tabular as well as prose form. In addition, the parts of an information module can be hidden or re-ordered in the presentation. For example, you could derive both a quick reference table and a full reference from the same modular information source.

IBMIDDoc defines both a general ModularInformation element that can be tailored to any objects, as well as some specific instances of modular information, including Procedure, MessageList, and LERS (language element reference section, similar to MAN pages).

<TITLEBODY>Annotations, Content, and Metadata</TITLEBODY>

IBMIDDoc divides information into three basic classes: content, annotation, and metadata. Metadata is information about the document or element to which it applies, things like title, authors, and so on. Contentis the information the document is about. Annotations are elements that talk about the content (as opposed to about the element or document). Footnotes are a typical example of an annotation.

In IBMIDDoc, annotations are associated with the element they annotate either by direct hyperlink (using the ANNOTATION anchor role) or by containment. IBMIDDoc defines the rule that says that an element of semantic class ANNOTATION is, by definition, hyperlinked to its direct parent. For example, a footnote element (FN) within a paragraph is a footnote for the entire paragraph (regardless of where within the paragraph it occurs). To associate the footnote with specific text, you'd need to put the text and the footnote within the same container, normally Phrase.

<TITLEBODY>Re-Use Enablement</TITLEBODY>

IBMIDDoc's primary goal was to enable re-use of information at a variety of scales. IBMIDDoc does this in a number of ways, including the use of recursive elements, such as Div, the use of containment to define associations between elements, the definition of blocking elements (ParaBlock, LIBlock, etc.) that can be used to group elements arbitrarily for re-use, and, most importantly, a general use-by-refenence mechanism that uses hyperlinks rather than relying on entity references.

Every element in IBMIDDoc can point to another elmement of the same type in order to use its content by reference using the common ContentRef attributeContentRef is an instance of the HyTime conloc attribute. to point to the element. The element pointed to is normally put into a special IBMIDDoc element called ObjectLibrary.

ObjectLibrary is part of the document or division metadata and has the specific purpose of holding elements that are only to be used by reference (they are not processed for output at the time they are encountered within the object library). The reference may either be direct via hyperlink or indirect via query. IBMIDDoc also defines some specialized versions of ObjectLibrary for holding commonly-re-used elements such as glossary definitions and index entries.

This is the glossary, a typical BackMatter element. The content of the Glossary division could be an explicit glossary list or it could be a generated glossary list (or if the Glossary element was completely omitted, it could be generated as a matter of style). For example, the following glossary list (GL) contains a named query (NMQuery) element that indicates its content should be generated by query from DefinedTerm elements used in the document content and defined somewhere in the document: