XML Правила синтаксиса
Правила синтаксиса XML очень просты и логичны.
Эти правила легко изучить и легко применять.
Объявление XML
Объявление XML — необязательная часть файла. Если оно есть, его нужно разместить в первой строке документа, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
В приведенном выше примере содержится версия XML (version="1.0") и даже кодировка символов (encoding="utf-8").
UTF-8 также является кодировкой по умолчанию для HTML5, CSS, JavaScript, PHP и SQL.
XML-документ должен иметь корневой элемент
XML должен содержать корневой элемент, который является родителем всех остальных элементов. Например, в следующем примере root является корневым элементом:
В следующем примере note является корневым элементом:
XML-документы состоят из элементов. Каждый элемент включает открывающий тег, закрывающий тег и содержимое элемента.
Атрибуты
Элементы могут содержать атрибуты. Атрибуты предоставляют дополнительную информацию об элементе.
Атрибуты располагаются в открывающем теге, например:
<person age="30" gender="male">John Doe</person>
Самозакрывающиеся теги XML
Все элементы XML, как правило, имеют закрывающий тег, но также допускается использование самозакрывающихся тегов.
Синтаксис самозакрывающегося тега выглядит следующим образом:
<elementName attribute="value" />
Самозакрывающийся тег — это тег, который содержит как открывающий, так и закрывающий теги в одном теге, по форме похожий на теги пустых элементов в HTML.
В XML самозакрывающийся тег можно выразить следующими двумя способами:
Используя тег пустого элемента:
<exampleTag />
Используя открывающий и закрывающий теги, но без какого-либо содержимого:
<exampleTag></exampleTag>
Эти два представления эквивалентны; вы можете выбрать любое из них в соответствии с личными или проектными соглашениями.
Во многих XML-парсерах обе формы интерпретируются как одна и та же структура.
Пример
<lineBreak />
Здесь<lineBreak />— это самозакрывающийся тег, обозначающий операцию разрыва строки.
Самозакрывающийся тег с атрибутами:
<image src="logo.png.html" alt="Logo" />
Этот тег представляет элемент изображения. Он содержит атрибуты src и alt, которые задают путь к изображению и альтернативный текст.
Пример XML-файла:
Пример
<root>
<note to="Tove" from="Jani" heading="Напоминание" body="Не забудь обо мне в эти выходные!" />
<emptyElement attribute="value" />
</root>
В этом примере,<note>и<emptyElement />оба являются самозакрывающимися тегами.<note>Назначение тега — передавать информацию, и<emptyElement />является пустым тегом без дочерних элементов.
Теги XML чувствительны к регистру
Теги XML чувствительны к регистру. Тег <Letter> отличается от тега <letter>.
Вы должны использовать одинаковый регистр для открывающего и закрывающего тега:
<Message>这是错误的</message> <message>这是正确的</message>
Примечание:Открывающие и закрывающие теги часто называют начальными и конечными тегами. Какую бы терминологию вы ни предпочитали, понятия одни и те же.
XML должен быть правильно вложен
В HTML часто можно увидеть элементы, которые неправильно вложены:
<b><i>This text is bold and italic</b></i>
В XML все элементыдолжныбыть правильно вложены друг в друга:
<b><i>This text is bold and italic</i></b>
В приведённом выше примере правильная вложенность означает: поскольку элемент <i> открывается внутри элемента <b>, он должен быть закрыт внутри элемента <b>.
Значения атрибутов XML должны быть заключены в кавычки
Как и в HTML, элементы XML также могут иметь атрибуты (пары имя/значение).
В 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>
Ошибка в первом документе состоит в том, что атрибут date в элементе note не заключён в кавычки.
Ссылки на сущности
В XML некоторые символы имеют особое значение.
Если вы поместите символ "<" в элемент XML, возникнет ошибка, потому что парсер воспримет его как начало нового элемента.
Это приведёт к ошибке XML:
<message>if salary < 1000 then</message>
Чтобы избежать этой ошибки, используйтессылку на сущностьдля замены символа "<":
<message>if salary < 1000 then</message>
В XML существует 5 предопределённых ссылок на сущности:
| < | < | знак меньше |
| > | > | знак больше |
| & | & | амперсанд |
| ' | ' | апостроф |
| " | " | кавычка |
Примечание:В XML только символы "<" и "&" действительно недопустимы. Знак «больше» допустим, но полезной привычкой является заменять его ссылкой на сущность.
Комментарии в XML
Синтаксис написания комментариев в XML очень похож на синтаксис в HTML.
<!-- This is a comment -->
В XML пробелы сохраняются
HTML схлопывает (объединяет) несколько последовательных пробельных символов в один:
| HTML: | Hello Tove |
| Вывод: | Hello Tove |
В XML пробелы в документе не схлопываются:
<bookstore>
<book>
<title>xx xxx</title>
<author>John Doe</author>
<price>29.99</price>
</book>
</bookstore>
Содержимое title считывается и отображается следующим образом:
xx xxx
XML сохраняет символы новой строки как LF
В приложениях Windows символ новой строки обычно хранится как пара символов: возврат каретки (CR) и перевод строки (LF).
В Unix и Mac OS X для хранения новой строки используется LF.
В старых системах Mac для хранения новой строки используется CR.
XML сохраняет символы новой строки как LF.
Другие расширения