Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы XML-технологий. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
и
меет, во избежание проблем в будущем лучше не использовать этот
префикс;
– каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.
П
римечание.
в
имени атрибута зарезервировано для задания пространства имен. Пространства имен дают возможность дифференцировать элементы с одними и теми же именами. двоеточие в имени атрибута только в том случае, если оно следует за про­странством имен, объявленным вами в документе. Например, запись
б
A:Category
имен.
З
удет корректной, только если вы объявили
начение, которое вы присваиваете атрибуту, представляет
В
с
оответствии
с XML
nternet
I
Explorer
-с
пецификацией
разрешает вам использовать
А
д
воеточие
к
ак пространство
(:)
собой группу символов, ограниченных кавычками, называемую также литералом.
Вы можете присвоить атрибуту в качестве значения любой лите-
рал, придерживаясь при этом следующих правил:
– строка может находиться как в одинарных (
кавычках (
)
;
"
'
, так и в двойных
)
– строка не может содержать внутри себя тот же символ кавы-
чек, которыми она ограничена;
– строка может содержать ссылку на символ или ссылку
на внутренние примитивы общего назначения;
<
– строка не может содержать символ (
затор может воспринять этот символ как начало описания
)
. Синтаксический анали-
X
ML
-
разметки;
– строка не может содержать символ (
&
, если это не ссылка на
)
символ или примитив.
Если вы создаете корректно сформированный документ, не имеющий объявления типа документа, вы можете присвоить атри- буту любое значение, соответствующее приведенным выше прави­лам. Однако, если вы создаете описание типа документа и опреде­ляете внутри него атрибуты, то можете ограничить типы значений, которые могут быть присвоены конкретному атрибуту. Например, вы можете определить атрибут, которому могут быть присвоены
41
т
олько значения
"
yes"
и
ли
.
Таким образом, одно из преимуществ
"
no"
задания определенного типа информации через атрибуты элементов в отличие от задания через содержимое элемента заключается в том, что при этом вы можете обеспечить контроль надо всеми типами данных, которые могут быть присвоены атрибуту, и указываете синтаксическому анализатору учитывать эти ограничения типов.
2.4
НЕКОТОРЫЕ БАЗОВЫЕ ПРАВИЛА XML
ML
Ф
орматированный
X
-д
окумент соответствует минимальному набору правил, обеспечивающему возможность обработки доку­мента браузером или другой программой. Эти правила специфика-
X
ции
ML
стко трактуют все, что касается структуры. Они крайне
же
просты и логичны, их легко запомнить и легко использовать.
Документ должен иметь такую разметку, чтобы не существовало двух способов интерпретации имен, порядка и иерархии элементов. Это значительно уменьшает число ошибок и сложность кода. Программы не должны ни о чем «догадываться» или пытаться исправлять синтаксические ошибки, как это часто делают броузеры
H
TML
, так как различные процессоры
ML
X
должны давать одинаковые
результаты.
Документ, приведенный в разделе 2.3, является примером
орматированного
ф
X
окумента, удовлетворяющего этим прави-
-д
ML
лам. Ниже перечислены основные правила спецификации
X
ML
-
документа.
1. Документ должен иметь только один элемент верхнего уров­ня. Все другие элементы должны быть вложены в этот элемент верхнего уровня.
2. Каждый элемент ограничивается начальным и конечным тегами. В отличие от
H
TML
в
,
X
ML
е разрешается опускать конечный
н тег – даже в том случае, когда браузер в состоянии определить, где заканчивается элемент. Например, в не иметь закрывающего тега:
<
p>Это параграф.<br>
ML
X
В
ельзя опускать закрывающий тег. Абсолютно все
н
элементы должны закрываться:
42
HTML
некоторые элементы могут
<
p>Это параграф.</p>
<br/>
В д
окументе, приведенном в разделе 2.3,
X
ML
д
екларация не имеет закрывающего тега. Это не ошибка. Дело в том, что деклара­ция не относится к
X
д
окументу, поэтому у нее и нет закрываю-
ML-
щего тега.
3. Имя типа элемента в начальном теге должно в точности соот-
ветствовать имени в соответствующем конечном теге.
4. Имена типов элементов чувствительны к регистру, в котором
X
они набраны. В действительности весь текст внутри
ML
зметки
-ра является чувствительным к регистру. Например, следующее описа­ние элемента является неправильным, поскольку имя типа элемента в начальном теге не соответствует имени типа в конечном теге:
<TITLE>Это заголовок</title>
5.
Элементы должны быть вложены упорядоченно, т. е. в
X
ML
в
се
элементы обязаны соблюдать корректную вложенность:
b><i>Это жирный и курсивный текст</i></b>
<
Понятие
«корректная вложенность» по отношению к приведен­ному примеру просто означает, что если элемент внутри элемента элемента
6. В
X
.
<b>
ML
з
начения атрибутов должны заключаться в кавычки, как
то и закрываться он должен внутри этого же
,
<b>
показано в следующем примере
?xml version="1.0" encoding="UTF-8"?>
< <Заметка date="12/11/2007"> <Кому>Петр</Кому> <От>Федор</От> </Заметка>
Синтаксис комментариев в
7.
<
!-- Это комментарий -->
8. В
H
несколько последовательных пробельных символов
TML
усекаются до одного. В
X
X
окументе все пробельные символы
д
ML-
акой же, как и в
т
ML
открывается
<i
>
TML
.
H
сохраняются.
43
9.
Если
X
д
окумент составлен в соответствии с приведенными
ML-
синтаксическими правилами, то говорят, что это «синтаксически
ML-
X
верный»
д
окумент.
44
К
ОНТРОЛЬНЫЕ ВОПРОСЫ
X
X
ML
-д
окумент?
ML
-документ?
XML
-д
окумента?
X
-д
X
ML
ML
-д
окумента?
окумента?
X
1. Что представляет собой
2. Из каких разделов состоит
3. Какую информацию содержит декларация
4. Какая информация содержится в прологе
5. Как строятся элементы
6. Каковы синтаксические правила создания атрибутов
мента?
7. Для чего в
X
8. Что представляет собой Юникод, Опишите объявление документа
9.
для чего оно используется в некоторых
окументах используются комментарии?
-д
ML
и
TF-8
U
standalone=’yes’
-д
ML
X
TF-16
U
окументах.
?
объясните,
и
10. Что означает понятие «корректная вложенность»?
11. Что означает чувствительность наименований тегов к реги-
стру?
X
12. Что собой представляют сущности
ML
окумента?
-д
ML
-д
оку-
13. Чем анализируемые (парсируемые) данные отличаются от не
анализируемых данных?
X
14. Объясните, в чем заключается самоописуемость
ML
ментов?
15. Что означает пассивность
16. Каким образом
17. Каким образом
. Каким образом
18
ML
X X X
прощает передачу данных?
у
тделяет данные от
о
ML ML
прощает распределение данных?
у
X
окумента?
-д
ML
H
TML
?
-д
оку-
45
ГЛАВА 3.
X
SD – ЯЗЫК ОПИСАНИЯ СТРУКТУРЫ
ДАННЫХ
X
Язык определения
ется расширением
ML-
хем, или
с
ML
X
и на сегодняшний день представляется основным инструментом описания структуры С использованием дением которых составляется Базовый синтаксис
X
с
хемы формализуется набор правил, с соблю-
ML-
XML-
оп
X
ML
ределяет то, каким образом в тексте
X
док
умент конкретного назначения.
SD
(
X
ML
S
chema
X
ML
D
efinition
окументов.
-д
), я
вля-
должны выделяться элементы и их атрибуты, а также правила описания структурных отношений между элементами.
ML
X
1. Описывает названия элементов и атрибутов (
chema
S
в
ыполняет следующие функции:
ловарь
с
.
)
2. Описывает взаимосвязь между элементами и атрибутами,
а также их структуру (
одель
м
держания
со
.
)
3. Описывает типы данных.
ML-
X
хема – это универсальный способ описания грамматики
с
данных, который может применяться не только для верификации
ML
X
окументов, но и описания баз данных, структур данных,
-д используемых в языках программирования и т. д. На сегодняшний день область применения
в
есьма обширна и со временем
X
S
ML
chema
она может стать основным стандартом моделирования данных, при помощи которой можно описывать практически все.
46
3.1
D
TD И XML-СХЕМЫ
X
ML
На начальном этапе развития
-те
хнологий для целей модели­рования документов использовалась спецификация Определений Типа Документа (
D
ocument
T
ype
De
finitions
D
TD
,
).
Но в настоящее время
данная спецификация практически полностью вытеснена более
X
S
ML
chema
совершенным Языком описания учебном пособии мы приведем лишь краткое описание
3.1.1
D
TD
главным образом состоит из выражений языка разметки,
РЕ ДЕЛЕН ИЕ
П
О
D
TD
(
X
SD
),
поэтому в данном
.
D
TD
включающих элементы
!ELEMENT …>
<
качестве тестового документа для описания с помощью
В
спецификации
и
!ATTRIBUTE …>
<
D
TD
выберем
.
X
ML
-документ, рассмотренный нами в
Главе 2 и приведенный на рис. 2.1.
Корневым элементом документа является элемент
I
nventory
который может содержать неограниченное количество элементов
Book
поэтому для:
,
,
B
ook
– указания включения поместите
в
круглые скобки;
– определения количества вложенных элементов поставьте знак
«
н
оль и более
чие элемента
» (*
Bo
)
после
, вы
ok
B
ook
.
Если же требуется обязательное нали-
должны поставить знак
ин или более
од
«
» (+
.
) Для разрешения одного элемента вы ничего не должны ставить после элемента
Bo
ok
речисленные обозначения задания ограни-
. Пе чений на количество элементов представляют часть системы обозначений в регулярных выражениях.
TD
Итак, первая строка
<
!ELEMENT Inventory (Book*)>
аждая книга содержит только по одному элементу
К
Binding, Pages
и
Price
причем именно в этом порядке (для целей дан-
,
ного руководства несколько авторов вводятся в один элемент
D
выглядит следующим образом:
T
itle, Author,
A
uthor
).
Следовательно, следующим выражением языка разметки является:
<!ELEMENT Book (Title, Author, Binding, Pages, Price)>.
47
О
ставшиеся элементы являются узлами-листьями, содержащими символьные данные. Как обычно используются круглые скобки для обозначения включения. Вы должны объявить тип символьных данных. Символьные строки являются анализируемыми данными,
PCDATA
указываемыми литералом
<
!ELEMENT Title(#PCDATA)>
ы можете предоставить каждой книге уникальный идентифи-
В
#
:
кационный ключ через специальный тип атрибута можете разрешить необязательный атрибут
зображения обложки книги. Метка
и
ATTLIST
mage
i
п
ринимает в качестве
.
Кроме того, вы
ID
содержащий
,
U
RL
аргумента элемент, за которым идет последовательность для каждого атрибута, связанного с этим элементом. Каждая последова­тельность состоит из имени атрибута, его типа и индикатора того, является он обязательным или нет.
Спецификация
D
TD
п
озволяет указывать
1
0
т
ипов атрибутов,
перечисленных ниже:
юбая символьная строка, приемлемая в
CDATA
P N
MTOKEN MTOKENS
N Enumeration –
NTITY
E ENTITIES
– л
– б
– м
– с
вязывает имя с подстановкой, подобно макросу;
– ра
лизок к
X
аркеры
исок только допустимых значений для атрибута;
сп
зделенный пробелами список имен
мени;
-и
ML
MTOKEN
N
разделенные пробелами;
,
ENTITY
X
ML;
;
–
D
I IDREF – I
DREFS
OTATION
N
Необходимый атрибут указывается путем добавления
п
осле типа. Вы можете указать необязательный аргумент путем
добавления
D
TD
ook
B
Единственное выражение
.
!ATTLIST book id ID #REQUIRED image CDATA #IMPLIED>
<
олностью описанный
П
-и
мя, уникальное во всем документе;
ML
X
D
ID
вну
TTLIST
A
TD
три документа;
ыглядит так:
в
ассматриваемого
р
X
I
DREF
ML
;
#
REQUIRED
окумента
-д
сылка на атрибут
с
– ра
зделенный пробелами список маркеров
– с
вязывает имя с информацией клиента.
#IMPLIED
оп
исание содержит один атрибут каждого типа для элемента
.
приведен ниже.
48
<
?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Inventory (Book*)> <!ELEMENT Book (Title, Author, Binding, Pages, Price)> <!ELEMENT Title(#PCDATA)> <!ELEMENT Author(#PCDATA)> <!ELEMENT Binding(#PCDATA)> <!ELEMENT Pages(#PCDATA)> <!ELEMENT Price (#PCDATA)> <!ATTLIST Book id ID #REQUIRED image CDATA #IMPLIED>
3.1.2
X
В рассмотренной спецификации
типов данных
SCHEM A КАК З АМЕНА
ML
ML
X
окумента. Типы данных являются важным сред-
-д
D
D
TD
TD
от
сутствует поддержка
ством моделирования данных, так как они налагают необходимые ограничения на структурные элементы описываемых данных.
TD
Отсутствие поддержки типов данных в спецификации венно ограничивало использование
X
-д
анных в языках програм-
ML
D
сущест-
мирования и СУБД.
Кроме ограничений на диапазон возможных значений система
типов определяет набор операций над данными, которыми разработ­чики могут оперировать в своих программах. Сказанное можно пояснить с помощью следующего примера. Допустим, что мы имеем выражение
«71+52 = ?»
дов – числовой, то ответом является то результатом может быть
.
Если принять, что тип приведенных операн-
«12
3»
но если их тип – строка,
,
«7152»
,
если под оператором
«+»
п
одразу-
мевается операция «конкатенации».
До разработки спецификации
X
SD
язык
представлял пример
X
ML
языка, в котором отсутствовала система типов. В результате инфор­мация, находящаяся в документе
ML
X
только как текст. Но когда
-д
анные начали использоваться в язы-
, могла интерпретироваться
X
ML
ках программирования и записываться в базах данных, то для их взаимно обратного преобразования появилась необходимость знать о «действительном типе» данных, чтобы осуществлять необходимые приведения в коде программы или в базах данных.
Язык
S
chema
ак часто называют спецификацию
(т
X
X
SD
под-
)
ML
держивает систему типов данных для информационных объектов,
49
м
оделируемых с помощью языка
нале средств
X
латформы спецификации
-п
ML
.
Поэтому с появлением в арсе-
X
ML
X
SD
я
зык
X
тал таким
с
ML
же средством моделирования данных, как и языки программирова­ния высокого уровня и базы данных. Это позволяет описывать типы
ML
данных рования и языке
XML Schema
образования данных документа
X
-документа так же, как это делается в языках программи­.
SQ
L
Это концептуально отличается от принципов работы
редлагает мощные средства для взаимно обратного пре-
п
ML
X
и переменных традиционных
D
DT
, так как
языков программирования или систем типов баз данных. Этот
X
фактор превращает
ML
в
мощное средство для обмена данными между гетерогенными системами, в которых данные, как правило, определяются в разных форматах и системах кодирования.
X
ML
-док
умент и
XM
L-
с
хема соотносятся друг к другу так же, как
объекты и классы в объектно-ориентированных языках или записи
X
ML
в базах данных и схемы баз данных. Поэтому с помощью языка
ожно выполнить проверку достоверности экземпляра доку-
Schema
мента, которую осуществляют
м
-процессоры путем сопоставления
X
ML
имен элементов, объявленных в схеме, с именами в данном экземп­ляре документа. В случае совпадения имен для проверки достовер­ности элемента используется информация о его типе и структуре, объявленная в схеме.
3.1.3
XML-схемы
О
П
РЕ ДЕЛЕН ИЕ
данных являются альтернативным способом созда-
ния правил построения
X
ML
XML
SC
HE MA
кументов. По сравнению с
-до
DTD
, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться.
XML-
На сегодняшний день язык определения
с
хем, или
ется основным инструментом описания структуры
XML-
с
хемы позволяют формализовать набор правил, с соблюдением
X
ML
которых составляются
-д
окументы конкретного назначения.
50
X
XSD
д
окументов.
ML-
, я
вля-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]