Внимание!
Официальная нормативная версия этой спецификации возможна только на английском языке и находится по адресу: http://www.w3.org/TR/soap12-rep/
Данный перевод НЕ является официальным документом W3C.
Данный документ может содержать ошибки перевода и опечатки.
HomeBusiness software, Design and photo software, Desktop enhancement software, Developer tools, Free hosting, Xbox skin directory
Пожалуйста, изучите список опечаток к этому документу, так как он может содержать нормативные исправления.
См. также переводы.
Авторское право © 2005 W3C® (МТИ, ERCIM, Keio), Авторские права защищены. Используются правила W3C по обязательствам, товарному знаку и использованию документа.
В этом документе описывается семантика и сериализация блока SOAP-заголовка, позволяющая осуществлять представление ресурсов в SOAP-сообщениях.
Этот раздел описывает состояние этого документа на момент его публикации. Этот документ может быть заменен новыми документами Список текущих публикаций W3C и самые новые переработки этого технического отчета можно найти в оглавлении технических отчетов W3C по адресу http://www.w3.org/TR/.
Этот документ является рекомендацией W3C. Он был рассмотрен членами W3C и другими заинтересованными сторонами, а также одобрен директором в качестве рекомендации W3C. Это принятый документ, и потому он может быть использован в качестве справочного материала, либо приводиться как нормативная ссылка. При создании этих рекомендаций W3C ставила целью привлечь внимание к этой спецификации и помочь в распространении ее использования. Это улучшает работу и функциональную совместимость Сети.
Этот документ был составлен Рабочей группой XML-протоколов (WG) как часть W3C Web Services Activity. Английская версия этой спецификации является единственной нормативной версией. Тем не менее, переводы данного документа можно найти на http://www.w3.org/2003/03/Translations/byTechnology?technology=soap12-rep.
Пожалуйста, о любых ошибках обнаруженных в этом документе сообщайте на xmlp-comments@w3.org (архив). Список исправлений для этого издания находится на http://www.w3.org/2005/01/soap12-rep-errata.
Этот документ основывается на Предложенных рекомендациях по представлению ресурсов в блоке SOAP-заголовка от 16 ноября 2004 года. Отзывы на те рекомендации не привели к каким-либо изменениям. Доказательства взаимодействия между как минимум двумя реализациями этой спецификации находятся в Кратком изложении реализации. Изменения, пришедшие с появлением новой версии, описаны в различиях.
Этот документ был составлен согласно CPP от 24 января 2002 года с исправлениями относительно Патентной политике W3C - Процедура перехода. Любой человек, который обладает действительным знанием о патенте, который, по мнению этого человека, содержит Патентную формулу по этой спецификации, должен раскрыть эту информацию, согласно разделу 6 Патентной политики W3C. Описания сущности патента по этой спецификации можно найти на странице описания патента Рабочей группы.
Список текущих рекомендаций W3C, а также другая техническая документация, находится на http://www.w3.org/TR/.
1 Вступление
1.1 Соглашения об
обозначениях
1.2 Связь с другими
спецификациями
1.2.1 Связь с моделью SOAP-обработки
2 SOAP-функция - Имя
3 SOAP-модуль - Имя
4 Представление блока
заголовка
4.1 Вступление
4.2 Блок заголовка
представления - Структурные элементы
4.2.1 rep:Элемент представления
4.2.2 Атрибут ресурса
4.2.3 Атрибут повторной вставки
4.2.4 rep:Элемент данных
4.3 Расширяемость блока заголовка
представления
4.3.1 Блок SOAP-заголовка - Атрибуты
4.3.2 Определение медиа-типа
4.3.3 Пример расширения: расширение
HTTP-resolver
A Ссылки
B Благодарности (ненормативный раздел
В этом документе описывается семантика и сериализация блока SOAP-заголовка, позволяющая осуществлять представление ресурсов в SOAP-сообщениях.
Ключевые слова в этом документе, такие как "ДОЛЖЕН", "НЕ ДОЛЖЕН", "ТРЕБУЕТСЯ", "БУДЕТ", "НЕ БУДЕТ", "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕТСЯ", "МОЖЕТ" и "ОПЦИОНАЛЬНО", должны интерпретироваться согласно описанию в RFC 2119 [RFC 2119].
В этой спецификации используется некоторое количество префиксов пространства имен; они перечислены в [Использованные в этой спецификации префиксы и пространства имен.]. Учитывайте, что выбор любого префикса пространства имен является произвольным и не имеет зсемантического начения (см. информационное множество XML [XMLInfoSet]).
| Префикс | Пространство имен |
|---|---|
| Примечания | |
| env | "http://www.w3.org/2003/05/soap-envelope" |
| Нормативная XML-Схема [XML-Схема, Часть 1: Структуры. Второе издание], [XML-Схема, Часть 2: Типы данных. Второе издание] описывающий пространство имен "http://www.w3.org/2003/05/soap-envelope" находится на http://www.w3.org/2003/05/soap-envelope. | |
| rep | "http://www.w3.org/2004/08/representation" |
| Нормативная XML-Схема [XML-Схема, Часть 1: Структуры. Второе издание], [XML-Схема, Часть 2: Типы данных. Второе издание] описывающий пространство имен "http://www.w3.org/2004/08/xop/include" находится на http://www.w3.org/2004/08/representation. | |
| xs | "http://www.w3.org/2001/XMLSchema" |
| Пространство имен типов данных XML-Схемы (см. [XML-Схема. Часть 2: Типы данных. Второе издание]). | |
| xmlmime | "http://www.w3.org/2004/11/xmlmime" |
| Пространство имен для представления MIME медиа-типов в XML (см. [Назначение медиа-типов в бинарные данные в XML]). |
Все части этой спецификации нормативны, за исключением примеров и разделов явно обозначенных как "ненормативные".
Этот документ, а также [XML-binary Optimized Packaging] и [Механизм оптимизации передачи SOAP-сообщения], были составленны в связи с разработкой требований, воплощенных в документе рекомендаций [Требования и сценарии использования SOAP-оптимизированной сериализации].
Этот документ определяет SOAP-функцию, а также SOAP-модуль реализующий SOAP-функцию, как определено в SOAP версия 1.2 [SOAP, версия 1.2. Часть 1: Модель передачи сообщений] 3.1 SOAP-функции и [SOAP, версия 1.2. Часть 1: Модель передачи сообщений] 3.3 SOAP-модули.
Примечание: Блок заголовка представления ресурсов спроектирован для обеспечения хорошей оптимизации при использовании вместе с "Механизмом оптимизации передачи SOAP-сообщения" [SOAP Message Transmission Optimization Mechanism].
Примечание: Блок заголовка представления ресурсов предполагается, но не в обязательном порядке, использовать вместе с "Назначение медиа-типов в бинарные данные в XML" [Assigning Media Types to Binary Data in XML].
Определенный в этом документе "Блок заголовка представления ресурсов" воплощает SOAP-функцию [SOAP, версия 1.2. Часть 1: Модель передачи сообщений] 3.1 SOAP-функции идентифицируемые по URI:
"http://www.w3.org/2004/08/representation"
Приведенный URI SOAP-функции может быть использован для идентификации семантики и сериализации "Блока заголовка представления ресурсов".
SOAP-модуль [SOAP, версия 1.2. Часть 1: Модель передачи сообщений] 3.3 SOAP-модули, который реализует SOAP-функцию, определенную в 2 SOAP-функция - Имя и идентифицируемую по URI:
"http://www.w3.org/2004/08/representation"
Приведенный URI SOAP-модуля может быть использован для идентификации семантики и сериализации "Блока заголовка представления ресурсов".
Этот раздел описывает блок SOAP-заголовка, блок заголовка представления, который позволяет SOAP-сообщению переносить представления Web-ресурсов.
Блок заголовка представления разрабатывался для того, чтобы приложения могли переносить представления Web-ресурсов в SOAP-сообщении. Использование этого заголовка включает случаи, когда у получателя мало возможностей найти представление другим способом, например, из-за ограниченного доступа или запрещения на служебные сигналы. Также блок заголовка представления полезен когда требуются множественные ссылки на один и тот же ресурс, но дублирование ресурса нежелательно. Обращайтесь к UC2 и UC6 [SOAP Optimized Serialization Use Cases and Requirements] за подробностями.
Когда блок заголовка представления присутствует в SOAP-сообщении, его целью является разрешить ограниченное представление переносимого ресурса обрабатывающему SOAP-узлу. SOAP-узел МОЖЕТ использовать это представление при разыменовании URI ресурса, вместо того чтобы делать сетевой запрос для получения представления этого ресурса. Заметьте, что реализациям МОЖЕТ потребоваться обрабатывать блок заголовка представления до обработки других блоков заголовков, которые требуют разыменования URI, чье представление находится в блоке заголовка представления.
Множественные экземпляры блока заголовка представления МОГУТ находится в одно SOAP-сообщении в целях переноса представления множественных Web-ресурсов, либо множественных представлений одного Web-ресурса.
Несколько экземпляров блока заголовка представления с
одинаковыми значениями для role и
resource единицы информации-атрибут (см.
4.2.2 атрибут ресурса) МОГУТ
присутствовать в одном SOAP-сообщении. Таким блокам заголовка
представления НЕ СЛЕДУЕТ иметь одинаковые метаданные (такие как
медиа-тип). Если такие блоки заголовка представления имеют
одинаковые метаданные, то любой из них может использоваться.
URI с идентичным набором символов ДОЛЖНЫ считаться равными, когда заголовок представления используется для разрешения веб-ссылки; URI считающиеся равными согласно URI-схеме URI СЛЕДУЕТ считать равными.
Ниже приведен пример SOAP-конверта использующего блок заголовка представления.
<soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope'
xmlns:rep='http://www.w3.org/2004/08/representation'
xmlns:xmlmime='http://www.w3.org/2004/11/xmlmime'>
<soap:Header>
<rep:Representation resource='http://example.org/me.png'>
<rep:Data xmlmime:contentType='image/png'>/aWKKapGGyQ=</rep:Data>
</rep:Representation>
</soap:Header>
<soap:Body>
<x:MyData xmlns:x='http://example.org/mystuff'>
<x:name>John Q. Public</x:name>
<x:img src='http://example.org/me.png'/>
</x:MyData>
</soap:Body>
</soap:Envelope>
rep:RepresentationЕдиница информации-элемент Representation
имеет:
[Локальное имя](local name) Representation.
[Имя пространства имен](namespace name) "http://www.w3.org/2004/08/representation".
Одна или более из единиц информации-атрибут среди его [атрибутов](attributes) как изложено ниже:
Необязательная единица информации-атрибут
resource (см. 4.2.2 Атрибут
resource).
Необязательная единица информации-атрибут
reinsert (см. 4.2.2 Атрибут
reinsert).
Ноль или больше пространств имен, отмеченных как единица информации-атрибут, чье [имя пространства имен](namespace name) не является "http://www.w3.org/2004/08/representation".
Одна или более единиц информации-атрибут, в свойстве его [дочерних элементов](children) в следующем порядке:
Необязательная единица информации-элемент
Data (см. 4.2.4 Элемент
rep:Data).
Ноль или больше пространств имен, отмеченных как единица информации-элемент, чье [имя пространства имен](namespace name) не является "http://www.w3.org/2004/08/representation".
Единица информации-элемент
rep:Representation содержит представление веб-ресурса.
Значение единицы информации-атрибут resource
является идентификатором веб-ресурса. Значение единицы
информации-элемент rep:Data является
закодированным в base64 представлением веб-ресурса.
resourceЕдиница информации-атрибет resource
имеет:
[Локальное имя](local name) resource.
Пустое [имя пространства имен](namespace name).
Свойство [определенный](specified) со значением "true".
Тип единицы информации-атрибут resource
это xs:anyURI. Значение единицы
информации-атрибут resource определяет
веб-ресурс, чье представление находится в родительском элементе
единицы информации-элемент rep:Representation
единицы информации-атрибут resource.
reinsertЕдиница информации-атрибут reinsert
имеет:
[Локальное имя](local name) reinsert.
Пустое [имя пространства имен](namespace name).
Свойство [определенный](specified) со значением "true".
Тип единицы информации-атрибут reinsert
это xs:boolean. Когда этот атрибут определяется в
блоке заголовка представления значением "true", он означает что
пересылающий посредние SOAP-узла, который обрабатывает блок
заголовка, должен заново вставить блок заголовка. Это означает, что
при использовани вместе с атрибутом relay,
определенным в [SOAP, версия 1.2. Часть
1: Модель передачи сообщений] 5.2.4 Атрибут
SOAP-передачи, со значением "true", блок заголовка
представления будет всегда передаваться передающим посредником
SOAP. Когда этот атрибут определяется в блоке заголовка
представления значением "false", поведение SOAP-узла
обрабатывающего блок заголовка точно такое же, как и когда атрибут
не определен, и потому действуют обычные правила SOAP-обработки.
Присутствие этого атрибута никак не влияет на обработку заголовка
представления на конечной точке SOAP.
rep:DataЕдиница информации-элемент Data имеет:
[Локальное имя](local name) Data.
[Имя пространства имен](namespace name) "http://www.w3.org/2004/08/representation".
Ноль или больше пространств имен, отмеченных как единица информации-атрибут, чье [имя пространства имен](namespace name) не является "http://www.w3.org/2004/08/representation".
Любое количество единиц информации-символв свойстве его [дочерних элементов](children). Никаких других типов единиц информациив свойстве его [дочерних элементов](children).
Типом единицы информации-элемент rep:Data
является xs:base64Binary. Значением этой единицы
информации-элемент является закодированное в base64
представление веб-ресурса, находящегося в родительском элементе
единица информации-элемент rep:Representation
единицы информации-атрибут resource.
Блок заголовка представления строился с учетом возможности расширения. Этот раздел описывает некоторые возможности применения этой расширяемости.
Атрибуты определенные в [SOAP, версия 1.2. Часть 1: Модель передачи сообщений] 5. SOAP-сообщения - Структурные элементы для блоков SOAP-заголовков МОГУТ использоваться вместе с представляющими блоками заголовка.
Добавление единицы информации-атрибут
env:mustUnderstand со значением "true" в свойство
[атрибуты](attributes) единицы информации-элемент
rep:Representation гарантирует, что SOAP-получатель
будет знать, что ему доступно представление веб-ресурсов.
Единица информации-атрибут env:role в
свойстве [атрибуты](attributes) единицы информации-элемент
rep:Representation указывает на SOAP-узел, для
которого предназначается представление веб-ресурсов.
Единица информации-атрибут
xmlmime:contentType (см. [Назначение медиа-типов в бинарные данные в XML])
МОЖЕТ быть использована для передачи медиа-типа представления
переданного заголовком. Информация о медиа-типе может быть полезной
во время определения, можно ли обрабатывать предоставленное
представление, и если да, то какой самый лучший способ
интерпретации этого представления. При использовании единица
информации-атрибут xmime:contentType ДОЛЖНА
появляться в свойстве [атрибуты](attributes) единицы
информации-элемент rep:Data. Если медиа-тип,
идентифицированный по значению единицы информации-атрибут
xmime:contentType является текстовым медиа-типом, то
значению единицы информации-атрибут
xmime:contentType СЛЕДУЕТ включать параметр
кодировки.
Пример, который использует единицы информации-атрибут
xmime:contentType, находится в Примерах.
Принимающий SOAP-узел МОЖЕТ действовать как resolver, соблюдая
все правила по HTTP-кэшам, с некоторыми или всеми URI
http: схем, для которых были даны представления. Чтобы это
сделать, один или больше единиц информации-элемент МОЖЕТ
быть доавлено свойству [атрибуты](attributes) единицы
информации-элемент rep:Representation, в целях
передачи требуемой информаци на HTTP-уровне.
Чтобы избежать необходимости понимания механизмов HTTP-кэширования всеми SOAP-отправителями, все данные, требуемые процессором желающим выступить в качестве локального кэша, должны переноситься вместе с сообщением. Это включает полный запрос, ответ, а также время посылания и получения первоначального HTTP-запроса.
<soap:Envelope xmlns:soap='http://www.w3.org/2003/05/soap-envelope'
xmlns:rep='http://www.w3.org/2004/08/representation'
xmlns:xmlmime='http://www.w3.org/2004/11/xmlmime'>
<soap:Header>
<rep:Representation resource='http://example.org/me.png'>
<rep:Data xmlmime:contentType='image/png'>/aWKKapGGyQ=</rep:Data>
<htx:env xmlns:htx="http://www.w3.org/2004/08/representation/http">
<htx:request>
<htx:request-line name="GET" version="HTTP/1.1">
/me.png
</htx:request-line>
<htx:header name="Host">
example.org
</htx:header>
<htx:header name="Accept">
image/png,image/jpeg,image/gif
</htx:header>
<htx:header name="Accept-Encoding">
gzip,deflate,compress;q=0.9
</htx:header>
<htx:header name="Date">
Fri, 13 Feb 2004 11:23:28 GMT
</htx:header>
[...]
<htx:time>
Fri, 13 Feb 2004 11:23:28 GMT
</htx:time>
</htx:request>
<htx:reply>
<htx:status-line version="HTTP/1.1" status="200">
OK
</htx:status-line>
<htx:header name="Content-Type">
image/png
<htx:header>
<htx:header name="Date">
Fri, 13 Feb 2004 11:23:28 GMT
</htx:header>
[...]
<htx:time>
Fri, 13 Feb 2004 11:23:32 GMT
</htx:time>
</htx:reply>
</htx:env>
</rep:Representation>
</soap:Header>
<soap:Body>
<x:MyData xmlns:x='http://example.org/mystuff'>
<x:name>John Q. Public</x:name>
<x:img src='http://example.org/me.png'/>
</x:MyData>
</soap:Body>
</soap:Envelope>
Заметьте, что если часы SOAP-отправителя и SOAP-получателя не синхронизированы, то все вычисления поо истечению срока действия/возрасту на получающей стороне не будут точно отражать возможные вычисления на стороне SOAP-отправителя.
Эта спецификация составлена Рабочеу группой W3C по XML-протоколам.
Членами этой Рабочей группы являются (на момент написания и в алфавитном порядке): David Fallside (IBM), Tony Graham (Sun Microsystems), Martin Gudgin (Microsoft Corporation, ранее в DevelopMentor), Marc Hadley (Sun Microsystems), Gerd Hoelzing (SAP AG), John Ibbotson (IBM), Anish Karmarkar (Oracle), Suresh Kodichath (IONA Technologies), Yves Lafon (W3C), Michael Mahan (Nokia), Noah Mendelsohn (IBM, ранее в Lotus Development), Jeff Mischkinsky (Oracle), Jean-Jacques Moreau (Canon), Mark Nottingham (BEA Systems, ранее в Akamai Technologies), David Orchard (BEA Systems, formerly of Jamcracker), Herve Ruellan (Canon), Jeff Schlimmer (Microsoft Corporation), Pete Wenzel (SeeBeyond), Volker Wiechers (SAP AG).
Ранее участвовали: Yasser alSafadi (Philips Research), Bill Anderson (Xerox), Vidur Apparao (Netscape), Camilo Arbelaez (webMethods), Mark Baker (Idokorro Mobile, Inc., ранее в Sun Microsystems), Philippe Bedu (EDF (Electricite De France)), Olivier Boudeville (EDF (Electricite De France)), Carine Bournez (W3C), Don Box (Microsoft Corporation, ранее в DevelopMentor), Tom Breuel (Xerox), Dick Brooks (Group 8760), Winston Bumpus (Novell, Inc.), David Burdett (Commerce One), Charles Campbell (Informix Software), Alex Ceponkus (Bowstreet), Michael Champion (Software AG), David Chappell (Sonic Software), Miles Chaston (Epicentric), David Clay (Oracle), David Cleary (Progress Software), Dave Cleary (webMethods), Ugo Corda (Xerox), Paul Cotton (Microsoft Corporation), Fransisco Cubera (IBM), Jim d'Augustine (Excelon Corporation), Ron Daniel (Interwoven), Glen Daniels (Macromedia), Doug Davis (IBM), Ray Denenberg (Library of Congress), Paul Denning (MITRE Corporation), Frank DeRose (TIBCO Software, Inc.), Mike Dierken (DataChannel), Andrew Eisenberg (Progress Software), Brian Eisenberg (DataChannel), Colleen Evans (Sonic Software), John Evdemon (XMLSolutions), David Ezell (Hewlett Packard), James Falek (TIBCO Software, Inc.), Eric Fedok (Active Data Exchange), Chris Ferris (Sun Microsystems), Daniela Florescu (Propel), Dan Frantz (BEA Systems), Michael Freeman (Engenia Software), Dietmar Gaertner (Software AG), Scott Golubock (Epicentric), Mike Greenberg (IONA Technologies), Rich Greenfield (Library of Congress), Hugo Haas (W3C), Mark Hale (Interwoven), Randy Hall (Intel), Bjoern Heckel (Epicentric), Frederick Hirsch (Zolera Systems), Erin Hoffmann (Tradia Inc.), Steve Hole (MessagingDirect Ltd.), Mary Holstege (Calico Commerce), Jim Hughes (Fujitsu Limited), Oisin Hurley (IONA Technologies), Yin-Leng Husband (Hewlett Packard, formerly of Compaq), Ryuji Inoue (Matsushita Electric Industrial Co., Ltd.), Scott Isaacson (Novell, Inc.), Kazunori Iwasa (Fujitsu Limited), Murali Janakiraman (Rogue Wave), Mario Jeckle (DaimlerChrysler Research and Technology), Eric Jenkins (Engenia Software), Mark Jones (AT&T), Jay Kasi (Commerce One), Jeffrey Kay (Engenia Software), Richard Koo (Vitria Technology Inc.), Jacek Kopecky (Systinet), Alan Kropp (Epicentric), Julian Kumar (Epicentric), Peter Lecuyer (Progress Software), Tony Lee (Vitria Technology Inc.), Michah Lerner (AT&T), Bob Lojek (Intalio Inc.), Henry Lowe (OMG), Brad Lund (Intel), Matthew MacKenzie (XMLGlobal Technologies), Murray Maloney (Commerce One), Richard Martin (Active Data Exchange), Alex Milowski (Lexica), Kevin Mitchell (XMLSolutions), Nilo Mitra (Ericsson), Ed Mooney (Sun Microsystems), Dean Moses (Epicentric), Highland Mary Mountain (Intel), Don Mullen (TIBCO Software, Inc.), Rekha Nagarajan (Calico Commerce), Raj Nair (Cisco Systems), Masahiko Narita (Fujitsu Limited), Mark Needleman (Data Research Associates), Art Nevarez (Novell, Inc.), Eric Newcomer (IONA Technologies), Henrik Nielsen (Microsoft Corporation), Conleth O'Connell (Vignette), Kevin Perkins (Compaq), Jags Ramnaryan (BEA Systems), Andreas Riegg (DaimlerChrysler Research and Technology), Vilhelm Rosenqvist (NCR), Marwan Sabbouh (MITRE Corporation), Waqar Sadiq (Vitria Technology Inc.), Rich Salz (Zolera Systems), Krishna Sankar (Cisco Systems), George Scott (Tradia Inc.), Shane Sesta (Active Data Exchange), Lew Shannon (NCR), John-Paul Sicotte (MessagingDirect Ltd.), Miroslav Simek (Systinet), Simeon Simeonov (Macromedia), Aaron Skonnard (DevelopMentor), Nick Smilonich (Unisys), Seumas Soltysik (IONA Technologies), Soumitro Tagore (Informix Software), James Tauber (Bowstreet), Anne Thomas Manes (Sun Microsystems), Lynne Thompson (Unisys), Patrick Thompson (Rogue Wave), Jim Trezzo (Oracle), Asir Vedamuthu (webMethods), Randy Waldrop (WebMethods), Fred Waskiewicz (OMG), David Webber (XMLGlobal Technologies), Ray Whitmer (Netscape), Stuart Williams (Hewlett Packard), Yan Xu (DataChannel), Amr Yassin (Philips Research), Susan Yee (Active Data Exchange), Jin Yu (MartSoft Corp.).
Этот документ ранее являлся отдельным разделом документа Механизмы оптимизации передачи SOAP-сообщений (MTOM). Особая благодарность выражается редакторам документа MTOM, а именно Марку Ноттингему и Герве Руеллану.
Мы выражаем свою глубокую признательность всем людям, которые вносили свои предложения по этому адресу xml-dist-app@w3.org.