Схема XML (XML schema). Протокол SOAP.
Пространства имен языка XML не приписывают никакой семантики используемым данным. В спецификации XSD (XML Schema Definition – Определение схемы XML) определяется набор базовых типов данных и их смысл, на основе чего можно определять новые типы данных. Другими словами, схема XML присваивает определенный смысл структуре документа. Сама схема описывается средствами языка XML. Приведенный раньше документ CustomerList можно описать следующей схемой:
<schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cl="http://www.acme.com/CustomerList" targetNamespace="http://www.acme.com/CustomerList"> <xsd:complexType name="Customer"> <xsd:sequence> <xsd:element name="FirstName" type="xsd:string" /> <xsd:element name="LastName" type="xsd:string" /> <xsd:element name="EmailAddress" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </schema>
Элемент targetNamespace обозначает имя схемы. В качестве имени используется определенный спецификацией XSD (XML Schema Definition – Определение схемы XML) элемент "string" ("строка"). Спецификация XSD позволяет ограничить диапазон принимаемых значений, указать количество вхождений экземпляра и приписать элементам атрибуты. Сама схема создается средствами языка XML. Как документ, так и связанная с ним схема проверяются на правильность и обрабатываются как обычные XML-документы. Один и тот же документ, интерпретируемый двумя разными схемами, имеет два разных смысла.
Протокол SOAP
С помощью схемы XML можно определить типы используемых данных. Но, кроме этого, необходимо принять еще ряд соглашений о способе передачи данных и их типов по сети. С этой целью протокол SOAP (Simple Object Access Protocol – простой протокол доступа к объектам), использует язык XML. (Иными словами, язык XML сам выступает в качестве протокола.)
Тип данных, передаваемых по протоколу SOAP, определяется с помощью схемы XML. Но протокол SOAP разработан гораздо раньше, чем была завершена работа над спецификацией Схема XML (XML Schema). Поэтому эти две спецификации несколько отличаются. Отличие состоит в следующем. Схема XML описывает иерархическую, или древовидную структуру. Протокол SOAP предназначен для представления объектов, а объекты могут иметь куда более сложные отношения, чем иерархические. Классы, например, могут иметь несколько родительских классов. Как мы увидим дальше, данное отличие проявилось также и в усложнении Web-служб. В данный момент Консорциум W3C пытается согласовать протокол SOAP со Схемой XML (XML Schema).
Протокол SOAP версии 1.1 для передачи данных может использовать не только протокол передачи гипертекстовых файлов HTTP, но и несколько других транспортных протоколов.
Протокол SOAP используется Web-службами различных платформ Microsoft, а не "только в .NET. Компания Microsoft выпустила комплект инструментальных средств SOAP Toolkit (Инструментарий SOAP), с помощью которого можно разрабатывать Web-службы на базе любой Windows-платформы. Но поддержка SOAP встроена в .NET. В состав SOAP Toolkit (Инструментарий SOAP) входит сервисная программа SOAP Trace Utility (Утилита трассировки SOAP), которая особенно полезна при отслеживании обычных и форматированных сообщений, передаваемых по протоколу SOAP.