Документы XML обязательно должны быть корректными, дополнительно они могут отвечать требованию валидности. Валидность означает, что документ отвечает определенной структуре заданной в описании шаблона документ DTD (Data Type Definition).
Схема DTD задается таблица в прологе документа. В виде:
<!DOCTYPE name
[
Описание элементов
]>
Здесь name - имя корневого тега.
Описание элементов задается с помощью объявления:
<!ELEMENT Имя описание_содержимого>
Описание содержимого:
EMPTY – пустой элемент, такой элемент не может содержать дочерних тегов;
ANY – любое содержимое, содержание не определено, но элемент может содержать дочерние теги;
(#PCDATA) – символьное содержание.
В качестве описи содержимого могут указываться другие теги, которые вложены в тег:
Тег(дочерние теги).
При описании дочерних структур действуют следующие правила:
Перечисление через запятую – обязательный перечень элементов и порядок элементов.
Использования символа | - выборочная форма, может быть один из дочерних тегов.
Пример. Составим описание для документа с двумя предложениями на русском и английском языке:
<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/css" href="hello.css"?>
<!DOCTYPE TEST[
<!ELEMENT TEST (NODE)>
<!ELEMENT NODE (ENG,RU)>
<!ELEMENT ENG (#PCDATA)>
<!ELEMENT RU (#PCDATA)>
]>
<TEST>
<NODE>
<ENG>Hello World !</ENG>
<RU>Привет МИР !</RU>
</NODE>
</TEST>
Следует иметь в виду, что интерпретатор XML браузера проверяет только корректность документа, проверить валидность можно с помощью специальных программ, либо специальных XML редакторов кода.
При создании DTD для уточнения содержания используются символы, показанные в таблице 2.5.
Таблица 2.5