Правила написания XML являются в равной степени простыми и строгими, что делает как ручное составление XML документов, так и написание программ, умеющих анализировать и генерировать XML документы, достаточно несложными задачами. Помимо этого, правильно написанный документ в этом формате говорит сам за себя - прочитав его не трудно понять о чем речь.
В этой записи я планирую перечислить и объяснить все 9 правил, с использованием примеров.
В качестве примера будет использован следующий XML документ, описывающий книгу:
<?xml version="1.0" encoding="UTF-8" ?>
<book>
<title subtitle="The Dark Elf Trilogy">Sojourn</title>
<author>R. A. Salvatore</author>
<chapter>Well met</chapter>
</book>
Не правда ли легко понять, что речь идет именно о книге?
Теперь самое подходящее время перейти непосредственно к правилам оформления документов.
- Документ должен начинаться с определения типа документа, содержащее указание версии XML (в нашем случае - 1.0) и кодировку символов (соответственно - UTF-8)
- Должен содержать ровно один корневой элемент - в нашем пимере это
<book></book>
- Каждому открывающему тэгу должен соответствовать один закрывающий. Как не трудно заметить это правило соблюдается в примере, если Вы привыкли в HTML оставлять тэги открытыми примерно следующим образом:
<p>Какой-то текст
, то изучение XML может стать неплохим поводом отучиться от этой вредной привычки. - XML тэги чувствительны к регистру символов. Тэги
<Book>
и<book>
считаются разными, запись<Book></book>
будет считаться ошибочной. Тэги должны быть расположены строго друг внутри друга. Продемонстрирую на отдельном примере:
<foo>ВЕ<bar>РНО</bar></foo>
, а так<foo>НЕВЕ<bar>РНО</foo></bar>
.Значения всех атрибутов всегда должны быть заключены в кавычки. Например:
<title subtitle="The Dark Elf Trilogy">Sojourn</title>
- верно, а<title subtitle=The Dark Elf Trilogy>Sojourn</title>
- нет.- Последовательно расположенные пробелы не объединяются в один. Имейте это ввиду, если вы привыкли к HTML.
- Конец строки обозначается просто переводом на новою строку, без возврата каретки. Во многих приложениях для обозначения конца строки используется возврат каретки совместно с переводом на новую строку (
/r/n
), в XML же принято для этих целей использовать просто перевод на новую строку (/n
). - Комментарии обозначаются так же как и в HTML:
<!--комментарий-->
Как Вы могли уже убедиться этот формат оформления данных представляет собой всего лишь текст, разбавленный некоторым количеством тэгов и следующий простым правилам. Не стоит ожидать от него чего-то большего.