Декларация типа XML-документа (document type declaration) содержит определение типа документа (document type definition, DTD) или указывает на него. DTD – это специальная грамматика, описывающая синтаксис определенного класса документов. Декларация типа документа, как и декларация раздела, может быть внутренней или внешней. Внутренняя декларация имеет вид:
<!DOCTYPE имя [ тело ]>
а внешняя – те же два варианта, что и внешние разделы:
<!DOCTYPE имя SYSTEM URI [ тело ]>
<!DOCTYPE имя PUBLIC строка? URI [ тело ]>
Таким образом, отличие декларации типа документа от декларации раздела состоит только в том, что:
- она начинается с ключевого слова !DOCTYPE, а не !ENTITY;
- она может иметь тело, заключенное в квадратные скобки.
Имя такой декларации должно совпадать с именем корневого элемента, который она описывает, а тело должно соответствовать правилам построения DTD и будет описано в гл. 8.2. Пока отметим, что оно может содержать декларации разделов. Пример внутренней декларации был приведен в п. 8.1.4.2. Примеры внешних деклараций:
<!DOCTYPE spec SYSTEM "xml/1998/06/xmlspec-v20.dtd">
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.0//EN"
"/XML/1998/06/xmlspec-v20.dtd">
Отметим, что внешняя декларация типа документа может содержать и ссылку на DTD, которая называется внешним подмножеством DTD, и тело, которое описывает дополнения к внешней DTD (оно называется внутренним подмножеством DTD).
ü Пример XML-документа
Чтобы собрать все описанные выше понятия в единое целое, приведем пример законченного XML-документа, содержащего прейскурант книжного магазина.