DTD organizationThe 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.
[edit] DTDs versus Modules
A significant feature of the
DITA implementation is that it places more importance on the modules than
on the actual DTD. All element and attribute type declarations are made in
modules, which are then integrated into a document type using a document type
shell. Implementors are free to create new DTDs that reorganize the modules,
introduce new modules, or remove modules as appropriate. For example, the
standard topic DTD from OASIS includes all of the standard topic domains;
in addition, while the default topic DTD allows topics to nest, it is not
possible to include concepts. A new DTD can change one or both of these features
and still be valid; the DTD may add or remove domains, and it may allow topic
to nest concepts, or allow authoring of different types at the same level,
as in the ditabase document type. When creating a new or changing an existing
DTD, users should remember to give the new or changed DTD a new public ID,
so that various DITA tools will not confuse the new DTD with the default OASIS
version.
[edit] Description of DITA Modules
Each specialization
requires one or more modules to define elements for that specialization. Any
DTD that makes use of a specialization must include the modules for that specialization.
In
addition to the modules specific to a specialization, there are several files
that are used by every DITA DTD. These are included in the base topic or map
modules, so they do not need to be referenced in the DTD – they are already
included simply by including the topic or map module.
The tables below describe each of the DTD modules that come with the OASIS DITA standard.
Table 1. Description of topic and its specialization
modules
| Common module file
| Purpose
| Used within DTD
|
| topic.mod
| Define all elements that may be used within the base
topic type.
| Must be included in any topic-based DITA DTD.
|
| concept.mod
| Define elements used within the concept specialization.
| concept.dtd, ditabase.dtd
|
| glossary.mod
| Define elements used within the glossary specialization
| glossary.dtd, ditabase.dtd
|
| reference.mod
| Define elements used within the reference specialization.
| reference.dtd, ditabase.dtd
|
| task.mod
| Define elements used within the task specialization.
| task.dtd, ditabase.dtd
|
Table 2. Description of map and its specialization modules
| Common module file
| Purpose
| Used within DTD
|
| map.mod
| Define all elements that may be used within the base
map type.
| Must be included in any map-based DITA DTD.
|
| bookmap.mod
| Define elements used within the bookmap specialization.
| bookmap.dtd
|
Table 3. Description of domain modules
| Common module file
| Purpose
| Used within DTD
|
| indexingDomain.ent, indexingDomain.mod
| Define entities and elements used by the indexing domain.
| bookmap.dtd, concept.dtd, ditabase.dtd, glossary.dtd,
map.dtd reference.dtd, task.dtd, topic.dtd
|
| highlightDomain.ent, highlightDomain.mod
| Define entities and elements used by the highlighting
domain.
| concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd,
task.dtd, topic.dtd
|
| programmingDomain.ent, programmingDomain.ent
| Define entities and elements used by the programming
domain.
| concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd,
task.dtd, topic.dtd
|
| softwareDomain.ent, softwareDomain.mod
| Define entities and elements used by the software domain.
| concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd,
task.dtd, topic.dtd
|
| uiDomain.ent, uiDomain.mod
| Define entities and elements used by the user interface
domain.
| concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd,
task.dtd, topic.dtd
|
| utilitiesDomain.ent, utilitiesDomain.mod
| Define entities and elements used by the utilities domain.
| concept.dtd, ditabase.dtd, glossary.dtd, reference.dtd,
task.dtd, topic.dtd
|
| mapGroup.ent, mapGroup.mod
| Define entities and elements used by the map group domain.
| map.dtd, bookmap.dtd
|
| xnalDomain.ent, xnalDomain.mod
| Define entities and elements used by the XNAL domain.
| bookmap.dtd
|
Table 4. Description of other common modules used by the files
above
| Common module file
| Purpose
| Used within module
|
| commonElements.ent, commonElements.mod
| Define all content elements that may appear in both
maps and topics.
| topic.mod, map.mod (this makes it a part of any DITA
DTD)
|
| metaDecl.mod
| Define meta elements that may appear in both maps and
topics
| topic.mod, map.mod (this makes it a part of any DITA
DTD)
|
| tblDecl.mod
| Defines the complex tables used within DITA, based on
the OASIS Exchange Table model.
| commonElements.mod (this makes it a part of any DITA
DTD)
|
| topicDefn.ent
| Defines entities used within the topic module.
| topic.mod (this makes it a part of any topic-based DITA
DTD)
|
TOC: Architectural_Specification_1.1
Parent topic: An introduction to DITA
Previous topic: Naming conventions and file extensions
Next topic: XML Schema organization
|
|