DTD coding requirements This section explains how to implement DTD based document-type shells, specializations, and constraints. DTD: Overview of coding requirements DITA coding practices for DTDs rely heavily on entities to implement specialization and constrraints. As such, an understanding of entities is critical when working with DTD document-type shells, vocabulary modules, or constraint modules. DTD: Coding requirements for document-type shells A DTD-based document-type shell is organized into sections; each section contains entity declarations that follow specific coding rules. DTD: Coding requirements for element type declarations This topic covers general coding requirements for defining element types in both structural and element-domain vocabulary modules. In addition, it covers how to create the @domains attribute contribution for these modules. DTD: Coding requirements for structural modules A structural vocabulary module defines a new topic or map type as a specialization of a topic or map type. DTD: Coding requirements for element domain modules The vocabulary modules that define element domains have an additional coding requirement. The entity declaration file must include a parameter entity for each element that the domain extends. 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. DTD: Coding requirements for constraint modules A structural constraint module defines the constraints for a map or topic element type. A domain constraint module defines the constraints for an element or attribute domain. Parent topic: Coding practices for DITA grammar files