In this scenario, an information architect for Acme, Incorporated wants to redefine the content model for the topic document type. She wants to omit the abstract element and make the shortdesc element required; she also wants to omit the related-links element and disallow topic nesting.
- She creates a .mod file using the following naming conventions: qualiferTagnameConstraint.mod, where qualifer is a string the describes the constraint, and Tagname is the element type name with an initial capital. Her contraint module is named acme-TopicConstraint.mod.
- She adds the following content to
acme-TopicConstraint.mod:
<!-- ============================================================= --> <!-- CONSTRAINED TOPIC ENTITIES --> <!-- ============================================================= --> <!-- Declares the entity for the constraint module and defines --> <!-- its contribution to the @domains attribute. --> <!ENTITY topic-constraints "(topic basic-Topic-c)" > <!-- Declares the entities referenced in the constrained content --> <!-- model. --> <!ENTITY % title "title"> <!ENTITY % titlealts "titlealts"> <!ENTITY % shortdesc "shortdesc"> <!ENTITY % prolog "prolog"> <!ENTITY % body "body"> <!-- Defines the constrained content model for <topic>. --> <!ENTITY % topic.content "((%title;), (%titlealts;)?, (%shortdesc;), (%prolog;)?, (%body;)?)" >
- She then integrates the constraint module into her document-type shell for topic by
adding the following section above the "TOPIC ELEMENT INTEGRATION"
comment:
<!-- ============================================================= --> <!-- CONTENT CONSTRAINT INTEGRATION --> <!-- ============================================================= --> <!ENTITY % topic-constraints-c-def PUBLIC "-//ACME//ELEMENTS DITA Topic Constraint//EN" "acme-TopicConstraint.mod"> %topic-constraints-c-def;
- She then adds the constraint to the list of domains and constraints that need to be
included in the value of the domains attribute for
topic:
<!-- ============================================================= --> <!-- DOMAINS ATTRIBUTE OVERRIDE --> <!-- ============================================================= --> <!ENTITY included-domains "&hi-d-att; &ut-d-att; &indexing-d-att; &topic-constraints; " >
- After updating the catalog.xml file to include the new constraints file, her work is done.