This section describes the syntax for the four types of defining statements available for authoring document type definitions (DTDs).
Declares a list of XML attributes. These attributes are qualified by name, data type, implied default values, and the name of any elements that permit their use.
Declares an XML element type name and its valid sub-elements ("children").
Declares special character references, text macros (much like a C/C++ #define statement), and other repetitive content from external sources (like a C/C++ #include statement).
Declares external non-XML content (for example, binary image data), and the external application that handles that content.