Non-normative information : XML schema organization
   
XML schema organization
(Non-normative) The OASIS DITA document types are implemented with a set of schema modules. Some of these modules are used by every DITA schema document, others are only used by topics or by maps, and some are only used in specific specializations.
XML schemas versus modules
A significant feature of the DITA implementation is that it places more importance on the modules than on the actual document type shell. All element and attribute type declarations are made in modules, which are then integrated into a document type using a document type shell. Implementers are free to create new document-type shells that reorganize the modules, introduce new modules, redefine modules, or remove modules as appropriate. For example, the standard topic XML Schema from OASIS includes all of the standard topic domains; in addition, while the default topic XML Schema allows topics to nest, it is not possible to include concepts. A new XML Schema can change one or both of these features and still conform to the DITA architecture; the XML Schema may add or remove domains, it may allow topics to nest concepts or allow authoring of different types at the same level, as in the ditabase document type.
Description of DITA modules
The tables below describe the modules that are defined by the DITA standard.
Table 16. 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
Table 17. 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.
Table 18. 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
Table 19. 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
Table 20. 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
XML Schema catalog identifiers
An XML resolver needs to be able to uniquely identify an XML Schema in order to map to a local resource. The DITA 1.2 specification includes both URN- and URL-based versions of the XML schemas. The URL versions are included as a convenience for use with tools that do not support catalog based resolution and are not normative.
Each schema document must be uniquely identified using a URN (Uniform Resource Name). Each schema document has a version-independent as well as a version-specific URN.
There are two patterns for the URNs. One for schemas that are part of the core standard and one for schemas created by TC subcommittees. The design pattern for the core standard schemas is:
urn:oasis:names:tc:dita:xsd:<filename.xsd>:<version>
The design pattern for schemas created by DITA Technical Committee sub-committees is:
urn:oasis:names:tc:dita:spec:<specialization-family-name>:xsd:<filename.xsd>:<version>
Catalog identifiers for shell schemas and/or specializations that are not defined by the DITA Technical Committee or DITA Technical Committee sub-committees should use an owner identifier reflecting the owner of the shell, e.g. "example.com" then an appropriate URN would be "urn:example.com:names:dita:xsd:topic.xsd". The pattern "urn:oasis:names:tc:dita" is a convention indicating that the artifact is defined by the OASIS DITA Technical Committee.
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
urn:oasis:names:tc:dita:xsd:topic.xsd:1.2
urn:oasis:names:tc:dita:xsd:topic.xsd:1.x
urn:oasis:names:tc:dita:xsd:topic.xsd

urn:oasis:names:tc:dita:xsd:basetopic.xsd:1.2
urn:oasis:names:tc:dita:xsd:basetopic.xsd:1.x
urn:oasis:names:tc:dita:xsd:basetopic.xsd

urn:oasis:names:tc:dita:xsd:concept.xsd:1.2
urn:oasis:names:tc:dita:xsd:concept.xsd:1.x
urn:oasis:names:tc:dita:xsd:concept.xsd

urn:oasis:names:tc:dita:xsd:reference.xsd:1.2
urn:oasis:names:tc:dita:xsd:reference.xsd:1.x
urn:oasis:names:tc:dita:xsd:reference.xsd

urn:oasis:names:tc:dita:xsd:task.xsd:1.2
urn:oasis:names:tc:dita:xsd:task.xsd:1.x
urn:oasis:names:tc:dita:xsd:task.xsd

urn:oasis:names:tc:dita:xsd:generalTask.xsd:1.2
urn:oasis:names:tc:dita:xsd:generalTask.xsd:1.x
urn:oasis:names:tc:dita:xsd:generalTask.xsd

urn:oasis:names:tc:dita:spec:machinery:xsd:machineryTask.xsd:1.2
urn:oasis:names:tc:dita:spec:machinery:xsd:machineryTask.xsd:1.x
urn:oasis:names:tc:dita:spec:machinery:xsd:machineryTask.xsd

urn:oasis:names:tc:dita:xsd:ditabase.xsd:1.2
urn:oasis:names:tc:dita:xsd:ditabase.xsd:1.x
urn:oasis:names:tc:dita:xsd:ditabase.xsd

urn:oasis:names:tc:dita:xsd:ditabaseMod.xsd:1.2
urn:oasis:names:tc:dita:xsd:ditabaseMod.xsd:1.x
urn:oasis:names:tc:dita:xsd:ditabaseMod.xsd

urn:oasis:names:tc:dita:xsd:glossentry.xsd:1.2
urn:oasis:names:tc:dita:xsd:glossentry.xsd:1.x
urn:oasis:names:tc:dita:xsd:glossentry.xsd

(NOTE: the glossary.xsd file is provided for backward compatibility with
DITA 1.1. Documents should use the glossentry.xsd in new documents.)

urn:oasis:names:tc:dita:xsd:glossary.xsd:1.2
urn:oasis:names:tc:dita:xsd:glossary.xsd:1.x
urn:oasis:names:tc:dita:xsd:glossary.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningAssessment.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningAssessment.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningAssessment.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningContent.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningContent.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningContent.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningSummary.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningSummary.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningSummary.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningPlan.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningPlan.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningPlan.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningOverview.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningOverview.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningOverview.xsd
Map and map-based specializations
urn:oasis:names:tc:dita:xsd:map.xsd:1.2
urn:oasis:names:tc:dita:xsd:map.xsd:1.x
urn:oasis:names:tc:dita:xsd:map.xsd

urn:oasis:names:tc:dita:xsd:basemap.xsd:1.2
urn:oasis:names:tc:dita:xsd:basemap.xsd:1.x
urn:oasis:names:tc:dita:xsd:basemap.xsd

urn:oasis:names:tc:dita:xsd:bookmap.xsd:1.2
urn:oasis:names:tc:dita:xsd:bookmap.xsd:1.x
urn:oasis:names:tc:dita:xsd:bookmap.xsd

urn:oasis:names:tc:dita:spec:classification:xsd:subjectScheme.xsd:1.2
urn:oasis:names:tc:dita:spec:classification:xsd:subjectScheme.xsd:1.x
urn:oasis:names:tc:dita:spec:classification:xsd:subjectScheme.xsd

urn:oasis:names:tc:dita:spec:classification:xsd:classifyMap.xsd:1.2
urn:oasis:names:tc:dita:spec:classification:xsd:classifyMap.xsd:1.x
urn:oasis:names:tc:dita:spec:classification:xsd:classifyMap.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningBookmap.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningBookmap.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningBookmap.xsd

urn:oasis:names:tc:dita:spec:learning:xsd:learningMap.xsd:1.2
urn:oasis:names:tc:dita:spec:learning:xsd:learningMap.xsd:1.x
urn:oasis:names:tc:dita:spec:learning:xsd:learningMap.xsd
DITAVal package for conditional processing
urn:oasis:names:tc:dita:xsd:ditaval.xsd:1.2
urn:oasis:names:tc:dita:xsd:ditaval.xsd:1.x
urn:oasis:names:tc:dita:xsd:ditaval.xsd