Учебник DTD

Определение типа документа (DTD) может определить законные модули 构建 XML-документа. Оно использует набор законных элементов для определения структуры документа.

DTD может быть заявлена в строках в XML-документе или как внешняя ссылка.

Внутренняя декларация DOCTYPE

Если DTD включен в ваш XML-файл, он должен быть заключен в декларацию DOCTYPE по следующей грамматике:

!DOCTYPE корневой элемент [декларации элементов]>

Пример XML-документа с DTD (откройте в IE5 и более новых версиях, выберите "Просмотр исходного кода"):

<?xml version="1.0"?>
!DOCTYPE note [
  !ELEMENT note (to,from,heading,body)
  !ELEMENT to      (#PCDATA)
  !ELEMENT from    (#PCDATA)
  !ELEMENT heading (#PCDATA)
  !ELEMENT body    (#PCDATA)
]>
<note>
  <to>Джордж</to>
  <from>Джон</from>
  <heading>Памятка</heading>
  <body>Не забудьте встречу!</body>
</note>

Откройте этот XML-файл в вашем браузере и выберите команду "Просмотр исходного кода".

Следующие объяснения DTD:

!DOCTYPE note (строка 2) определение этого документа как note типа документа.

!ELEMENT note (строка 3) определение note Элементы имеют четыре элемента: "to, from, heading, body"

!ELEMENT to (строка 4) определение to Элементы типа "#PCDATA"

!ELEMENT from (строка 5) определение from Элементы типа "#PCDATA"

!ELEMENT heading (строка 6) определение heading Элементы типа "#PCDATA"

!ELEMENT body (строка 7) определение body Элементы типа "#PCDATA"

Декларация внешнего документа

Если DTD находится вне XML-файла, то он должен быть включен в определение DOCTYPE следующим образом:

!DOCTYPE корневой элемент SYSTEM "имя файла">

Этот XML-документ такой же, как и предыдущий, но с внешним DTD: (Откройте в IE5и выберите команду "Просмотр исходного кода".)

<?xml version="1.0"?>
!DOCTYPE note SYSTEM "note.dtd"
<note>
<to>Джордж</to>
<from>Джон</from>
<heading>Памятка</heading>
<body>Не забудьте встречу!</body>
</note>

Это файл "note.dtd", содержащий DTD:

!ELEMENT note (to,from,heading,body)
!ELEMENT to (#PCDATA)
!ELEMENT from (#PCDATA)
!ELEMENT heading (#PCDATA)
!ELEMENT body (#PCDATA)

Почему использовать DTD?

Через DTD каждый ваш файл XML может携带 описание его собственного формата.

Через DTD независимые группы могут一致но использовать стандартный DTD для обмена данными.

А ваше приложение также может использовать стандартный DTD для проверки данных, полученных извне.

Вы также можете использовать DTD для проверки своих данных.