DTD: Coding requirements for attribute domain modules

The vocabulary modules that define attribute domains have additional coding requirements. The module must include a parameter entity for the new attribute, which can be referenced in document-type shells, as well as a text entity that specifies the contribution to the @domains attribute for the attribute domain.

An attribute domain's name is the name of the attribute plus "Att". For example, for the attribute named "deliveryTarget" the attribute domain name is "deliveryTargetAtt". The attribute domain name is used to construct entity names for the domain.

Parameter entity name and value
The name of the parameter entity is the attribute domain name, followed by the literal "-d-attribute". The value of the parameter entity is a DTD declaration for the attribute.
Text entity name and value
The text entity name is the attribute domain name, followed by the literal -d-Att. The value of the text entity is the @domains attribute contribution for the module; see domains attribute rules and syntax for details on how to construct this value.

Example

The @deliveryTarget attribute can be defined in a vocabulary module using the following two entities.

<!ENTITY % deliveryTargetAtt-d-attribute
  "deliveryTarget  CDATA  #IMPLIED"
>

<!ENTITY deliveryTargetAtt-d-att "a(props deliveryTarget)" >