Веб Дизайн - статьи

         

ПРОВОЗГЛАШЕНИЕ СТРУКТУРЫ ДОКУМЕНТА


Хорошо, хорошо, я признаю: переходя к использованию XML в качестве промежуточного программного обеспечения, я пропустил один важный шаг. Если теги и элементы XML используются исключительно ради удобства на вашем собственном узле Web (как если бы вы использовали CSS), то не имеет никакого значения, что вы даете этим элементам и тегам имена, смысл которых отличается от стандартного и известен только вам. Если же, с другой стороны, вы хотите предоставлять данные внешнему миру и получать информацию от партнеров по бизнесу, то это обстоятельство приобретает огромное значение. Элементы и атрибуты должны употребляться вами точно так же, как и всеми остальными людьми, или по крайней мере вы должны документировать то, что делаете.

Для этого вам придется использовать определения типов документов (Document Type Definition, DTD). Хранимые в начале файла XML или внешним образом в виде файла *.DTD, эти определения описывают информационную структуру документа. DTD перечисляют возможные имена элементов, определяют имеющиеся атрибуты для каждого типа элементов и описывают сочетаемость одних элементов с другими.

Каждая строка в определении типа документа может содержать декларацию типа элемента, именовать элемент и определять тип данных, которые элемент может содержать. Она имеет следующий вид

<!ELEMENT имя_элемента (тип_данных)>

Например, декларация определяет элемент с именем publication, содержащий символьные данные (т. е. текст). Декларация определяет элемент с именем special_report, содержащий подэлементы article_1, article_2 и article_3 в указанном порядке, например:

<special_report> <article_1>XML: время пришло</article_1> <article_2>XML превосходит самое себя</article_2> <article_3>Управление сетями и системами с помощью XML</article_3> </special_report>

После определения элементов DTD могут также определять атрибуты с помощью команды !ATTLIST. Она указывает элемент, именует связанный с ним атрибут и затем описывает его допустимые значения.


Например, следующая команда устанавливает соответствие между атрибутом manufacturer и элементом car, причем первый из них может принимать одно из указанных значений: <!ATTLIST car manufacturer (AudiлVolvoлVolkswagen)>

!ATTLIST позволяет управлять атрибутами и многими другими способами: задавать значения по умолчанию, подавлять пробелы и т. д. DTD могут также содержать декларации !ENTITY, где определяются ссылки на объекты, а также декларации !NOTATION, указывающие, что делать с двоичными файлами не в формате XML.

Серьезное и несколько удивительное ограничение DTD состоит в том, что они не допускают типизации данных, т. е. ограничивают данные конкретным форматом (таким, как дата, целое число или число с плавающей точкой). Как вы, вероятно, уже заметили, DTD используют иной синтаксис, нежели XML, и не очень-то интуитивно понятны. По названным причинам DTD будут, видимо, заменены на более мощные и простые в использовании схемы XML, работа над которыми ведется в настоящее время. Дополнительную информацию о схемах XML можно почерпнуть из рабочего проекта, ссылка на который приведена в Таблице, и из врезки «Что в имени твоем?».

Возможно, вам приходилось слышать определения «правильно составленный» (well-formed) и «действительный» (valid) применительно к документам XML. Документ является правильно составленным, если для каждого открывающего тега имеется соответствующий закрывающий тег, а накладывающиеся теги отсутствуют. (Таким образом, большая часть документов HTML составлена неправильно.) Документ является действительным, если он содержит DTD и соответствует его правилам.


Содержание раздела