- In RELAX NG:
- a pattern is defined called classname.attributes,
which is used in the definition of a pattern
elementName.attributes for each element which is a
member of the class
- a pattern called
classname.attributes.attributeName is also defined for
each attribute defined by the class, and used in its definition
- In DTD:
- a parameter entity called % classname.attributes is defined
for each attribute class, and referenced by the ATTLIST declaration
for each element which is a member of the class
- the value of this parameter entity provides declarations for all
the attributes defined by the class
- For some classes, the full definition will depend on which modules are
included in a schema: this is handled deviously in DTDs by multiple
declarations which must be given in the correct order