Attribute domain module coding requirements

Darwin Information Typing Architecture (DITA) Version 1.2

An attribute domain vocabulary module declares a new attribute specialized from either the @props or @base attribute. An attribute domain module defines exactly one new attribute type.

An attribute domain's name is the name of the attribute plus "Att" to distinguish the domain attribute from any element domains with the same name. For example, for an attribute named "new" the attribute domain name would be "newAtt". The attribute domain name is used to construct filenames and entity names for the domain.

An attribute domain must consist of one file, whose name consists of the module name plus Domain plus the ent extension. For example: newAttDomain.ent for an attribute named "new".

The file must have two parts:
Attribute extension entity

The attribute declaration is in an entity. This entity can then be used in document type shells to add the new attribute. The attribute declaration entity name consists of the attribute name plus "-d-attribute". For example:

<!ENTITY % newAtt-d-attribute "new   CDATA #IMPLIED">

For an attribute named "new".

Domain declaration entity

The attribute domain is declared in @domains attribute values through a general text entity that contains the attribute domain's domain declaration fragment. The entity name consists of the module name plus "-d-att". For example, "newAtt-d-att" for an attribute named "new". See Domain usage declaration (the @domains attribute) for details on attribute domain @domains values.

For example:

<!ENTITY newAtt-d-att       "a(props new)"  >

Attribute domains do not have domain module declaration (.mod) files.