Правила синтаксиса XML крайне просты и логичны. Их легко запомнить и легко использовать.
У XML документа должен быть корневой элемент
XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.
<корневой>
<потомок>
<подпотомок>.....</подпотомок>
</потомок>
</корневой>
В следующем примере корневым является элемент <note>:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Напоминание</heading>
<body>Не забудь обо мне в эти выходные!</body>
</note>
XML пролог
Следующая строка называется XML прологом:
<?xml version="1.0" encoding="UTF-8"?>
XML пролог необязателен. Но если он есть, то это должна быть первая строка XML документа.
В XML документе могут присутствовать международные символы, вроде русских букв, и чтобы не возникало ошибок необходимо указать кодировку, либо сохранить XML файл в формате UTF-8.
UTF-8 - кодировка XML документов по умолчанию.
Все XML элементы должны иметь закрывающий тег
В HTML некоторые элементы могут не иметь закрывающего тега:
<p>Это параграф.
<br>
В XML нельзя опускать закрывающий тег. Абсолютно все элементы должны закрываться:
<p>Это параграф.</p>
<br>
Возможно, вы заметили из предыдущих примеров, что у XML пролога нет закрывающего тега. Это не ошибка. Дело в том, что декларация (а XML пролог это декларация) не относится к XML документу, поэтому у нее и нет закрывающего тега.
Теги XML регистрозависимы
Теги XML являются регистрозависимыми. Так, тег <Letter> не то же самое, что тег <letter>.
Открывающий и закрывающий теги должны определяться в одном регистре:
<Message>Это неправильно</message>
<message>Это правильно</message>
"Открывающий и закрывающий теги" иногда еще называют "начальный и конечный теги". Используйте то определение, которое вам более симпатично. По сути это одно и то же.
XML элементы должны соблюдать корректную вложенность
В HTML иногда можно наблюдать такую картину:
<b><i>Это жирный и курсивный текст</b></i>
и иногда это даже работает должным образом.
В XML все элементы обязаны соблюдать корректную вложенность:
<b><i>Это жирный и курсивный текст</i></b>
Понятие "корректная вложенность" по отношению к приведенным примерам просто означает, что так как элемент <i> открывается внутри элемента <b>, то и закрываться он должен внутри элемента <b>.
Значения XML атрибутов должны заключаться в кавычки
Так же, как и в HTML, у XML элементов могут быть атрибуты в виде пары имя/значение
.
В XML значения атрибутов должны заключаться в кавычки.
Посмотрите на следующие два примера XML документа. Первый с ошибкой, второй написан правильно.
Пример 1
<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>
Пример 2
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
Ошибка в первом XML документе заключается в том, что значение атрибута date
элемента <note>
не заключено в кавычки.
Сущности
Некоторые символы в XML имеют особые значения.
Если вы поместите, например, символ "<" внутри XML элемента, то будет сгенерирована ошибка, так как парсер интерпретирует его, как начало нового элемента.
Так, к ошибке приведет следующая строка XML документа:
<message>если жалование < 1000</message>
Чтобы такая ошибка не возникала, нужно заменить символ "<" на его сущность:
<message>если жалование < 1000</message>
В XML существует 5 предопределенных сущностей:
Сущность | Символ | Значение |
---|---|---|
< | < | меньше, чем |
> | > | больше, чем |
& | & | амперсанд |
' | ' | апостроф |
" | " | кавычки |
Комментарии в XML
Синтаксис комментариев в XML такой же, как и в HTML.
<!-- Это комментарий -->
Использование двух символов тире в середине комментария не допустимо.
Неверно:
<!-- Это -- комментарий -->
Странно, но так можно:
<!-- Это - - комментарий -->
В XML пробелы сохраняются
В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.
В XML новая строка сохраняется как LF
В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).
Unix и Mac OSX используют LF.
Старые Mac системы используют CR.
XML сохраняет новую строку как LF.
Синтаксически верный XML документ
Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это "синтаксически верный" XML документ.