Structural module coding requirements

Darwin Information Typing Architecture (DITA) Version 1.2

A structural vocabulary module defines a new topic or map type as a specialization of a base topic or map type. The purpose is usually to enhance the user's interaction by adapting the topic or map type to its particular purposes.

A structural type module must conform to the following coding requirements in addition to the general module coding requirements:

Default included domains entity

The module must define the included-domains entity with a default value, as in the following example:
<!ENTITY included-domains "">

A document type shell can predefine the included-domains entity to list domains to be added to the document type.

Structural vocabulary modules may require the use of specific domains. In that case, the default value of the included-domains entity must include the appropriate domain use declaration, for example:
<!ENTITY included-domains "(topic myDomain)">

The list of included domains must declare the domains from most generic (on the left) to most specialized, current domain (on the right). See Domain usage declaration (the @domains attribute).

Topic and map element attributes

The topic or map element type must set the @DITAArchVersion attribute to the DITAArchVersion entity and the @domains attribute to the included-domains entity. These attributes give processors a reliable way to check the architecture version and look up the list of domains available in the document type.

<!ATTLIST concept    
  %concept.attributes;
  %arch-atts;
  domains 
    CDATA 
       "&included-domains;"
>