Декларация типа документа

Декларация типа 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-документа, содержащего прейскурант книжного магазина.