Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

XML снаружи и изнутри

Несомненным достоинством XML является также и то, что это чрезвычайно простой язык. Основных конструкций в XML очень мало, но, несмотря на это, с их помощью можно создавать разметку документов практически любой сложности.

Для того чтобы познакомиться с устройством XML-документов, рассмотрим простой пример:

<?xml version="1.0"?>

<advert>

 <product title="Слон">

Покупайте наших слонов!

 </product>

</advert>

Первая

строка документа определяет его как XML-документ, построенный в соответствии с первой версией языка. Следующая строка содержит открывающий тег
<advert>
. Далее находится открывающий тег
<product>
, который имеет атрибут
title
со значением
"Слон"
. Четвертая строка в документе — рекламный лозунг
"Покупайте наших слонов!"
. Затем следует закрывающий тег
</product>
и, наконец, закрывающий тег
</advert>
.

XML использует ту же теговую разметку, что и HTML, но при этом теги в XML не просто ограничивают часть текста документа — они выделяют в документе один элемент. В предыдущем примере документ имел два элемента —

advert
:

<advert>

 <product title="Слон">

Покупайте наших слонов!

 </product>

</advert>

и

product
:

<product title="Слон">

 Покупайте наших слонов!

</product>

Как видно, элемент

product
включен в элемент
advert
. Точно так же, как в HTML одни теги могли находиться внутри других тегов, в XML элементы могут содержать другие элементы, а также иметь атрибуты и содержать текст. В следующем разделе мы подробно рассмотрим основные конструкции XML, которые понадобятся нам в дальнейшем.

Конструкции XML

Помимо элементов, атрибутов и текста, документы могут также содержать другие конструкции, такие как комментарии, инструкции по обработке и секции символьных данных. Эти базовые составляющие используются для того, чтобы гибко, но в четком соответствии со стандартом, размечать документы любой сложности. Далее мы подробно разберем каждую из основных конструкций XML-документа.

Элемент

Теги в XML-документе не просто размечают текст — они выделяют объект, который и называется элементом. Элементы являются основными структурными единицами XML — именно они иерархически организуют информацию, содержащуюся в документе.

Элементы могут быть пустыми, то есть не содержать ни данных, ни других конструкций, либо непустыми — включать в себя текст, другие элементы и т.п.

Пустой элемент имеет следующий вид:

<имя атрибут1="значение1" атрибут2="значение2" и т.д./>

Примеры

<img src="image.gif"/>

<br/>

<answer question="To be or not to be?" value="Perhaps"/>

Непустые

элементы имеют вид:

<имя атрибут1="значение1" атрибут2="значение2" и т.д.>

 ...

 содержимое элемента

...

 </имя>

Пример

<myelement myattribute="myvalue">

 <mysubnode>

sometext

 </mysubnode>

</myelement>

И в том, и в другом случае, имя задает имя элемента, а конструкции вида

атрибутX="значениеХ"
— определяют значения его атрибутов. Имена в XML являются регистро-зависимыми, то есть имена
MyElement
,
myelement
и
MYELEMENT
различаются. Кроме того, имена в XML могут принадлежать различным пространствам имен, о которых мы поговорим чуть позже.

Элементы являются основной конструкцией языка XML. Организуя содержимое в элементах, можно явно выделить иерархическую структуру документа. Легко заметить, что документ, состоящий из вложенных друг в друга элементов, устроен подобно дереву: родительский элемент является корнем, в то время как дочерние элементы, которые включаются в него, являются ветками, а если они не содержат ничего более, то и листьями. Следующий пример (рис. 1.1) иллюстрирует эту концепцию.

Рис. 1.1. Документ и соответствующее ему дерево элементов

Очень важно понять, что XML-документ логически организован в виде дерева. Дерево является довольно простой структурой для обработки, но при этом выразительная сложность его весьма велика. Древовидная структура является одной из наиболее подходящих абстракций для описания объектов и отношений в реальном мире — возможно именно древовидное устройство наряду с простотой использования обеспечили XML такой потрясающий успех.

Обратимся теперь к синтаксису элементов. EBNF-правило, определяющее элемент, выглядит следующим образом:

[39] element ::= EmptyElemTag

| STag content ETag

Пустому элементу соответствует нетерминал

EmptyElemTag
. Непустой элемент начинается открывающим тегом (нетерминал
STag
), включает некоторое содержимое (
content
) и заканчивается закрывающим тегом (
ETag
).

Открывающий тег состоит из имени (

Name
) и последовательности определений атрибутов (
Attribute
), которые разделены пробельными символами:

Поделиться:
Популярные книги

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Как притвориться идеальным мужчиной

Арсентьева Александра
Дом и Семья:
образовательная литература
5.17
рейтинг книги
Как притвориться идеальным мужчиной

Тот самый сантехник. Трилогия

Мазур Степан Александрович
Тот самый сантехник
Приключения:
прочие приключения
5.00
рейтинг книги
Тот самый сантехник. Трилогия

Третий. Том 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 4

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Дочь Хранителя

Шевченко Ирина
1. Легенды Сопределья
Фантастика:
фэнтези
9.09
рейтинг книги
Дочь Хранителя

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Измена. Тайный наследник

Лаврова Алиса
1. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник

Он тебя не любит(?)

Тоцка Тала
Любовные романы:
современные любовные романы
7.46
рейтинг книги
Он тебя не любит(?)

Брачный сезон. Сирота

Свободина Виктория
Любовные романы:
любовно-фантастические романы
7.89
рейтинг книги
Брачный сезон. Сирота

Английский язык с У. С. Моэмом. Театр

Франк Илья
Научно-образовательная:
языкознание
5.00
рейтинг книги
Английский язык с У. С. Моэмом. Театр

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Два лика Ирэн

Ром Полина
Любовные романы:
любовно-фантастические романы
6.08
рейтинг книги
Два лика Ирэн

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14