Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы XML-технологий. Учебное пособие
.pdf
В
этом документе содержится:
– сообщение с заголовком внутри тегов
Сообщение></Сообщение>
и
текстом внутри тегов
– и
мя
тправителя сообщения (Федор) внутри
о
<
– имя адресата сообщения (Петр) внутри тегов
Из этих данных можно смело предположить, что в этом
окументе содержится заметка от Федора к Петру. И все вполне
д
понятно. Другими словами,
XML
окумент содержит данные с само-
-д
<
Заголовок> </Заголовок>
;
гов
те
<
<
От></От>
Кому></Кому>
;
.
X
ML
-
описанием.
Чтобы закодировать информацию описанным образом, теги
X
в
-д
ML
окументе (например,
<
Кому>
и
<
)
От>
вводятся составителем
документа, которые при этом не ограничиваются никакими стандартами
окумента.
д
XML
.
Если в
Эти теги были «изобретены» автором этого
окументе можно использовать только те теги,
HTML
-д
которые определяются в стандартах
H
TML
(
<
p>
<
li>
,
и
т. д.), то
XML
X
ML
-
позволяет автору определять свои теги и свою структуру документа,
т. е. в языке
нет предопределенных тегов.
X
ML
Пассивность XML-документа. Еще одна важная особенность
-документа заключается в том, что этот документ ничего не
X
ML
делает. Он был создан для структурирования, хранения и передачи
информации. Это просто информация, обернутая в теги. Поэтому
требуется написать приложения, которые будут отсылать, получать
и отображать эти данные.
XML
XML отделяет данные от HTML. В настоящее время
важен для сети, как когда-то был важен
XML
менного Интернета.
– э
то общий инструмент передачи данных
между всеми видами приложений. Если вам в
H
TML
ля рождения совре-
д
H
TML-
окументе необ-
д
та
кже
ходимо отображать динамические данные, то вести этот документ
будет слишком затратно, т. к. всякий раз, когда эти данные изменились, приходится редактировать
H
документ.
TML-
В стандарте языка
X
файлах
HTML/ CSS
ML
, а для отображения можно воспользоваться языками
и
ли
HTML/XSL
анные можно хранить в отдельных
д
X
ML-
.
При этом вы можете быть уверены, что
31

п
оступающие в каждый раз новые данные не потребуют каких-либо
изменений в коде
H
TML-
окумента.
д
XML упрощает распределение данных. В глобальной сети
компьютерные системы и базы данных используют данные в несо-
ML
вместимых бинарных форматах. Средствами
X
данные создаются
и хранятся в простом текстовом формате. Это обеспечивает
программную и аппаратную независимость и позволяет легко создавать данные, которые могут использоваться самыми разными
приложениями.
XML упрощает передачу данных. Одной из самых значимых
проблем разработчиков была и остается до сих пор проблема обмена
данными между несовместимыми гетерогенными системами.
Передача данных в виде
XML
ачительно снижает сложность этой
зн
проблемы, так как данные в этом формате могут быть прочитаны
в разных несовместимых системах.
XML упрощает модификацию платформы. Переход на новые
системы (аппаратные или программные платформы) всегда занимает
много времени. Множество данных необходимо конвертировать
в новые форматы. При этом часто несовместимые данные теряются.
Хранение данных в текстовом
-формате значительно облег-
X
ML
чает расширение или модернизацию систем, а также переход на
новые приложения или браузеры без опасности потерять данные.
Д
2.2
В
ОКУМЕНТ, КАК ЕДИНИЦА ИНФОРМАЦИИ XML
ML
X
нформационную ценность представляют как содержание
и
документа, так и его разметка. Разметка позволяет программам
определять функции и границы частей документа. Содержание
(обычный текст) – это то, что важно для читателя, но оно должно
быть представлено осмысленным образом.
X
п
омогает компьюте-
ML
ру форматировать документ так, чтобы он был более понятен
не только человеку, но и обрабатывающим его программным
средствам.
Слово «документ» вызывает ассоциацию последовательности
слов, разбитых на параграфы, разделы и главы, образующие вместе
некоторую запись для чтения человеком, например, книгу, статью,
32

оч
ерк. Но в
д
X
ML
окумент представляет собой нечто большее: это
основная единица информации, составленная из элементов
и разметки в упорядоченном пакете.
Документ может содержать текст, например, рассказ или статью,
но этим его возможности не ограничиваются. Он может содержать
также базу данных с числами или некую абстрактную структуру,
представляющую молекулу или уравнение.
Одним из наиболее перспективных приложений
XML
ляется его
яв
использование в качестве формата для обмена данными между приложениями. Таким образом, определение документа
XM
м
ожет быть
L
значительно шире нашего традиционного понимания документа.
Документ состоит из частей, называемых элементами. Элементы
вкладываются друг в друга, определяя иерархическую структуру
и маркируя содержимое документа. На верхнем уровне находится
элемент, называемый элементом документа (
document element
или
)
корневым элементом (
ro
ot
el
ement
)
, в котором содержатся все
остальные элементы.
Документ – не то же самое, что файл. Файл – это набор данных,
рассматриваемый операционной системой как единое целое, представленное в памяти в виде физической структуры. Документ
X
ML
определяет данные на логическом уровне и может располагаться
в одном или нескольких файлах, причем некоторые из них могут
находиться на разных машинах.
В
используется специальная разметка для интеграции
ML
X
содержимого разных файлов в один объект, который можно охарактеризовать как логическую структуру. Благодаря тому, что документ
XML
не ограничен одним файлом,
по
зволяет создавать документ из
частей, которые могут располагаться где угодно.
А
2.3
НАЛИЗ СТРУКТУРЫ XML-ДОКУМЕНТА
Рассмотрим структуру
XML
-д
окумента
Inventory.xml
,
содержащего
сведения о каталоге книг и состоящего из двух основных частей:
пролога и элемента «Документ» (его также называют корневым
элементом).
33

П
омимо этого, вслед за элементом «Документ» корректно сфор-
мированный
X
окумент может содержать комментарии,
-д
ML
инструкции по обработке, а также пустые строки. В приведенном
примере
X
окумента, после основного элемента «Документ»,
-д
ML
содержатся включения, которые вы можете добавлять в каждую из
частей.
ПР
2.3.1
Первая строка в
ОЛ ОГ И ВКЛЮЧЕН ИЯ
L-
XM
д
окументе, приведенном на Рис. 2.1, называется прологом. Пролог является необязательным и, как правило,
содержит номер версии
информацию о кодировке
Кроме этого, он может содержать
.
ML
X
XML-
умента. В данном примере доку-
док
мента пролог состоит из следующих строк:
?xml version="1.0" encoding="UTF-8"?>
<
<!-- Имя файла: Inventory.XML-->
<?xml-stylesheet type="text/css" “href=Inventory.css”?>
ML
Первая строка представляет собой объявление
XML
на то, что это
-д
окумент, и содержащее номер версии.
(На момент создания курса последняя версия
XML
Объявление
н
е является обязательным, хотя спецификация
требует его включения. Если вы включаете
X
, указывающее
ML
X
имела номер
XM
L
ъявление, оно
-об
.0
1
).
должно находиться в начале документа.
X
Номер версии в
ML
ъявлении в начале пролога документа
-об
может быть заключен как в одинарные, так и в двойные кавычки.
X
Строки в кавычках в
ML
зметке представляют собой константы,
-ра
включаемые непосредственно в текст документа, т.е. литералы.
X
ML-
окументы могут содержать символы в различных междуна-
д
родных кодировках. Символьная кодировка определяет уникальный
бинарный код для различных символов, используемых в документе.
Юникод – это промышленный стандарт для символьной кодиров-
ки текстового документа и имеет две разновидности:
U
TF-8
и
U
TF-16
:
–
U
использует один байт (8 бит) для представления обще-
TF-8
принятых символов и два (или три) байта для всех остальных символов. Является кодировкой по умолчанию в
QL
S
и
ML
X
и
стандартной кодировкой символов в сети Интернет.
TML-5
H
SS
C
,
avaScript
J
,
HP
P
,
34
,

с. 2.1 Структура XML-файла Inventory.xml
Ри
U
TF-16
–
использует два байта (16 бит) для большинства символов
и три байта для всего остального.
Чтобы не возникало ошибок, необходимо указывать, какая коди-
ML-
X
ровка используется в
TF-8
сальной кодировке
X
д
окументов без информации о кодировке.
ML-
для
U
Кроме этого, большинство систем приложений
с такими кодировками, как
ролог может также содержать одну или несколько инструкций
П
д
окументе, либо сохранять файл в универ-
TF-8
U
.
ISO-8859-1, Windows-1252
вляется кодировкой по умолчанию
я
ML
и
ASCII
X
.
ботает
ра
по обработке. В нашем примере имеются две инструкции по
35

об
работке в прологе, а также инструкция по обработке в разделе,
следующем после элемента «Документ».
ML
X
В данном примере
-об
ъявление включает в себя объявление
документа автономным
(
s
tandalone=’yes’
использоваться в некоторых
ML
X
-документах с целью упростить
Это объявление может
).
обработку документа.
Вторая строка пролога представляет собой комментарий.
Добавление комментариев в
XML
кумент не обязательно, но
-до
позволяет сделать его более понятным. Комментарий начинается
с символов
<!--
и
заканчивается символами
.
Между этими двумя
-->
группами символов вы можете поместить любой текст (за исключением двойного тире
);
--
XML
-про
цессор проигнорирует его.
В рассматриваемом примере имеется комментарий в прологе,
а также другой комментарий, следующий за элементом «Документ».
В четвертой строке примера содержится инструкция, обеспечи-
X
ML
вающая связывания
содержащей информацию о порядке прохождения по
Inventory01.css
,
тексту документа при обработке приложения
-д
окумента с каскадной таблицей стиля
-процессором.
XSL
Ниже, в Главе 4, мы более подробно ознакомимся с таблицами
стилей.
римечание.
П
ML
X
предоставляет этот доступ другим программным модулям, или приложениям, которые манипулируют и отображают содержимое документа.
окумент и обеспечивающий доступ к его содержимому. Он также
-д
ML
X
роцессор – это программный модуль, считывающий
-п
Документ содержит две пустые строки в прологе и одну пустую
строку в разделе, следующем за элементом «Документ». Пустая
строка состоит из одного или нескольких пробелов, символа табуляции, возврата каретки или перевода строки. Чтобы улучшить внешний вид и восприятие
X
пробелы и переводы строк между элементами
окумента, вы можете свободно добавлять
-д
ML
-ра
XML
зметки, а также
во многих случаях внутри элементов разметки (например, пробел
между
и ? в конце
"
yes"
-объявления в рассматриваемом примере).
X
ML
Процессор просто игнорирует пропуски, если только они не
36

н
аходятся внутри элемента, непосредственно содержащего символь-
ные данные.
Л
2.3.2
О
сновное содержание документ определено во второй обяза-
ЕМ ЕНТЫ
Э
тельной части, включающем в себя элемент «Документ», или корневой элемент, который в свою очередь содержит дополнительные
элементы. Элемент «Документ» и вложенные в него элементы являются основным предметом рассмотрения в этом разделе учебного
пособия и содержат фактическую информацию, имеющуюся
в документе (для документа, приведенного на Рис. 2.1, это заглавия
книг, фамилии авторов и т. д.). Кроме этого система вложений
элементов документа отражает логическую структуру информации,
содержащейся в нем.
Элементы организованы в иерархическую древовидную структуру, в которой одни элементы вложены в другие. Документ должен
иметь один и только один элемент верхнего уровня – элемент
«Документ», или корневой элемент – а все другие элементы
XML
вложены в него. Представленный ниже
-д
окумент является
корректно сформированным.
XML
В
-д
окументе элементы определяют его логическую структуру и несут в себе информацию, содержащуюся в документе
(в нашем примере это информация о книгах, такая как заглавие,
автор, цена). Типовой элемент состоит из начального тега, содержимого элемента и конечного тега. Содержимым элемента могут быть
символьные данные, другие (вложенные) элементы, либо сочетание
данных и вложенных элементов.
ventory
В данном примере элемент «Документ» –
тег –
<In
ventory>
,
а конечный –
<
/Inventory>
In
,
а содержимым элемента
Его начальный
.
считается текст, расположенный между ними. В качестве содержимого элемента можно использовать следующие типы сообщений:
– вложенные элементы – на Рис. 2.1 элемент
в элемент
Inventory,
а
элементы
Book
,
в свою очередь, имеют в своем
B
ook
в
ложен
содержимом вложенные элементы, как показано в нижеследующем
листинге:
37

<B
ook>
<Title> Приключения Гекльберри Финна </Title>
<Author>Марк Твен</Author>
<Binding>Бумажный переплет</Binding>
<Pages>298</Pages>
<Price>355р</Price>
</Book>
– с
имвольные данные – это текст, выражающий информационное содержание элемента, например, заглавие определенной книги
в элементе
itle>Приключения Гекльберри Финна</Title>
<T
зделы
– ра
бодно размещать любые символы, за исключением строки
и
C
DATA
спользуется для включения в текст элемента символов, ис-
как показано ниже:
,
title
C
DATA
то текстовый блок, в котором вы можете сво-
– э
;
.
Раздел
]]>
пользуемых для разметки текста, т. е. недопустимых для использования в элементах внутри тегов. Пример раздела
C
DATA
в
нутри элемента, используемого для включения в текст элемента таких символов, показан в следующем примере:
ext>Как ввести символы <![CDATA[<, >, ‘, “ и &]]></Text>
<T
нструкции по обработке содержат информацию, необходи-
– и
X
мую для
– комментарии – это примечания к
читываются людьми, но игнорируются
ML
-приложений (см. нижеследующий пример);
-д
окументу, которые про-
L
XM
X
ML
-процессором (см. ниже-
следующий пример).
Book>
<
<?MyApp Parm1=”value1" Parm2=”value2"?>
<Title> Приключения Гекльберри Финна </Title>
<Author>Марк Твен</Author>
<!-- Здесь можно вставить комментарий -->
<Binding>Бумажный переплет</Binding>
<Pages>298</Pages>
<Price>355р</Price>
</Book>
В
ы также можете помещать в ваш документ пустой элемент, т. е.
элемент, не имеющий содержимого. Пустой элемент создается
38

п
утем размещения конечного тега сразу же после начального тега:
либо вы можете использовать специальный тег пустого
<h
r></hr>
элемента:
,
r/>
<h
.
Обе эти нотации являются эквивалентными.
Поскольку пустой элемент не имеет содержимого, у вас может
возникнуть вопрос о его предназначении. Здесь есть два варианта:
а) вы можете использовать пустой элемент, чтобы указать
риложению выполнить действие или отобразить объект. Аналогом
п
HTML
в
вляется пустой элемент
я
браузеру вставить разрыв строки, а также пустой элемент
BR
который является указанием
,
R
H
, указы-
X
ML
-
вающий на вставку горизонтальной разделительной линии. Другими
словами, само присутствие элемента с определенным именем – без
какого-либо содержимого – может послужить важной информацией
для приложения;
б) пустой элемент может нести информацию посредством атри-
бутов, о которых вы узнаете далее в этом пособии. (С элементами,
H
которые имеют атрибуты, вы еще не встречались). Аналогом в
я
вляется пустой элемент
IMG
изображение), содержащий атрибуты,
(
TML
которые сообщают процессору, где искать графический файл и как
его отобразить.
Текст в
-документе представляет собой перемежающиеся
X
ML
символьные данные и данные, относящиеся к разметке. Разметка –
это текст, ограниченный разделителями и описывающий структуру
документа. А именно, начальный и конечный теги элемента, теги
пустого элемента, объявления типа документа, инструкции по обработке, ограничители раздела
примитивы (
ntity
e
Остальной текст представляет собой символьные
).
CDATA
,
символьные ссылки, ссылки на
данные – реальное информационное содержимое документа
(в нашем примере это заглавия, фамилии авторов, цена и другая
информация о книге).
римечание. Синтаксический анализатор
П
данные элемента для
вую скобку (
поскольку анализатор может интерпретировать (
элемента,
раздела
CDATA
)
, амперсенд (
<
ак начало ссылки на примитив или символ, а
к
&
Если вы хотите использовать символы
.
XML
зметки. Вы не можете использовать левую угло-
-ра
)
или строку
&
в
составе символьных данных,
]]>
XML
канирует символьные
с
) к
ак начало вложенного
<
ак окончание
к
]]>
<
и
ли
ак часть
к
&
39

имвольных данных, вам необходимо воспользоваться разделом
с
Вы также можете использовать любые символы (в том числе те, которых
нет на клавиатуре), воспользовавшись ссылкой на символ. Некоторые
символы (например, < или &) вы можете вставлять с использованием предопределенных ссылок на общие примитивы.
РИ БУТЫ ДЛ Я ЭЛЕМЕ НТОВ
2.3.3
А
Т
CDATA
.
В начальный тег элемента либо в тег пустого элемента
вы можете включить одно или несколько описаний атрибутов.
Описание атрибута представляет собой пару имя – значение, связанную с данным элементом. Например, следующий элемент
чает атрибут с именем
<price type="retail">$5.49</price>
type
, которому присвоено значение
Следующий пустой элемент включает атрибут с именем
retail
p
rice
:
в
клю-
ource
S
,
который указывает на имя файла, содержащего картинку, которую
следует отобразить:
cover_image Source="Faun.gif" />
<
З
адание атрибутов обеспечивает альтернативный способ включения информации в элемент. Обычно вы помещаете все относящиеся к элементу данные, которые хотите отобразить, внутри
содержимого элемента. Атрибуты же используются для хранения
различных характеристик элемента, которые не обязательно будут
отображены (например, категория, или указания по отображению).
В спецификации
XM
е установлено строгих разграничений относи-
н
L
тельно типа информации, которую можно описывать с помощью
атрибутов или внутри содержимого элемента.
Описание атрибута состоит из имени атрибута, вслед за которым
идет знак равенства и значение атрибута. Вы можете выбрать любое
имя атрибута, придерживаясь при этом следующих правил:
– имя должно начинаться с буквы или символа подчеркивания
‘
_’
,
после чего могут следовать или не следовать другие буквы,
цифры, символы точки
– спецификация
нающиеся с префикса
X
‘.’
ML
тире
,
ог
xml»
«
‘–‘
оваривает, что имена атрибутов, начи-
«зарезервированы для стандартного
,
и подчеркивания;
ил
использования». Хотя для браузера это ограничение значения не
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
