- •1. Введение в веб-сервисы 4
- •2. Лабораторная работа №1. Расширяемый язык разметки xml. 17
- •3. Лабораторная работа №2. Схемы xml-документов. 28
- •3.1 Цель работы 28
- •3.3 Порядок выполнения работы 34
- •4. Лабораторная работа №3. Язык определения веб-сервисов wsdl. Реализация веб-сервисов. 38
- •4.1 Цель работы 38
- •5. Лабораторная работа №4. Протокол soap. Использование веб-сервисов. 59
- •1.1Основы веб-сервисов
- •1.2Использование веб-сервисов
- •1.Введение в веб-сервисы
- •1.3Технологический базис веб-сервисов
- •1.3.5Дополнительные технологии
- •1.4Принципы взаимодействия веб-сервисов
- •1.4.1Rpc-ориентированные взаимодействия
- •1.4.2Документно-ориентированные взаимодействия
- •1.4.3Взаимодействие в рамках сервисно-ориентированной архитектуры
- •1.5Веб-сервисы и другие технологии
- •1.5.1История развития
- •1.5.5Сравнение с веб-сервисами
- •2.Лабораторная работа №1. Расширяемый язык разметки xml.
- •2.1Цель работы
- •2.2Теоретическое введение
- •2.2.1Пример xml-документа
- •2.2.2Правила составления xml-документов
- •2.2.3Элементы xml
- •2.2.4Атрибуты xml
- •2.2.5Пространства имен xml
- •2.3Порядок выполнения работы
- •2.4Отчет по работе
- •2.5Контрольные вопросы
- •3.Лабораторная работа №2. Схемы xml-документов.
- •3.1Цель работы
- •3.2Теоретическое введение
- •3.2.1Схемы xml-документов
- •3.2.2Определение шаблона документа dtd
- •3.2.3Xml-Схемы
- •3.3Порядок выполнения работы
- •3.4Отчет по работе
- •3.5Контрольные вопросы
- •4.2.2Основные элементы языка wsdl
- •4.2.3Определение типов данных в wsdl
- •4.2.4Определение типов портов в wsdl
- •4.2.5Определение сервиса и его привязка к протоколам в wsdl
- •4.2.6Реализации веб-сервисов
- •4.2.7Создание веб-сервисов на платформе .Net
- •4.2.8Создание веб-сервиса интернет-магазина
- •4.3Порядок выполнения работы
- •4.4Отчет по работе
- •4.5Контрольные вопросы
- •5.2.2Основные элементы soap
- •5.2.3Привязка soap к http
- •5.2.4Создание на платформе .Net клиентских приложений использующих веб-сервисы
- •5.2.5Создание клиентского приложения для работы с веб-сервисом интернет-магазина
- •5.3Порядок выполнения работы
- •5.4Отчет по работе
- •6.2.2Основные элементы bpel
- •6.2.3BizTalk 2006 как средство интеграции приложений
- •6.2.4Пример использования bpel
- •6.3Порядок выполнения работы
- •7.3Порядок выполнения работы
- •7.4Отчет по работе
- •7.5Контрольные вопросы
- •8.2.2Обработка заказов через веб-сервис erp системы компании
- •8.2.3Регистрация заказа и оплата через платежную систему
- •8.2.4Конвертация валюты с помощью веб-сервиса цб
- •8.2.5Тестирование работоспособности приложения
- •8.3Порядок выполнения работы
- •9.Лабораторная работа №8. Интеграция веб-сервисов при помощи BizTalk 2006. Часть 2.
- •9.1Порядок выполнения работы
- •9.2Отчет по работе
- •9.3Контрольные вопросы
- •10.Варианты заданий
- •10.1Вариант 1
- •10.2Вариант 2
- •11.Список литературы
- •Введение в веб-сервисы
2.2.3Элементы xml
XML-элементом является все, что заключено между начальным тэгом элемента и конечным тэгом элемента, включая сами тэги. Как уже было показано выше, элементы могут быть пустыми, иметь дочерние элементы, иметь значение и атрибуты.
Существует несколько правил наименования элементов:
Названия могут содержать буквы, цифры и другие символы.
Названия не могут начинаться с цифры или знака препинания.
Названия не могут начинаться с букв xml в любом регистре.
Названия не могут содержать пробелов.
Символы «:» в названиях элементов отделяют пространство имен элемента от его имени. Этот символ может быть использован в имени только один раз.
Для задания названий элементам в документ лучше всего использовать цифры и буквы, составляя названия таким образом, чтобы они отображали семантику элемента.
Все элементы в XML-документе должны быть правильно вложены друг в друга. К примеру, такая структура является недопустимой:
<item id="2133">
<name>Монитор</item>
</name>
Хотя оба закрывающий тега присутствуют, однако их порядок неверный, что приведет к ошибке при разборе этого документа. Все элементы в XML-документе представляют собой иерархическую структуру, таким образом, между ними можно определить отношения: дочерний элемент, родительский элемент и соседний элемент.
<?xml version="1.0" encoding="utf-8" ?>
<kafedra name="22">
<group name="K1-221">
<member>
<FIO>
Иванов Иван Иванович
</FIO>
</member>
<member>
...
</member>
</group>
<group name="K1-222">
...
</group>
</kafedra>
В приведенном примере элемент «kafedra» является корневым элементом. Он является родительским для элементов «group», которые свою очередь являются родительскими для элементов «member». Элементы «group» по отношению друг к другу считаются соседними.
Одним интересным свойством элементов является их расширяемость. Допустим, было создано программное обеспечение, обрабатывающее заказы в интернет магазине в следующей форме:
<?xml version="1.0" encoding="utf-8" ?>
<order customerId="12">
<address>Москва, Каширское шоссе, 31</address>
<date>01.04.2006</date>
<time>12:40</time>
<items>
<item id="2133">
<name>Монитор</name>
</item>
<item id="2233">
<name>Видеокарта</name>
</item>
</items>
</order>
В новой версии ПО в документ был включен еще один элемент, содержащий телефонный номер заказчика:
<?xml version="1.0" encoding="utf-8" ?>
<order customerId="12">
<address>Москва, Каширское шоссе, 31</address>
<phone>324-84-00</phone>
<date>01.04.2006</date>
<time>12:40</time>
<items>
...
</items>
</order>
Обработка такого документа возможна с использованием программы как новой, так и старой версии. Старая версия программы по-прежнему сможет извлекать из этого документа все необходимые для ее работы данные, игнорируя неизвестный ей элемент.
2.2.4Атрибуты xml
Любой XML-элемент может содержать в своем начальном тэге атрибуты, которые обычно представляют некоторую дополнительную информацию об элементе. Значения атрибутов должны быть заключены в кавычки. Для этих целей могут использоваться как одинарные, так и двойные кавычки. Обычно используются двойные кавычки, однако если значение атрибута само содержит двойные кавычки, то в этом случает нужно применять одинарные кавычки для «экранирования» этого значения:
<firm name='ООО "Рога и копыта"' phone="213-34-12"/>
Одну и ту же информацию в XML можно представить по-разному:
<order>
<address>Москва, Каширское шоссе, 31</address>
...
</order>
<order address="Москва, Каширское шоссе, 31">
...
</order>
Обе приведенные выше структуры содержат одинаковую информацию. Первая для хранения адреса применяет дочерний элемент, а вторая атрибут. Оба этих подхода могут быть использованы для сохранения данных в XML, однако обычно используются дочерние элементы. Это связано с несколькими причинами:
Атрибуты не могут содержать дочерние элементы и поэтому подходят для хранения только атомарных данных.
Атрибуты не описывают структуру данных, что затрудняет интерпретацию документа, как программой, так и человеком.
При модификации XML-документа атрибуты невозможно расширить новыми элементами, что является потенциальным источником проблем при обновлении версии программного обеспечения.
Приведенный выше пример с использованием дочернего элемента можно представить, данные в элементе в форме дочерних элементов. Такое представление этого документа лучше отражает его содержимое, облегчает его понимание и упрощает обработку этого документа программным обеспечением:
<order>
<address>
<city>Москва</city>
<street>Каширское шоссе</street>
<house>31</house>
</address>
...
</order>
