Уровни соответствия
Если в SGML каждый документ обязан иметь свое DTD, а у HTML есть одно DTD на всех, то XML представляет собой компромисс: документ может иметь (или ссылаться на) DTD, а может и обходиться без DTD. В последнем случае каждый новый тег и атрибут определяются самим фактом своего употребления. Таким образом, для XML-документов существует два уровня соответствия стандарту: документы, не имеющие DTD, но удовлетворяющие всем другим требованиям синтаксиса XML, называют правильно структурированными (well-formed), чтобы отличить их от документов валидных (valid), имеющих в своем составе DTD (или ссылку на внешнее DTD).
Правильно структурированные документы, хотя и уступают по «правильности» документам валидным, годятся для большинства практических случаев. Это значит, что вы можете сразу же начать описывать структуру вашего документа на «почти человеческом» языке, выдумывая теги на ходу и заботясь лишь об их правильной вложенности:
<ПРЕДЛОЖЕНИЕ>
<ПОДЛЕЖАЩЕЕ>
<СУЩЕСТВИТЕЛЬНОЕ> мама </СУЩЕСТВИТЕЛЫЮЕ>
</ПОДЛЕЖАЩЕЕ>
<СКАЗУЕМОЕ тип="простое"> <ГЛАГОЛ> мыла </ГЛАГОЛ>
</СКАЗУЕМОЕ>
<ДОПОЛНЕНИЕ тип="прямое">
<СУЩЕСТВИТЕЛЬНОЕ> раму </СУЩЕСТВИТЕЛЬНОЕ>
</ДОПОЛНЕНИЕ> </ПРЕДЛОЖЕНИЕ>
Как видно из этого примера, имена тегов и атрибутов можно писать и по-русски. Опыт HTML показал, сколь важна тщательная и своевременная интернационализация всех аспектов языка, претендующего на какую-то роль в Интернете. Поэтому создатели XML позаботились, в частности, о том, чтобы в именах тегов и атрибутов можно было пользоваться не только латинскими буквами, но и кириллицей, иероглифами и вообще любыми символами из репертуара Unicode, которые считаются «буквами» хотя бы в одном языке или системе письменности. Такая разметка позволит интерпретатору XML порубить документ на кусочки в соответствии с его теговой структурой. После этого в действие вступает другое приложение — его задачей может быть, например, автоматическое индексирование документа, занесение его в базу данных
или (чаше всего) форматирование в соответствии с приложенной к документу стилевой спецификацией. (В нашем примере можно было бы, скажем, раскрасить разные части речи разными цветами.) Однако важно понимать, что все эти задачи лежат уже за пределами собственно языка XML, — который, таким образом, свободен от заботы о визуальном (или каком-либо ином) представлении документа и позволяет сфокусироваться на его логической структуре.