XML Document Type Definition
The DTD can define the allowed syntax for all documents. For example, the following
is the Open Software Description (OSD) DTD -- this is a proposed standard for
"... describing software packages and their dependencies for heterogeneous clients."
<!ELEMENT ABSTRACT (#PCDATA)>
<!ELEMENT CODEBASE EMPTY>
<!ATTLIST CODEBASE FILENAME CDATA #IMPLIED>
<!ATTLIST CODEBASE HREF CDATA #REQUIRED>
<!ATTLIST CODEBASE SIZE CDATA #IMPLIED>
<!ELEMENT DEPENDENCY (CODEBASE|SOFTPKG)* >
<!ATTLIST DEPENDENCY ACTION (Assert|Install) "Assert">
<!ELEMENT DISKSIZE EMPTY>
<!ATTLIST DISKSIZE VALUE CDATA #REQUIRED>
<!ELEMENT IMPLEMENTATION (CODEBASE | DEPENDENCY | DISKSIZE |
IMPLTYPE | LANGUAGE | OS | PROCESSOR | VM)*>
<!ELEMENT IMPLTYPE EMPTY>
<!ATTLIST IMPLTYPE VALUE CDATA #REQUIRED>
<!ELEMENT LANGUAGE EMPTY>
<!ATTLIST LANGUAGE VALUE CDATA #REQUIRED>
<!ELEMENT LICENSE EMPTY>
<!ATTLIST LICENSE HREF CDATA #REQUIRED>
<!ELEMENT MEMSIZE EMPTY>
<!ATTLIST MEMSIZE VALUE CDATA #REQUIRED>
<!ELEMENT OS (OSVERSION)*>
<!ATTLIST OS VALUE CDATA #REQUIRED>
<!ELEMENT OSVERSION EMPTY>
<!ATTLIST OSVERSION VALUE CDATA #REQUIRED>
<!ELEMENT PROCESSOR EMPTY>
<!ATTLIST PROCESSOR VALUE CDATA #REQUIRED>
<!ELEMENT SOFTPKG (ABSTRACT | IMPLEMENTATION | DEPENDENCY | LICENSE |
TITLE)*>
<!ATTLIST SOFTPKG NAME CDATA #REQUIRED>
<!ATTLIST SOFTPKG VERSION CDATA #IMPLIED>
<!ELEMENT TITLE (#PCDATA) >
<!ELEMENT VM EMPTY>
<!ATTLIST VM VALUE CDATA #REQUIRED>