In a DTD, elements are declared with an ELEMENT declaration.
In a DTD, XML elements are declared with an element declaration with the following syntax:
Empty elements are declared with the category keyword EMPTY:
Elements with only parsed character data are declared with #PCDATA inside parentheses:
Elements declared with the category keyword ANY, can contain any combination of parsable data:
Elements with one or more children are declared with the name of the children elements inside parentheses:
When children are declared in a sequence separated by commas, the children must appear in the same sequence in the document. In a full declaration, the children must also be declared, and the children can also have children. The full declaration of the "note" element is:
The example above declares that the child element "message" must occur once, and only once inside the "note" element.
The + sign in the example above declares that the child element "message" must occur one or more times inside the "note" element.
The * sign in the example above declares that the child element "message" can occur zero or more times inside the "note" element.
The ? sign in the example above declares that the child element "message" can occur zero or one time inside the "note" element.
The example above declares that the "note" element must contain a "to" element, a "from" element, a "header" element, and either a "message" or a "body" element.
The example above declares that the "note" element can contain zero or more occurrences of parsed character data, "to", "from", "header", or "message" elements.