Июн
24
XML. Базовый синтаксис. Основные понятия
Июнь 24, 2007 |
Рассмотрим, что же такое XML, структуру XML документа и синтаксис языка.
XML (eXtensible Markup Language) - расширяемый язык разметки, описываемый стандартом консорциума w3c, обеспечивающий представление структурированной информации с целью ее последующего хранения или передачи, а также выступающий основой при создании специализированных языков разметки.
Рассмотрим пример документа, описывающего коллекцию фильмов
<?xml version="1.0" encoding="UTF-8"?>
<collection>
<film number="1">
<filmName lang="ru">300 спартанцев</filmName>
<year>2006</year>
<file>300.avi</file>
<description><name>Джерард Батлер</name> ("Дракула 2000"),
<name>Доминик Уэст</name> ("Забытое") в исторической
драме Зака Снайдера "300 спартанцев".</description>
</film>
<film number="2">
<filmName lang="ru">Нас не догонишь</filmName>
<year>2006</year>
<file>brrr.avi</file>
<description><name>Светлана Светикова</name>
("Подари мне счастье"), <name>Дмитрий Шевченко</name>
("Бой с тенью") в молодежном триллере Ильи Шиловского
"Нас не догонишь".</description>
</film>
</collection>
Первая строка - XML объявление (XML declaration), в которой указывается информация о используемой версии стандарта. Кроме того, в ней может указываться информация о кодировке документа и информация о наличии внешних зависимостей.
Элементы и атрибуты XML документа
В приведенном примере XML документа:
<filmName lang="ru">300 спартанцев</filmName> – элемент,
filmName – тег,
lang="ru" – атрибут.
Элемент XML документа - данные между начальным и конечным тегами, включая теги.
Тег (tag) XML документа - управляющий маркер, используемый для разметки данных. Указывается в угловых скобках. Может иметь атрибуты.
Выделяют начальный и конечный теги. Начальный тег имеет вид <ElemName>, конечный - </ElemName>, где ElemName - название элемента. данные между начальным и конечным тегом являются содержимым элемента
Как видно из примера, элементы в XML образуют иерархию, соответственно можно говорить об общепринятых отношениях в иерархических структурах. Элемент year по отношению к элементу film является дочерним. Соответственно элемент film является родительским для элемента year. Элемент year по отношению к элементу collection является потомком, элемент collection является предком для элемента year. Элемент, не имеющий родительского элемента, называется корневым элементом. Корневой элемент в XML документе должен быть только один.
Стоит отметить еще несколько особенностей элементов XML документа:
- Название элемента может быть произвольной длинны, содержать буквы, цифры и другие символы. При этом оно не должно содержать пробелов и не может начинаться с цифры или знака препинания.
- Каждый элемент может либо быть пустым, либо иметь содержимое.
- Выделяют три типа содержимого: элементное, простое, смешанное.
- В случае простого содержимого – элемент содержит только текстовые данные (элемент filmName в приведенном примере)
- В случае элементного содержимого – элемент содержит только вложенные элементы (элемент film).
- В случае смешанного содержимого – элемент содержит как текст так и вложенные элементы (элемент description из примера).
- Пустые элементы могут описываться следующими способами:
<example1></example1>или<example2 /> или<example3/> - Элементы могут содержать атрибуты.
Атрибут - пара имя-значение, включающаяся после названия открывающего тега до закрывающей угловой скобки. Содержит информацию, которая не является частью основных данных.
Элемент может иметь несколько атрибутов, но при этом они должны иметь различные названия.
Сущности. Вставка специальных символов
Поскольку часть символов, таких как <, >, ‘, “, & используются для разметки, то использование их в качестве содержимого элементов или значений атрибутов недопустимо. Кроме того, бывает необходимо вставить специальный символ. В XML для этого существует несколько вариантов. Один из них – ссылки на сущности.
Сущность (entity) — это именованные данные.
Ссылка на сущность – синтаксическая конструкция, позволяющая определить в заданном месте документа ссылку на соответствующие данные. Имеет вид &name; где name – имя сущности.
В спецификации XML описано 5 предопределенных сущностей: & (“&”), < (“<”), > (“>”), ' (“’”), " (“””). Кроме того, существует возможность определять собственные сущности.
Для вставки специальных символов можно использовать конструкцию &#XXX; где XXX – код символа в кодовой таблице Юникод.
Подводя итоги
Проанализировав структуру документа и базовый синтаксис, можно отметить следующие особенности формата XML:
- Формат текстовый.
- Содержит данные, размеченные тегами.
- Документ имеет иерархическую структуру.
- Теги могут отражать содержание данных.
- Нет заранее определенного набора тегов.
- Документ частично самодокументируем. Выбор осмысленных названий тегов позволяет понять какие данные в каких элементах содержатся. При этом названия тегов далеко не всегда достаточно для понимания сути документа
Большинство пунктов приводит как к определенным преимуществам так и недостаткам. Но об этом в следующий раз.
Полностью синтаксис XML описывает спецификация XML 1.0 (4–я редакция)(англ), ее перевод на русский (вторая редакция) и спецификация XML 1.1.



