Содержание
- Все XML элементы должны иметь закрывающий тег
- Теги XML регистрозависимы
- XML элементы должны соблюдать корректную вложенность
- У XML документа должен быть корневой элемент
- XML пролог
- Значения XML атрибутов должны заключаться в кавычки
- Сущности
- Комментарии в XML
- В XML пробелы сохраняются
- В XML новая строка сохраняется как LF
- Синтаксически верный XML документ
Правила синтаксиса XML крайне просты и логичны. Их легко запомнить и легко использовать.
Все XML элементы должны иметь закрывающий тег
В HTML некоторые элементы могут не иметь закрывающего тега:
<p>Это параграф. <br>
В XML нельзя опускать закрывающий тег. Абсолютно все элементы должны закрываться:
<p>Это параграф.</p> <br>
Возможно, вы заметили из предыдущих примеров, что 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 документа должен быть корневой элемент
XML документ должен содержать один элемент, который будет родительским для всех других элементов. Он называется корневым элементом.
<корневой> <потомок> <подпотомок>…..</подпотомок> </потомок> </корневой>
XML пролог
Следующая строка называется XML прологом:
<?xml version=»1.0″ encoding=»UTF-8″?>
XML пролог необязателен. Но если он есть, то это должна быть первая строка XML документа.
В XML документе могут присутствовать международные символы, вроде русских букв, и чтобы не возникало ошибок необходимо указать кодировку, либо сохранить XML файл в формате UTF-8.
UTF-8 — кодировка XML документов по умолчанию.
Значения XML атрибутов должны заключаться в кавычки
Так же, как и в HTML, у XML элементов могут быть атрибуты в виде пары имя/значение.
В XML значения атрибутов должны заключаться в кавычки.
Посмотрите на следующие два примера XML документа. Первый с ошибкой, второй написан правильно:
<note date=12/11/2007> <to>Tove</to> <from>Jani</from> </note> <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
Синтаксис комментариев в XML такой же, как и в HTML.
<!— Это комментарий —>
Использование двух символов тире в середине комментария не допустимо.
Неверно:
<!— Это — комментарий —>
Странно, но так можно:
<!— Это — — комментарий —>
В XML пробелы сохраняются
В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.
В XML новая строка сохраняется как LF
В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).
Unix и Mac OSX используют LF.
Старые Mac системы используют CR.
XML сохраняет новую строку как LF.
Синтаксически верный XML документ
Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это «синтаксически верный» XML документ.