XML is a descendant of the Standardized General Markup Language (SGML) and, as such, is a cousin to HTML.
XML documents consist of several components . Not only are there tags that delimit data components, there are also constructs that define the structure of the document.
Document Type Definitions (DTDs) are constructs that are used to confirm the validity of the XML document. They accomplish this by ensuring that the document's structure confirms to the DTD definitions.
DTDs have several problems, not the least of which are complexity and very limited type-checking capabilities.
The W3C committee has proposed a replacement for DTDs, the XML Schema Definition Language.
XML schema is, in essence, a language of its own that not only describes the structure of an XML document but also defines the type of each element contained in the document. The two basic types, complexType and simpleType , are used to define 99 percent of the elements of a schema document.
Although many of the problems presented by DTDs are solved by schema, they definitely do not solve the problem of complexity. Writing a schema document can be a daunting process, but if you break it down into individual components and proceed in a step-by-step approach, the process will be eased.