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 general entity that specifies the contribution to the @specializations attribute for the attribute domain.

The name of an attribute domain 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.
General entity name and value
The general entity name is the attribute-domain name, followed by the literal -d-Att. The value of the text entity is the @specializations attribute contribution for the module. See The specializations attribute rules and syntax for details on how to construct this value.

Example

This section is non-normative.

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 "@props/deliveryTarget" >