в том, что называется объявлением
Смысл тега определяется в том, что называется объявлением типа документа (document type declaration - DTD). Это тело кода, определяющее теги через набор элементов. DTD для предыдущего примера выглядит примерно так:
<!DOCTYPE product [
<!ELEMENT PRODUCT (product_id,
product_name, unit_of_measure?, specification*)>
<!ELEMENT product_id (#PCDATA)>
<!ELEMENT product_name (#PCDATA)>
<!ELEMENT unit_of-measure (#PCDATA)>
<!ELEMENT specification (variable, value>>
<!ELEMENT variable (#PCDATA)>
<!ELEMENT value (#PCDATA)>
]
DTD для XML-документа может быть либо частью документа, либо внешним файлом. Если это внешний файл, то все равно оператор DOCTYPE должен присутствовать в документе с аргументом SYSTEM -filename-, где -filename- является именем файлаЮ содержащего DTD. Например, если бы приведенное выше DTD содержалось во внешнем файле с именем xxx.dtd, то оператор DOCTYPE должен был бы иметь вид
<!DOCTYPE product SYSTEM xxx.dtd>
Такая же строка должна быть первой строкой файла xxx.dtd.
Определение элемента product включает список других элементов, в данном случае, product_id, product_name, unit_of_measure и specification. Знак после unit_of_measure означает, что может иметься или не иметься одно вхождение; это необязательный элемент. Знак "*" после specification означает, что элемент является необязательным, но допускается одно или большее число вхождений. Если после какого-то элемента списка присутствует знак "+", то это означает обязательность элемента, а также то, что допускатся более одного вхождения.
В свою очередь, каждый из элементов списка должен быть определен в одной из следующих строк. #PCDATA означает, что тег будет содержать тег, который может быть разобран браузером. Элемент specification уточняется через определения элементов variable и value.
Содержание Назад Вперед