### B.7 DTD organization

(Non-normative) The OASIS DITA document types are implemented with a set of DTD modules. Some of these modules are used by every DITA document type, others are only used by topics or by maps, and some are only used in specific specializations.

#### Description of DITA modules

The tables below describe the modules that are defined by the DITA standard.MP: Stan Doherty comment for 1.2: consider providing table with one column per using doctype to make doctype usage of modules easier to scan

Description of common modules

Common module files | Purpose
Common elements (commonElements) | Defines all content elements that may appear in both maps and topics.
Metadata elements (metaDecl) | Defines meta elements that may appear in both maps and topics
Table elements (tblDecl) | Defines the complex tables used within DITA, based on the OASIS Exchange Table model.
DITA Architecture attribute (ditaarch.xsd) | XML Schema only - Defines the attribute that defines DITA's architectural version
XML namespace attributes (xml.xsd) | XML Schema only - Defines the attributes with the XML namespace

Description of domain modules

Domains | Purpose
Indexing domain | The indexing domain provides several new elements for use with indexing. The new elements allow authors to define "See" and "See also" references, and to override the default sort order for a term.
Highlight domain | The typographic elements are used to highlight text with styles (such as bold, italic, and monospace). Never use these elements when a semantically specific element is available. These elements are not intended for use by specializers, and are intended solely for use by authors when no semantically appropriate element is available and a formatting effect is required.
Programming domain | The programming domain elements are used to define the syntax and to give examples of programming languages.
Software domain | The software domain elements are used to describe the operation of a software program.
UI domain | The user interface domain elements are used to describe the user interface of a software program.
Utilities domain | The utilities domain elements represent common features of a language that may not necessarily be semantic, such as image maps.
Map Group domain | The mapgroup domain elements define, group, or reference content.
xNAL domain | The xNAL domain elements represent a subset of the Extensible Name and Address Standard. The domain can be included in any topic type or map, although the implementations provided by OASIS only include it in the bookmap specialization. It is used to encode information about the author or authors of DITA information.
Hazard Statement domain | The hazard statement domain elements represent labeling for product safety hazards that readers need to be aware of. The domain can be included in any topic type or map. Its elements are used to inform readers about potential hazards, consequences, and avoidance strategies
Machine Industry domain | The machine-industry task domain contains elements for use describing tasks that involve machines or other pieces of hardware.
Delay Resolution domain | The delayed conref resolution domain provides several elements for use when using DITA in situations that enable delayed or run time resolution of conref. The elements allow users to resolve some conref values statically, while delaying others for later resolution.
Abbreviate domain | The abbreviate domain element is used to represent a reference to a term that may appear in an abbreviated form (often an acronym).
Glossref domain | The glossref domain elements are convenience elements that are used to reference glossary topics or to reference multiple topics in a single collection.
Classify domain | The classification domain elements are used to identify subjects covered by the content
Learning domain | The learning domain elements represent the base elements that are used to create learning and training content.
Learning Interaction Base domain | The learning interaction base domain defines an "abstract" base type for all learning assessments.
Learning Map domain | The learning and training map domain organizes groups of topics as learning objects
Learning Metadata domain | The learning and training metadata domain describes specific characteristics of the learning content.

Description of topic and its specialization modules

Topic types | Purpose
Topic | Topic modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Base Topic | Topic modules Highlight domain Utilities domain Indexing domain Hazard Statement domain
DITABase | Concept modules Topic modules Reference modules Task modules General Task modules Glossary Entry modules GlossGroup modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Concept | Concept modules Topic modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Glossary | Glossary Entry modules Concept modules Topic modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
GlossGroup | GlossGroup modules Concept modules Topic modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Reference | Reference modules Topic modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Task | Task modules Topic modules Strict Taskbody module UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
General Task | Task modules Topic modules UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Machinery Task | Task modules Topic modules UI domain Highlight domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain Machine Industry domain
Learning Assessment | Learning Assessment modules Topic modules Highlight domain Utilities domain Indexing domain Learning domain Learning Interaction Base domain Learning metadata domain
Learning Content | Learning Content modules Learning Assessment modules Learning Summary modules Concept modules Topic modules Reference modules Task modules Highlight domain Utilities domain Indexing domain Learning domain Learning Interaction Base domain Learning metadata domain
Learning Overview | Learning Overview modules Topic modules Highlight domain Utilities domain Indexing domain Learning domain Learning Interaction Base domain Learning metadata domain
Learning Plan | Learning Plan modules Topic modules Highlight domain Utilities domain Indexing domain Learning domain Learning Interaction Base domain Learning metadata domain
Learning Summary | Learning Summary modules Topic modules Highlight domain Utilities domain Indexing domain Learning domain Learning Interaction Base domain Learning metadata domain

Description of map and its specialization modules

Map types | Purpose
Map | Map modules Map Group domain Indexing domain Delay Resolution domain Glossref domain UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Base Map | Map modules Map Group domain Indexing domain Delay Resolution domain Highlight domain Utilities domain Hazard Statement domain
Bookmap | Bookmap modules Map modules Map Group domain Indexing domain Delay Resolution domain UI domain Software domain Highlight domain Programming domain Utilities domain Indexing domain Hazard Statement domain Abbreviate domain
Classification Map | Map modules Map Group domain Indexing domain Delay Resolution domain Classification domain Highlight domain Utilities domain Hazard Statement domain
Subject Scheme | Subject Scheme modules Map modules Map Group domain Highlight domain Utilities domain Hazard Statement domain
Learning Map | Map modules Map Group domain Indexing domain Delay Resolution domain Learning Metadata domain Learning Map domain Highlight domain Utilities domain Hazard Statement domain
Learning Bookmap | Map modules Bookmap modules Map Group domain Indexing domain Delay Resolution domain xNAL Domain Learning Metadata domain Learning Map domain Highlight domain Utilities domain Hazard Statement domain

Description of constraint modules

Constraint types | Purpose
Strict Taskbody | The strict task body has a constrained structure.
Machinery Taskbody | The machinery task body makes use of elements prelreqs and closereqs instead of prereq and postreq

#### B.7.2 Public identifiers for DTDs

Each standard DTD has a public identifier that can be used to reference either the latest version or a specific version of the DTD. Each module component has a version-independent public ID as well as a version-specific public ID, one for each version of DITA.

The public IDs follow the pattern "-//OASIS//DTD DITA versionNumber topic-or-map-type//EN", where versionNumber is a DITA version number (1.0, 1.1, etc.) or is omitted entirely and topic-or-map-type is the name of the topic or map type in camel case, e.g., "Concept", "Task", "BookMap", etc.

Note that "OASIS" is the "owner identifier" of the public IDs and indicates artifacts owned by OASIS.

Public identifiers for shells not defined by the DITA Technical Committee should use an owner identifier reflecting the owner of the shell, e.g. "example.com" or "IBM" or a similarly unambiguous identifier. The keyword "DITA" is a convention indicating that the artifact is DITA-related.

The full set of module components and their associated public identifiers is provided in the XML entity resolution catalog that is part of the DITA DTD package.

The identifiers listed below are declared by the DITA Technical Committee for modules that are shipped with the DITA 1.2 distribution. Values that use a version number of 1.2 will always refer specifically to modules delivered with the DITA 1.2 specification. Values that use a version number of 1.x always refer to that module in the latest approved DITA 1.x specification (such as 1.1, 1.2, or 1.3), but will not reference any modules in DITA 2.0 or later. Values without a version number refer to that module in the latest approved DITA specification, regardless of version.

Topic and topic-based specializations

PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Concept//EN" "concept.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Concept//EN" "concept.dtd"
PUBLIC "-//OASIS//DTD DITA Composite//EN" "ditabase.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Composite//EN" "ditabase.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Composite//EN" "ditabase.dtd"
PUBLIC "-//OASIS//DTD DITA Glossary Entry//EN" "glossentry.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Glossary Entry//EN" "glossentry.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Glossary Entry//EN" "glossentry.dtd"
(NOTE: the glossary.dtd file is provided for backward compatibility with
DITA 1.1. Documents should use the glossentry.dtd in new documents.)
PUBLIC "-//OASIS//DTD DITA Glossary//EN" "glossary.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Glossary//EN" "glossary.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Glossary//EN" "glossary.dtd"
PUBLIC "-//OASIS//DTD DITA Reference//EN" "reference.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Reference//EN" "reference.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Reference//EN" "reference.dtd"
PUBLIC "-//OASIS//DTD DITA Task//EN" "task.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Task//EN" "task.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Task//EN" "task.dtd"
PUBLIC "-//OASIS//DTD DITA General Task//EN" "generalTask.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x General Task//EN" "generalTask.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 General Task//EN" "generalTask.dtd"
PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Topic//EN" "topic.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Topic//EN" "topic.dtd"
PUBLIC "-//OASIS//DTD DITA Base Topic//EN" "basetopic.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Base Topic//EN" "basetopic.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Base Topic//EN" "basetopic.dtd"
PUBLIC "-//OASIS//DTD DITA Machinery Task//EN" "machineryTask.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Machinery Task//EN" "machineryTask.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Machinery Task//EN" "machineryTask.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning Assessment//EN" "learningAssessment.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning Assessment//EN" "learningAssessment.dtd"
PUBLIC "-//OASIS//DTD DITA Learning Assessment//EN" "learningAssessment.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning Content//EN" "learningContent.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning Content//EN" "learningContent.dtd"
PUBLIC "-//OASIS//DTD DITA Learning Content//EN" "learningContent.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning Overview//EN" "learningOverview.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning Overview//EN" "learningOverview.dtd"
PUBLIC "-//OASIS//DTD DITA Learning Overview//EN" "learningOverview.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning Plan//EN" "learningPlan.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning Plan//EN" "learningPlan.dtd"
PUBLIC "-//OASIS//DTD DITA Learning Plan//EN" "learningPlan.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning Summary//EN" "learningSummary.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning Summary//EN" "learningSummary.dtd"
PUBLIC "-//OASIS//DTD DITA Learning Summary//EN" "learningSummary.dtd"

Map and map-based specializations

PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd"
PUBLIC "-//OASIS//DTD DITA 1.1 Map//EN" "map.dtd"
PUBLIC "-//OASIS//DTD DITA 1.0 Map//EN" "map.dtd"
PUBLIC "-//OASIS//DTD DITA Base Map//EN" "basemap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.1 Base Map//EN" "basemap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.0 Base Map//EN" "basemap.dtd"
PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 BookMap//EN" "bookmap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.1 BookMap//EN" "bookmap.dtd"
PUBLIC "-//OASIS//DTD DITA Subject Scheme Map//EN" "subjectScheme.dtd"
PUBLIC "-//OASIS//DTD DITA Subject Scheme 1.x Map//EN" "subjectScheme.dtd"
PUBLIC "-//OASIS//DTD DITA Subject Scheme 1.2 Map//EN" "subjectScheme.dtd"
PUBLIC "-//OASIS//DTD DITA Classification Map//EN" "classifyMap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Classification Map//EN" "classifyMap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Classification Map//EN" "classifyMap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning BookMap//EN" "learningBookmap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning BookMap//EN" "learningBookmap.dtd"
PUBLIC "-//OASIS//DTD DITA Learning BookMap//EN" "learningBookmap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 Learning Map//EN" "learningMap.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x Learning Map//EN" "learningMap.dtd"
PUBLIC "-//OASIS//DTD DITA Learning Map//EN" "learningMap.dtd"

DITAVal package for conditional processing

PUBLIC "-//OASIS//DTD DITA DITAVAL//EN" "ditaval.dtd"
PUBLIC "-//OASIS//DTD DITA 1.x DITAVAL//EN" "ditaval.dtd"
PUBLIC "-//OASIS//DTD DITA 1.2 DITAVAL//EN" "ditaval.dtd"

Previous Topic: B.6 DITA module and shell implementation reference

Next Topic: B.8 XML schema organization

Parent Topic: Appendix B. Non-normative information

Sibling Topics:

B.1 Changes from previous versions

B.2 Migrating from DITA 1.1 to 1.2

B.3 DITA MIME type

B.4 Considerations for generalizing <foreign> elements

B.5 Element-by-element recommendations for translators

B.6 DITA module and shell implementation reference

B.8 XML schema organization

B.9 Processing component modularization and naming conventions

B.10 Processing interoperability considerations

B.11 Specialization design, customization, and the limits of specialization