В этих двух положениях и есть смысл XML (англ. extensible Mark-up Language, расширяемый язык разметки) — отделять данные от представления и создавать в текстовом виде документы со структурой, указанной явным образом.
Синтаксически в XML, по сравнению с HTML, нет ничего нового. Это такой же текст, размеченный тегами, но с той лишь разницей, что в HTML существует ограниченный набор тегов, которые можно использовать в документах, в то время как XML позволяет создавать и использовать любую разметку, которая только может понадобиться для подробного описания данных.
Несомненным достоинством XML является также и то, что это чрезвычайно простой язык. Основных конструкций в XML очень мало, но, несмотря на это, с их помощью можно создавать разметку документов практически любой сложности.
Для того чтобы познакомиться с устройством XML-документов, рассмотрим простой пример:
Покупайте наших слонов!
Первая строка документа определяет его как XML-документ, построенный в соответствии с первой версией языка. Следующая строка содержит открывающий тег . Далее находится открывающий тег , который имеет атрибут title
со значением "Слон"
. Четвертая строка в документе — рекламный лозунг "Покупайте наших слонов!"
. Затем следует закрывающий тег и, наконец, закрывающий тег .
XML использует ту же теговую разметку, что и HTML, но при этом теги в XML не просто ограничивают часть текста документа — они выделяют в документе один элемент . В предыдущем примере документ имел два элемента — advert
:
Покупайте наших слонов!
и product
:
Покупайте наших слонов!
Как видно, элемент product
включен в элемент advert
. Точно так же, как в HTML одни теги могли находиться внутри других тегов, в XML элементы могут содержать другие элементы, а также иметь атрибуты и содержать текст. В следующем разделе мы подробно рассмотрим основные конструкции XML, которые понадобятся нам в дальнейшем.
Помимо элементов, атрибутов и текста, документы могут также содержать другие конструкции, такие как комментарии, инструкции по обработке и секции символьных данных. Эти базовые составляющие используются для того, чтобы гибко, но в четком соответствии со стандартом, размечать документы любой сложности. Далее мы подробно разберем каждую из основных конструкций XML-документа.
Теги в XML-документе не просто размечают текст — они выделяют объект, который и называется элементом . Элементы являются основными структурными единицами XML — именно они иерархически организуют информацию, содержащуюся в документе.
Элементы могут быть пустыми, то есть не содержать ни данных, ни других конструкций, либо непустыми — включать в себя текст, другие элементы и т.п.
Пустой элемент имеет следующий вид:
< имя атрибут1 =" значение1 " атрибут2 =" значение2 " и т.д. />
Примеры
Непустые элементы имеют вид:
< имя атрибут1 =" значение1 " атрибут2 =" значение2 " и т.д. >
...
содержимое элемента
...
</ имя >
Пример
sometext
И в том, и в другом случае, имя задает имя элемента, а конструкции вида атрибутX =" значениеХ "
— определяют значения его атрибутов. Имена в XML являются регистро-зависимыми, то есть имена MyElement
, myelement
и MYELEMENT
различаются. Кроме того, имена в XML могут принадлежать различным пространствам имен , о которых мы поговорим чуть позже.
Элементы являются основной конструкцией языка XML. Организуя содержимое в элементах, можно явно выделить иерархическую структуру документа. Легко заметить, что документ, состоящий из вложенных друг в друга элементов, устроен подобно дереву: родительский элемент является корнем, в то время как дочерние элементы, которые включаются в него, являются ветками, а если они не содержат ничего более, то и листьями. Следующий пример (рис. 1.1) иллюстрирует эту концепцию.
Рис. 1.1. Документ и соответствующее ему дерево элементов
Очень важно понять, что XML-документ логически организован в виде дерева. Дерево является довольно простой структурой для обработки, но при этом выразительная сложность его весьма велика. Древовидная структура является одной из наиболее подходящих абстракций для описания объектов и отношений в реальном мире — возможно именно древовидное устройство наряду с простотой использования обеспечили XML такой потрясающий успех.
Читать дальше