Step 3-3. Declare Domain Usage Text Entity

Declare the domain usage declaration text entity, which is named "modulename-d-att":
<!-- ====================================================
     XML Construct Domain Module
     Author: your name here

     Copyright (c) 2010 copyright holder
     license to use or not use or whatever
     ==================================================== -->

<!ENTITY % xml-d-keyword
  "xmlelem | 
   xmlatt | 
   textent | 
   parment |
<!ENTITY   xml-d-att     "(topic xml-d)"
Common Error: Do not accidently declare the domains attribute contribution entity as a parameter entity. That is, you want this:
<!ENTITY xml-d-att ...
not this:
<!ENTITY % xml-d-att

The " % " indicates a parameter entity and for the domains attribute contribution you want a text entity.

The keyword topic indicates that this is a topic domain rather than a map domain. The value "xml-d" is the name of this module, the "-d" indicating that it is a domain module and not a topic module.

Note however that this domain specializes exclusively from an element type allowed in both maps and topics (<keyword>), so even though this is a topic domain it may be used with maps as well as topics.

With the xmlDomain.mod and xmlDomain.ent files you now have a complete module declaration set ready to be integrated with any shell DTDs that need to use it.