Интернет программирование стр.89

Для подключения внешнего DTD используется конструкция

<!DOCTYPE comclass SYSTEM "http://www.mysite.ru/dtd/comclass.dtd">

В данном случае после указания имени основного класса указывается ключевое слово SYSTEM, при помощи которого мы подгружаем DTD-файл, который находится вне локальной системы. Однако на данный момент уже создано множество общедоступных DTD-файлов, описывающих те или иные объектные модели. Некоторые из них даже являются стандартами ISO. Для применения подобных общедоступных DTD-блоков надо в тэге подключения DTD использовать ключевое слово public. Типичный тэг подключения публичного DTD-блока может выглядеть следующим образом:

<! DOCTYPE map PUBLIC "-//MappingInc//DTDMap"4> "http://www.mapping.com/dtd/map.dtd">

При помощи этой конструкции мы подключаем публичный DTD-блок, объявляющий основной класс тар. После ключевого слова public в двойных кавычках мы записываем полное наименование этого блока. В самом начале полного наименования обозначается стандартизация этого блока. Если данный блок является ISO-стандартом, то записывается префикс iso. Если эта объектная модель не является официальным стандартом, но официально принята международной группой стандартизации, то используется префикс +. Во всех остальных случаях используют префикс как в нашем примере.

После префикса следует отбивка в виде двух слешей, а за ней указывается имя владельца данного DTD-блока и наименование этого блока. В нашем случае имя создателя DTD-блока — Mappinginc, а наименование блока DTDMap.

Затем в двойных кавычках мы записываем URL этого файла.

Объявление элементов

Рассмотрим объявление какого-либо объекта с несколькими различными элементами. Посмотрим, например, как можно создать тип для отображения данных о предприятиях города. Нам надо будет хранить наименование предприятия, его адрес, номер телефона, факса, адрес электронной почты и информацию о деятельности предприятия. Оформить это в DTD можно при помощи следующей конструкции:

<!DOCTYPE firm [

<!ELEMENT firm(name+, address, phone*, fax*, email, info)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT address (#PCDATA)>

<!ELEMENT phone (#PCDATA)>

<!ELEMENT fax (#PCDATA)>

<!ELEMENT email (#PCDATA)>

<!ELEMENT info (#PCDATA)>

]>

Итак, после объявления типа документа в первой строке, мы производим декларирование при помощи ключевого слова element и в скобках указываем состав этого класса, его подтипы. В следующих строках мы объявляем и их при помощи ключевого слова element. В целом все понятно, но при декларировании класса, после указания имен некоторых подклассов мы установили некие модификаторы. Рассмотрим их.

Если требуется, чтобы какой-либо элемент был обязательно использован в каждом экземпляре общего типа, необходимо при декларировании после его имени поставить знак +. Если некий элемент может быть использован в одном экземпляре несколько раз, то после его имени должен быть установ лен идентификатор *. Если же элемент может быть использован один раз или опущен, то после объявления его имени следует указать модификатор ?.


⇐ вернуться назад| |читать дальше ⇒


*