A document type shell integrates one or more topic type or map type modules, zero or more domain modules, and zero or more constraint modules. A DTD document type shell is organized into sections, where each section contains a specific type of declaration.
.ent file
for the top-level topic or map type the shell is configuring.
<!-- ============================================================= --> <!-- TOPIC ENTITY DECLARATIONS --> <!-- ============================================================= -->
<!-- ============================================================= --> <!-- MAP ENTITY DECLARATIONS --> <!-- ============================================================= -->
.ent file for the topic or map module where the entity
is named %typename-dec. For
example:<!ENTITY % concept-dec
PUBLIC "-//OASIS//ENTITIES DITA 1.2 Concept//EN"
"concept.ent"
>%concept-dec;<!-- ============================================================= --> <!-- DOMAIN ENTITY DECLARATIONS --> <!-- ============================================================= -->
dec suffix. In the following example, the
entity file for the highlight domain is included in the document type shell:
<!ENTITY % hi-d-dec PUBLIC
"-//OASIS//ENTITIES DITA Highlight Domain//EN"
"highlightDomain.ent"
>%hi-d-dec;
<!-- ============================================================= --> <!-- DOMAIN ATTRIBUTE DECLARATIONS --> <!-- ============================================================= -->
ent suffix. In the following example, the
entity file for a new attribute domain is included in the document type shell:
<!ENTITY % newAtt-d-dec PUBLIC
"-//My Company//ENTITIES New Attribute Domain//EN"
"newAttDomain.ent"
>%newAtt-d-dec;
<!-- ============================================================= --> <!-- DOMAIN EXTENSIONS --> <!-- ============================================================= -->
<!ENTITY % pre
"pre |
%pr-d-pre; |
%sw-d-pre; |
%ui-d-pre;">
<!ENTITY % pre
"%pr-d-pre; |
%sw-d-pre; |
%ui-d-pre;">
NoteOmitting base types from domain extensions constitutes a form of constraint. The
constraint must be represented by a constraint module that declares
the @domains attribute declaration for the constraint. For the omission of <pre> in
the preceding example the constraint might be called "noBasePre-c" and would be declared
in a file named "noBasePreConstraint.mod", containing the following declarations:
<!ENTITY noBasePre-c-pre "%pr-d-pre; | %sw-d-pre; | %ui-d-pre;"> <!ENTITY noBasePre-c-att "(topic noBasePre-c)" > <!ENTITY % pre “%noBasePre-c-pre ;“> |
<!-- ============================================================= --> <!-- DOMAIN ATTRIBUTE EXTENSIONS --> <!-- ============================================================= -->
<!ENTITY % props-attribute-extensions "" > <!ENTITY % base-attribute-extensions "" >
<!ENTITY % props-attribute-extensions
"%newAtt-d-attribute;
%othernewAtt-d-attribute;">
<!ENTITY % base-attribute-extensions
"%newfrombaseAtt-d-attribute;
%othernewfrombaseAtt-d-attribute;">
<!-- ============================================================= --> <!-- TOPIC NESTING OVERRIDES --> <!-- ============================================================= -->
topictype-info-types entity. The definition is
usually an OR list of topic types that can be nested in the corresponding parent topic
type. Use the literal root element name of each topic, not the corresponding element
entity, as in the following example:
<!ENTITY % concept-info-types "concept | myTopicType">
info-types entity, for example:
<!ENTITY % info-types "concept | myTopicType">
<!-- ============================================================= --> <!-- DOMAINS ATTRIBUTE OVERRIDE --> <!-- ============================================================= -->
included-domains entity to list the domains for specializations that
are included in the document type, as well as any constraint modules, as in the
following example:
<!ENTITY included-domains
"&hi-d-att;
&ut-d-att;
&ui-d-att;
&pr-d-att;
&sw-d-att;
&newAtt-d-att;
&noBasePre-c-ph;
"
>
<!-- ============================================================= --> <!-- CONTENT CONSTRAINT INTEGRATION --> <!-- ============================================================= -->
.mod file
and immediately reference the entity. The entity name for the constraint declaration
consists of the constraint module name plus the -c-mod suffix. For
example, this constraint inclusion for the task topic type constrains the DITA 1.2
relaxed task content model to match the more constrained DITA 1.1 task content
model:<!ENTITY % strictTaskbody-c-def PUBLIC "-//OASIS//ELEMENTS DITA 1.2 Strict Taskbody Constraint//EN" "strictTaskbodyConstraint.mod" >%strictTaskbody-c-def;
.mod) files for each topic or map type integrated into the
shell. For topic shells, this section should use the
comment:<!-- ============================================================= --> <!-- TOPIC ELEMENT INTEGRATION --> <!-- ============================================================= -->
<!-- ============================================================= --> <!-- MAP ELEMENT INTEGRATION --> <!-- ============================================================= -->
.mod file. The entity name consists of the
name of the structural type plus a -type suffix. For example:
<!ENTITY % topic-type PUBLIC
"-//OASIS//ELEMENTS DITA Topic//EN"
"topic.mod"
>%topic-type;
<!-- ============================================================= --> <!-- DOMAIN ELEMENT INTEGRATION --> <!-- ============================================================= -->
.mod). The entity name consists of
the domain name plus a -def suffix. For example:
<!ENTITY % hi-d-def PUBLIC
"-//OASIS//ELEMENTS DITA Highlight Domain//EN"
"highlightDomain.mod"
>%hi-d-def;