Для проверки правильности документа вы должны иметь стандарт, по которому выполняется проверка. Раньше предполагалось, что задание требований к XML-документам происходит в DTD.
Когда идет речь о DTD, большинство людей лучше знакомо с внешним вариантом, в котором объявление DOCTYPE ссылается на файл, содержащий действующие определения.
Может быть использовано несколько способов для определения местонахождения DTD. Например, файл XHTML может определить DTD, которое определяет, следует ли он рекомендациям XHTML Strict, XHTML Transitional или XHTML Frameset, разработанным W3C. Чтобы определить XHTML Transitional, автор может задать:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Объявление DOCTYPE состоит из нескольких частей:
Для прикладных DTD разработчики обычно используют идентификатор SYSTEM, такой, как:
<!DOCTYPE memories SYSTEM "http://www.nicholaschase.com/memories.dtd">
Части оператора соответствуют таковым для идентификатора PUBLIC, кроме объявления, показывающего местонахождение DTD.
Обычно, однако, объявление DOCTYPE также задает идентификатор SYSTEM при использовании идентификатора PUBLIC на случай, если процессор не распознает последний:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Внешний файл DTD просто содержит определение, начинающиеся с описанного в подразделе . Для внутреннего DTD эти определения являются частью самого XML-файла.