A Document Type Definition (DTD or DocType for short) is a declaration in an SGML or XML document that specifies constraints on the structure of the document. It may be included within the document file, but is normally stored in a separate ascii-text file. The syntax of SGML and XML DTDs is very similar but not identical.

Defining a DTD specifies the syntax of an application of SGML or XML, which may be a widely-used standard such as XHTML or a local application.

DTDs are usually employed to determine the structure of an XML or SGML document. A DTD will typically describe each allowable element within the document, the possible attributes and (optionally) the allowed attribute values for each element. Further, it will describe the nesting and occurrences of elements. Most of a DTD is usually composed of ELEMENT definitions and ATTLIST definitions.

Example

An example of a very simple XML DTD to describe a list of persons is given below:






Taking this line by line, it says:
  1. A "people_list" element contains of any number of "person" elements. The "*" denotes there can be 0, 1 or many "person" elements within the "people_list" element.
  2. A "person" element contains the elements "name", "birthdate", "gender" and "socialsecuritynumber". The "?" indicates that an element is optional. The "name" element does not have a "?", so a "person" element must contain a "name" element.
  3. A "name" element contains data
  4. A "birthdate" element contains data
  5. A "gender" element contains data
  6. A "socialsecuritynumber" element contains data

An example of an XML file which makes use of this DTD follows:

Fred Bloggs 27/11/2008 Male

The DTD given above requires a name element within every person element; the people_list element is also mandatory, but the rest are optional.

It is possible to render this in an XML-enabled browser (such as IE5 or Mozilla) by pasting and saving the DTD component above to a text file named example.dtd and the xml file to a differently-named text file, and opening the xml file with the browser. The files should both be saved in the same directory. However, many browsers do not check that an XML document conforms to the rules in the DTD; they are only required to check that the DTD is syntactically correct.

External links

See also: Semantic Web