Example: Aggregating constraint and expansion modules using DTDs

This section is non-normative.

The DITA architect wants to add some extension modules to the document-type shell for topic. The document-type shell already integrates a number of constraint modules.

The following table lists the constraints that are currently integrated into the document-type shell:

File name What it constrains Details
example-TopicConstraint.mod <topic>
  • Removes <abstract>
  • Makes <shortdesc> required
  • Removes <related-links>
  • Disallows topic nesting
example-SectionConstraint.mod <section>
  • Makes <title> required
  • Reduces the content model of <section> to a smaller subset
example-HighlightingDomainConstraint.mod Highlighting domain Reduces the highlighting domain elements to <b> and <i>

The following table lists the expansion modules that the DITA architect wants to add to the document-type shell:

File name What it modifies Details
acme-SectionExpansion.mod <section> Adds an optional <sectionDesc> element to <section>.
example-dlentryModeAttExpansion.ent <dlentry> Adds @dlentryMode to the attributes of <dlentry>.

The constraint and expansion modules that target the <section> element must be combined into a single element-configuration module. An element can only be targeted by a single element-configuration module.