Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы XML-технологий. Учебное пособие
.pdf
<xforms:input class="Last" id="last"
ref="OrderInfo/PersonalInfo/Name/Name/Last">
<xforms:label class="label">Last Name</xforms:label>
<xforms:hint>Enter Last Name</xforms:hint>
</xforms:input>
</div>
<div>
<!-- Здесь размещаются контролы для ввода данных об адресе -->
</div> <br/>
<div>
<!--Здесь размещаются контролы для вывода вычисленных данных-->
</div> <br/>
<div>
<!-- Здесь размещаются контролы для ввода данных о товарах -->
</div> <br/>
</xforms:group>
</body>
пецификация
С
.
W
3C
X
Forms
исывает тег
оп
<g
roup>
ак «контейнер
к
для определения иерархии контролов». Этот контрол используется
для визуального представления данных в древовидной форме.
Контрол repeat. Контрол
r
epeat
озволяет уменьшить избыточ-
п
ный код в форме. С этой целью разработчики могут создать шаблон
пользовательского интерфейса и применить к набору данных
с
одинаковой структурой. В примере формы заказа тег
r
epeat
исполь-
in
stance
зован для отображения данных о приобретенных товарах
(см. Листинг 12).
Листинг 12. Пример использования инструкции repeat
<xforms:repeat id="shoppingcart" nodeset="OrderInfo/ShoppingCart/ProductInfo">
<xforms:output ref="Quantity"/>
<xforms:output ref="Description"/>
<xforms:output ref="UnitPrice"/>
<xforms:output ref="ItemTotal"/>
</xforms:repeat>
В э
том примере вместо явного кодирования контрола пользова-
.
тельского интерфейса для каждого товара используется тег
который создает шаблон элемента узла
OrderInfo/ShoppingCart/ProductInfo
17
1
epeat>
<r
,

в
in
stance
атрибута
Д
,
XPath
nodese
ля ссылки на значения полей в поддереве
ется атрибут
предварительно пометив выражение
вы могли бы обратиться к атрибуту
ством вызова
от тег повышает выразительную мощь языка
Эт
ляет создавать более короткие
-а
дрес узла которого определяется с помощью
.
t
roductInfo
P
Вы можете также сослаться на значения атрибута,
.
r
ef
Path
ef = "@name"
r
X
n
ame
.
Forms
X
символом @. Например,
каждом
в
P
roductInfo
XForms
-документы: вам не нужно
и
спользу-
осред-
п
позво-
и
точно знать, сколько товаров приобретено; тег автоматически
обойдет дерево
i
nstance
и
выдаст данные для каждого возможного
соответствия.
Контрол switch предназначен для построения гибких форм,
которые в зависимости от текущих условий формируют тот или
иной фрагмент пользовательского интерфейса. Для определения
<s
условий в пределах инструкции
с
помощью которых и определяются условия для формирования
witch>
н
аходятся инструкции
<ca
se>
требуемого пользовательского интерфейса.
Например, при работе с формой по получении личной информации поставщики могут захотеть установить метод платежа. В этом
случае может быть использован тег
<s
witch>
д
ля перехода к типу платежа, который выбрал пользователь. Если пользователь избрал платеж с помощью кредитной карты, форма генерирует необходимый
для этого набор контролов пользовательского интерфейса. Если же
пользователь решил платить наличными или выбрал еще какойнибудь иной способ, форма генерирует другой набор визуальных
компонентов. Таким образом, тег
<switch>
п
озволяет пользователю
управлять интерфейсом.
Описанный контрол в создаваемой нами форме не используется,
поэтому в Листинге 13 приведен простой пример для описанной
,
выше ситуации. В соответствии с приведенным описанием форма
ожидает ввода имени пользователя. Как только пользователь введет
s
свое имя, вариант инструкции
ствие
"Hello"
в
месте с именем пользователя.
witch
меняется и появляется привет-
17
2

Листинг 13. Пример использования инструкции switch
<s
witch id="sw">
<case id="in" selected="true">
<input ref="yourname">
<label>Please tell me your name</label>
<action ev:event="activate">
<toggle case="out" />
</action>
</input>
</case>
<case id="out" selected="false">
<p>
Hello
<output ref="yourname"></output>
<trigger id="editTrigger">
<label>Edit</label>
<action id="editAction" ev:event="activate">
<toggle case="in" />
</action>
</trigger>
</p>
</case>
</switch>
аким образом, спецификация
Т
.
редусматривает создание
XForms
п
динамических форм посредством задания условий, зависящих от
данных. Вам больше не нужно писать код для каждой отдельной
ситуации, пользовательские формы будут генерироваться «на лету»
при сборе данных и изменении условий.
5.2.3.3 Ак ти вн ые к о н т р о л ы
Контрол action. Контрол
<a
ction>
вляется
я
X
ML
аботчиком
-обр
событий. Поскольку он поддерживается набором декларативно
вызываемых
X
ML
-обра
ботчиков, реагирующих на стандартные
действия пользователя, отпадает необходимость в написании сложных скриптов. Благодаря упаковке событий формы в набор легко
вызываемых тегов, становится несложно определить ее динами-
17
3

ческое содержание и гарантировать работу формы на всех платформах, поддерживающих
Листинге 14 продемонстрировано определение действия
В
рибут
r
efreshForm
реагировать тег
. Ат
<ac
e
tion>
vent
X
Forms
.
.
станавливает, на какое событие должен
у
Листинг 14. Инструкция action
<!-
- Объявление контрола action -->
<xforms:action event="click" >
<xforms:refresh ev:event="xforms:activate"/>
.
</xforms:action>
П
ри возникновении события, заданного атрибутом
vent
e
, об
ра-
ботчик событий перехватывает это событие и генерирует действие
efresh>
<r
.
В
одном теге
<a
ction>
ожно задать множество действий. Когда
м
обработчик событий активирован, он вызывает все действия, определенные в пределах своего тела.
Контрол trigger выполняет действие при активации. Например,
при щелчке мышки на кнопке срабатывает контрол
вации
trigger
событий, описанным с помощью тега
контрола
вызывает
trigger
приведен в Листинге 15:
-событие, перехватываемое обработчиком
XML
<a
ction>
.
Пример определения
rigger
t
При акти-
.
Листинг 15. Инструкция trigger без указания события
!-- Объявление контрола trigger -->
<
<xforms:trigger>
<label>My Refresh Trigger</label>
</xforms:trigger>
о в этом определении не указано событие, на которое нужно
Н
реагировать, поэтому этот
.
t
rigger
ни
чего не делает. Для того чтобы
он что-нибудь выполнил, необходимо встроить в его состав дейст-
a
ction
вие, определенное с помощью контрола
. Опре
деление триг-
гера, реагирующего на заданное событие, приведено в Листинге 16.
Листинг 16. Работающая инструкция trigger
!-- Объявление действующего контрола trigger -->
<
17
4

<
xforms:trigger>
<xforms:label>Reset</xforms:label>
<xforms:action event="click" >
<xforms:refresh ev:event="xforms:activate"/>
</xforms:action>
.
</xforms:trigger>
ри щелчке мышки на кнопке
П
которое перехватывается обработчиком событий тега
,
e
vent
результате вызывается действие
В
"
Reset"
<
refresh>
.
t
rigger
пускает событие
за
<a
ction>
.
17
5

КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Каковы недостатки
2. Каковы особенности технологии
W
eb
-ф
орм?
XForms
в отличие от
форм?
i
3. Что собой представляют данные
4.
Что собой представляют обработчики событий (
nstance
5. Что собой представляет связывание данных (
?
d
ata
e
vent
b
indings
h
andlers
6. Что собой представляет информация об инициализации
(
s
ubmission
7.
in
formation
Как в
Forms
X
)?
редставляются связывания, зависимости и огра-
п
ничения данных?
8. Опишите инструкцию инициализации.
9. Опишите составной контрол
10.
Опишите составной контрол
Опишите составной контрол
11.
12.
Опишите элементарный контрол
g
roup
epeat
r
witch
s
.
i
.
.
nput
.
)
?
Web
)
?
-
Опишите элементарный контрол
13.
14.
Опишите контрол
15.
Опишите контрол
16.
Опишите контрол
17.
Из каких компонентов состоит модель
Объясните природу данных и логических компонентов
18.
action
t
submit
rigger
.
.
.
o
utput
.
X
Forms
формы.
19. Опишите составные части логического компонента
Forms
20. Перечислите достоинства
. Каким образом контролы
21
X
X
Forms
.
с
вязываются с элементами
модели данных?
?
Forms
X
.
17
6

ГЛАВА 6.
RDF
– ЯЗЫК ПРЕДСТАВЛЕНИЯ СЕМАНТИКИ
ДАННЫХ
X
Наиболее важной заслугой
ML
ляется то, что программы
яв
различных производителей получили возможность «разговаривать»
на одном языке. Взамен многочисленных разрозненных способов
представления данных появился один универсальный синтаксис,
который лег в основу передачи информации между программами,
работающими в различных точках Интернета.
Однако постепенно с течением времени мировое сообщество
приходит к пониманию того, что позволяя закодировать любую
информацию и давая разработчику возможность без особого труда
получить синтаксический анализатор и средства манипулирования
ML
X
данными,
н
е в состоянии адекватно справиться с задачей семан-
тической интероперабельности.
В основе этого понятия лежит способность машин не только
читать, но и понимать содержание Интернет-ресурсов, причем
достигнуть этого мы должны не через создание программ искусственного интеллекта, моделирующих деятельность человека, а через
использование средств выражения семантики данных и их связей.
П
6.1
РОБЛЕМЫ ОПИСАНИЯ СЕМАНТИКИ ДАННЫХ
Использование семантической информации предполагает обеспечение связывания данных, размещающихся в разных узлах Сети,
по смыслу. Но для представления семантической информации суще-
17
7

ствующие на то время стандарты оказались не пригодными. Необходимо было создавать новые стандарты структурирования данных,
обеспечивающие возможность семантического связывания ресурсов,
распределенных в глобальной Сети.
998
С этой целью в
1
году Тимом Бернерсом-Ли, изобретателем
WW
W
,
W
eb
[38]. Согласно этой идее
U
RI
,
H
TTP
и
H
была предложена идея создания
,
TML
eb
W
представляется в виде сети
S
emantic
информационных узлов, которые связаны друг с другом таким
образом, чтобы имеющаяся информация могла легко обрабатываться компьютером.
Таким образом, было положено начало следующему этапу
развития
щие возможности семантической интероперабельности. Идея
W
eb
п
редставляется логическим продолжением развития
гипертекстовых страниц к
,
который ориентируется на технологии, обеспечиваю-
eb
W
XML
анным, от
-д
XML
машинной интер-
– к
Semantic
W
eb
– от
претации данных и объединению разбросанной во Всемирной
паутине информации по смыслу. При этом была заложена тенденция
развития
-технологий, заключающаяся в переходе от докумен-
W
eb
тов, которые «читаются компьютером», к документам, которые
«понимаются компьютером».
Но при этом создатели средств выражения семантики данных
и их связей столкнулись с несколькими проблемами. С одной
стороны, программы должны понимать язык соответствующей
предметной области, с другой стороны, должны уметь сопоставлять
связанные термины различных предметных областей.
Относительно связанности терминов предметных областей
можно привести следующий пример. Предположим, что в одной
точке глобальной сети размещены данные о какой-то компании и ее
сотрудниках, в другой точке – информация о людях, в третьей – об
адресах.
Очевидно, что компании, люди и адреса принадлежат к отдельным, относительно независимым областям знаний или предметным
областям. Но в непрерывном информационном поле программа,
обеспечивающая семантическую интероперабельность, должна
сопоставлять компании и людей, а также адреса этих людей.
17
8

Это требование является существенным, поскольку в противном случае программы могли бы работать лишь с отдельными
сферами знаний, описанными, например, специализированными
-языками.
XML
так, если синтаксическая интероперабельность неразрывно
И
связана с синтаксическим анализом данных, то семантическая
требует анализа самой информации, ее связи с мировым информационным полем, установления соответствия терминов и словарей
одной предметной области элементам другой [39].
н
X
ML
е может стать таким средством, обеспечивающим связь
данных различных предметных областей, по ряду причин.
1. Основное ограничение
с
остоит в том, что он описывает
ML
X
только грамматику данных. Выделить семантическую единицу
в конкретной предметной области нельзя, поскольку этот язык
ориентирован на структуру документа и не предполагает интерпретации данных, содержащихся в нем.
2.
XML
азывается слишком гибким средством описания данных
ок
и позволяет одну и ту же информацию разметить различными
способами. В качестве иллюстрации сказанного можно привести
несколько вариантов представления данных о человеке:
<
Человек>
<Фамилия>
Иванов
</Фамилия>
<Рост>185</Рост>
</Человек>
<Чело
век
Фамилия="Иванов"
Рост="185" />
<Чело
</Челове
век Фамилия="Иванов">
<Рост>185</Рост>
к>
этой проблемой можно было бы попытаться справиться одним
С
из двух способов: либо всем заинтересованным сторонам договориться об используемом формате описания, либо прибегать к преобразованию одной грамматики в другую.
Но первый из этих способов не реален, поскольку заинтересованных сторон, как правило, много и состав их регулярно меняется,
а второй способ очень громоздок, и оба они, по-прежнему,
не решают проблему выделения семантической единицы предметной области.
17
9

Поэтому для эффективного представления фактов необходимо
вводить некие ограничения на уровне самого языка, позволяющие
автоматически (с помощью программных средств) анализировать
содержание ресурсов. А для этого необходимы новые средства
выражения семантики данных, которые были созданы в рамках
развития идеи
6.2
SEMANTIC WEB – СОСТАВ И ЭТАПЫ РАЗВИТИЯ
Se
mantic
.
W
eb
В соответствии с определением, данным своим работам членами
W
3C
S
emantic
W
A
eb
ctivity
,
S
emantic
W
eb
то расширение
, – э
в котором
,
W
eb
информации (или данным) придается определенная семантика,
позволяя «людям и машинам работать вместе».
Целью проекта
таких т
ехнологий, которые должны:
Se
mantic
Web
являе
тся внедрение в
-среде
Web
– позволить существенно повысить уровень интеграции информации;
– обеспечить развитую машинную обработку данных;
– дать возможность выдавать более адекватные ответы на поисковые запросы и т. д.
На сегодняшний день идея
S
emantic
W
eb
п
остоянно эволюциони-
рует и прошла следующие этапы развития.
1. Первый шаг на пути перехода на новый уровень представления данных был сделан в ходе разработки графовой модели описания ресурсов
R
DF
(
R
esource
De
scription
F
ramework
позволяющей объеди-
),
нять информацию из различных источников. В рамках графовой
F
модели
RD
факты
писываются ориентированным графом,
о
представленным двумя узлами и связью между ними.
F/XML
-дан
F
F
RD
-синт
аксис, который дает
ные графовой модели в
XML
с
едует иметь в виду, что
сл
XML
пред
ставляется в тексто-
XML
-
2. На втором этапе был создан
возможность представить
форме. Относительно связи
графовая
модель
RDF
с помощью языка
RD
RD
вой форме, пригодной для передачи по каналам связи и программной обработки. Применение языка
XML
д
ля представления этой
модели, кроме этого, дает разработчикам возможность воспользоваться для обработки содержащихся в ней данных всеми его
18
0
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
