>サイトトップへ >このカテゴリの一覧へ

X 7362

:2010 (ISO/IEC 29362:2008)

(1) 

目  次

ページ

序文

1

1

  適用範囲及び序論

1

1.1

  適用範囲

1

1.2

  他のプロファイルとの関係

2

1.3

  表記法

2

1.4

  プロファイルの識別及び版数

3

2

  プロファイルに対する適合性

3

2.1

  適合性の要件

3

2.2

  適合性の対象

4

2.3

  適合性の適用範囲

5

2.4

  適合性の表示

5

3

  添付データのパッケージング

5

3.1

  ルートパート

6

3.2

  ルートパートのエンコーディング

7

3.3

  メッセージのメディア型

7

3.4

  添付データをもたないメッセージ

7

3.5

  添付データの参照値読出し

9

3.6

  追加の SOAP エンベロープの添付

10

3.7

  添付データをもつフォルトメッセージ

10

3.8

  Content-Id ヘッダの値空間

10

3.9

  MIME パートの順序

11

3.10

  ルートパートの位置

12

3.11

  Content-Transfer-Encoding 

13

3.12

  MIME 境界文字列

13

4

  添付データの記述

13

4.1

  MIME バインディング拡張の使用

14

4.2

  バインドされていない portType 要素の内容

14

4.3

  メッセージのパートの参照

14

4.4

  SOAP エンベロープからの添付データの参照

16

4.5

  ルートパートの指定

23

4.6

  ルートパートにおける SOAP ヘッダの指定

24

4.7

  MIME バインディングスキーマの修正

25

4.8

  代替メディア型の指定

26

4.9

  WSDL の part 要素

26

4.10

  パートの順序

27


X 7362

:2010 (ISO/IEC 29362:2008)  目次

(2) 

ページ

4.11

  フォルトメッセージの送信

27

4.12

  フォルトの記述

27

4.13

  WSDL で記述されていない追加のパートの送信

27

4.14

  SOAP メッセージの適合性

27

4.15

  mime:content 要素を使用した添付データ記述の例

27

4.16

  swaRef を使用した添付データ記述の例

30

附属書 A(規定)引用規格

34

附属書 B(参考)拡張点

35

附属書 C(参考)参考規格

36

附属書 D(参考)定義された用語

37

附属書 E(参考)謝辞

38

附属書 JA(参考)用語集

39


X 7362

:2010 (ISO/IEC 29362:2008)

(3) 

まえがき

この規格は,工業標準化法第 12 条第 1 項の規定に基づき,独立行政法人情報処理推進機構 (IPA) から,

工業標準原案を具して日本工業規格を制定すべきとの申出があり,日本工業標準調査会の審議を経て,経

済産業大臣が制定した日本工業規格である。

この規格は,著作権法で保護対象となっている著作物である。

この規格の一部が,特許権,出願公開後の特許出願,実用新案権又は出願公開後の実用新案登録出願に

抵触する可能性があることに注意を喚起する。経済産業大臣及び日本工業標準調査会は,このような特許

権,出願公開後の特許出願,実用新案権及び出願公開後の実用新案登録出願にかかわる確認について,責

任はもたない。


X 7362

:2010 (ISO/IEC 29362:2008)  目次

(4) 

白      紙


日本工業規格

JIS

 X

7362

:2010

(ISO/IEC 29362

:2008

)

Web

サービス相互運用性−

WS-I

アタッチメントプロファイル 1.0

Information technology

−Web Services Interoperability−

WS-I Attachments Profile Version 1.0

序文

この規格は,2008 年に第 1 版として発行された ISO/IEC 29362 を基に,技術的内容及び対応国際規格の

構成を変更することなく作成した日本工業規格である。

なお,この規格で点線の下線を施してある参考事項及び

附属書 JA は,対応国際規格にはない事項であ

る。

1

適用範囲及び序論

1.1

適用範囲

この規格は,WS-I Attachments Profile 1.0(以下,このプロファイルという。

)を定義する。このプロファ

イルは非占有的 (non-proprietary) な Web サービス規格で構成され,相互運用性を向上させる規定の明確化

及び強化 (amplify) を含んでいる。このプロファイルは,相互運用可能な SOAP Messages with Attachments

に基づいた Web サービスのサポートを追加することで,JIS X 7361:2010  Web サービス相互運用性−WS-I

ベーシックプロファイル 1.1 (ISO/IEC 29361:2008,Information technology−Web Services Interoperability−

WS-I Basic Profile Version 1.1)

を補完している。

SOAP Messages with Attachments (SwA)

は,SOAP メッセージとともに添付データをパッケージングする

ための MIME multipart/related 構造を定義している。このプロファイルは,相互運用可能な SwA に基づく

SOAP

メッセージの添付データ  (attachments) の運び方に対するサポートを追加することで, JIS X 

7361:2010 (ISO/IEC 29361:2008)

を補完している。

箇条 は,このプロファイルを紹介し,他のプロファイルとの関係を示す。

箇条 は,このプロファイルに適合するとはどういう意味かを説明する。

それに続く各箇条は,このプロファイルの構成要素となるそれぞれの規格について示すもので,次の二

つの部分からなる。すなわち,構成要素となる規格及び拡張点 (extensibility point) を列挙した概要規定と,

それに続いて,構成要素となる規格の個別の部分について示した細分箇条との二つの部分である。

注記  この規格の対応国際規格及びその対応の程度を表す記号を,次に示す。

ISO/IEC 29362:2008

,Information technology−Web Services Interoperability−WS-I Attachments

Profile Version 1.0 (IDT)

なお,対応の程度を表す記号 (IDT) は,ISO/IEC Guide 21-1 に基づき,

“一致している”こ

とを示す。


2

X 7362

:2010 (ISO/IEC 29362:2008)

   

1.2

他のプロファイルとの関係

このプロファイルは,SOAP with Attachments 及び MIME バインディングに対するサポートを追加し,JIS 

X 7361:2010

と組み合わせて用いることを意図している。

1.3

表記法

この規格では,

“…しなければならない (MUST,SHALL)”

“…してはならない (MUST NOT,SHALL

NOT)

”,“必す(須)の… (REQUIRED)”,“…することが望ましい (SHOULD)”,“…しないほうがよい

(SHOULD NOT)

”,“ 推 奨 の … (RECOMMENDED) ”,“ … し て も よ い  (MAY) ” 及 び “ 省 略 可 能 の …

(OPTIONAL

)”の用語は,RFC2119  (http://www.ietf.org/rfc/rfc2119.txt)  に記述されているとおりに解釈す

る。

このプロファイルにおける要件(すなわち,2.1 に説明されている,適合性に影響するもの。

)は,次の

形式で提示される。

Rnnnn

要件の文章がここに入る。

ただし,ここで  "nnnn"  は,このプロファイル内で一意の要件番号で置き換えられ,一意の要件識別子

(unique requirement identifier)

を構成する。

要件識別子 (requirement identifier) は,Namespaces in XML 1.0(JIS X 4158:2005  XML 名前空間)の

QName

と互換性をもつような方法で,名前空間修飾されている (namespace qualified) とみなすことができ

る。ある要件の識別子に明示的な名前空間接頭辞が存在しない場合(例えば,"bp10:R9999"  ではなく

"R9999"

のような場合)

,その要件が存在する規格の箇条の適合性 URI (conformance URI)  によって識別さ

れる名前空間に属すると解釈するのが望ましい。名前空間修飾されている場合,その接頭辞は,次に記述

するとおり,そこで有効な名前空間の対応付けに従って解釈するのが望ましい。

幾つかの要件は,引用規格を明確化するだけで,実装に対して追加の制約を課さないものである。便宜

のため,規定の明確化 (clarification) は,次の例のように規定の後に“

〔明確化〕

”という注意を付けて表現

する。

例  Rnnnn  ……は,……でなければならない。

〔明確化〕

幾つかの要件は,引用規格の標準化されつつある内容を取り入れたものである。便宜上,そのような規

格の先取りは,次のように注記される:

xxxx

,ただし,ここで "xxxx" は,規格を示す識別子である(例え

ば,"WSDL20"  は WSDL 2.0 を示す。

。そのような規格はこの規格の対応国際規格の発行時点では完成し

ておらず,先取りした規格が変更されることもあり得ることに注意が必要である。この情報は,実装者に

対する便宜としてだけ含められている。

基となる規格にある拡張点 (extensibility point) (2.3 参照)は,同様に表示される。

Ennnn

−拡張点の名前−拡張点の記述

ただし,ここで  "nnnn"  は,このプロファイル内で一意の拡張点番号で置き換えられる。要件の記述と

同様,拡張点の記述も名前空間によって修飾されていると考えることができる。

この規格では,全体を通して次に示す幾つかの名前空間接頭辞 (namespace prefix) を使用する。各接頭


3

X 7362

:2010 (ISO/IEC 29362:2008)

辞に関連付けられた URI を,次に示す。名前空間接頭辞は,任意に選択したものであり,どのような文字

列を選択しても意味的に差異がないことに注意が必要である。

・  soap−"http://schemas.xmlsoap.org/soap/envelope/"

・  xsi−"http://www.w3.org/2001/XMLSchema-instance"

・  xsd−"http://www.w3.org/2001/XMLSchema"

・  soapenc−"http://schemas.xmlsoap.org/soap/encoding/"

・  wsdl−"http://schemas.xmlsoap.org/wsdl/"

・  soapbind−"http://schemas.xmlsoap.org/wsdl/soap/"

・  mime−"http://schemas.xmlsoap.org/wsdl/mime/"

・  uddi−"urn:uddi-org:api_v2"

・  wsi−"http://www.ws-i.org/schemas/conformanceClaim"

・  ref−"http://ws-i.org/profiles/basic/1.1/xsd"

1.4

プロファイルの識別及び版数

この規格は,名前(この場合,Attachments Profile)及び版数(ここでは,1.0)で識別される。両方を合

わせて,特定の

プロファイルインスタンス  (profile instance)  を識別する。

版数の番号はメジャー番号及びマイナー番号で構成され,"メジャー番号.マイナー番号"  の形式となる。

これらは,プロファイルの優先度を決定するのに利用できる。

(メジャー番号及びマイナー番号の両方を考

慮して)版数の番号が大きい場合,そのインスタンスは新しく,それ以前のインスタンスを置き換える。

同じ名前のプロファイルの複数のインスタンス(例えば,"Example Profile 1.1","Example Profile 5.0")

は,同じ一般的な適用範囲内にある相互運用性の問題に言及している(もっとも,状況の進展によって,

プロファイルの厳密な適用範囲がインスタンスの間で変わることがある。

この情報は,あるプロファイルの二つのインスタンスが後方互換 (backwards-compatible) であるかどう

か(すなわち,前のプロファイルインスタンスへの適合が後のプロファイルインスタンスへの適合を暗示

するものと想定できるかどうか。

)を判断するために使用できる。同じ名前とメジャー番号とをもつ複数の

プロファイルインスタンス(例えば,"Example Profile 1.0"  及び  "Example Profile 1.1")は,互換性がある

と考えてもよい。これは,逆方向への互換性を暗示するものではないことに注意が必要である。すなわち,

後のプロファイルインスタンスへの適合は,前のプロファイルインスタンスへの適合を暗示するものと想

定することはできない。

2

プロファイルに対する適合性

このプロファイルに対して適合しているということは,このプロファイルの

適用範囲  (scope)  内で,特

定の

対象  (target)  に対する要件  (requirements)  の集合を守ることであると定義されている。この箇条では,

これらの用語について説明し,どのように適合性が定義され使用されるかを説明する。

2.1

適合性の要件

要件 (requirements) は,このプロファイルに対する適合性の基準を提示する。要件は,典型的には既存

の規格を引用し,そこでの相互運用性を向上する詳細化,強化 (amplify),解釈及び明確化を具体化したも

のである。このプロファイルのすべての要件は規定 (normative) と解釈され,引用規格のうちの適用範囲

内の要件(2.3 参照)も同様に規定と解釈されるのが望ましい。このプロファイルの要件と引用規格の要件

とが互いに矛盾する場合,プロファイル適合性の観点からは,このプロファイルの要件が優先される。


4

X 7362

:2010 (ISO/IEC 29362:2008)

   

要件レベルは,RFC2119 (http://www.ietf.org/rfc/rfc2119.txt)  の用語(例えば,MUST,MAY,SHOULD)

を使い,要件の性質と適合性に対する影響力とを示す。個々の要件記述は,便宜上,個別に(R9999 のよ

うな)番号が振られている。

次に例を示す。

R9999  WIDGET 

は,丸い形状であることが望ましい

 (SHOULD)

この要件は "R9999" という識別子で識別され,適合性対象 WIDGET に対して適用され(適合性対象に

ついては後述。

,WIDGET に対する条件付きの要件を課す。すなわち,大部分の場合には適合性を維持す

るためにこの要件は満足しなければならないが,

それを満足しない正当な理由がある場合もある

(それは,

要件それ自体又は付随する文章で説明される。

それぞれの要件は,ちょうど一つの要件レベルキーワード(例えば,"MUST")と適合性対象キーワー

ド(例えば,"MESSAGE")とをもつ。適合性対象キーワードの場合は("MESSAGE"  のように)太字で

示される。その他の太字で示されない適合性対象は,それらの定義のためだけに用いられ,適合性対象と

しては使用されるわけではない。補足の文章(根拠,例など)が要件を明確にするために付け加えられる

こともあるが,要件記述そのものだけが適合性を判定するときに考慮されなければならない。

このプロファイルの用語定義は,適合性を決定するという用途において権威あるものとみなされる。

このプロファイルの要件はいずれも,適合性レベルに関係なく,現実の脅威又は想定される脅威[例え

ば,サービス妨害攻撃  (denial of service attack)]に対応して,それ以外の点では適合している実装がセキュ

リティ対策を講じる能力を制限するものと解釈しない方がよい。

2.2

適合性の対象

適合性対象 (conformance target) は,どの対象物 (artifact) (例えば,SOAP メッセージ,WSDL 記述,

UDDI

レジストリデータ)又はどの主体 (party) (例えば,SOAP 処理系,エンドユーザ)に要件が適用さ

れるかを識別するのに使われる。

これによって,異なる文脈における適合性の定義であっても,要件の適用可能性をあいまい(曖昧)性

なく解釈されることが保証され,さらに,対象物(例えば,SOAP メッセージ,WSDL 記述)及び各種の

Web

サービスの主体(例えば,クライアント,サービスのインスタンス)の動作に対する適合性試験が可

能となる。

試験を単純にし,あいまい(曖昧)性を排除するため,要件の適合性対象は可能な限り物理的な対象物

である。

このプロファイルでは,次の適合性対象を使用する。

・  MESSAGE−ENVELOPE を伝送する,プロトコルの構成要素(例えば,SOAP/HTTP メッセージ)

[JIS X 7361:2010 (ISO/IEC 29361:2008)]

・  ENVELOPE − soap:Envelope 要 素 を シ リ ア ラ イ ズ し た も の 及 び そ の 内 容   [JIS X 7361:2010

(ISO/IEC 29361:2008)]

・  DESCRIPTION−データ型の記述,メッセージの記述,インタフェース及びそれらの具体的なプ

ロトコル・データ形式へのバインディングの記述,並びに Web サービスに関連付けられたネット

ワ ー ク 上 の ア ク セ ス ポ イ ン ト の 記 述( 例え ば, WSDL 記 述 )   [JIS X 7361:2010 (ISO/IEC 

29361:2008)]

・  INSTANCE−wsdl:port 要素又は uddi:bindingTemplate 要素を実装するソフトウェア[JIS 


5

X 7362

:2010 (ISO/IEC 29362:2008)

X 7361:2010 (ISO/IEC 29361:2008)]

・  CONSUMER − INSTANCE を 起 動  (invoke) す る ソ フ ト ウ ェ ア   [JIS X 7361:2010 (ISO/IEC 

29361:2008)]

・  SENDER−関連付けられたプロトコルに基づき,メッセージを生成 (generate) するソフトウェア

[JIS X 7361:2010 (ISO/IEC 29361:2008)]

・  RECEIVER−関連付けされたプロトコルに基づき,メッセージを受信 (consume) するソフトウェ

ア(例えば,SOAP 処理系)  [JIS X 7361:2010 (ISO/IEC 29361:2008)]

2.3

適合性の適用範囲

このプロファイルは,既存の技術を採用(引用)し,その明確化を行う。言い換えれば,このプロファ

イルは,その適用範囲の中での相互運用性を向上することだけを図っている。一般的には,このプロファ

イルの適用範囲は,それが引用する規格によって限定される。

このプロファイルの適用範囲は,拡張点 (extensibility points) によって更に詳細化される。引用規格は,

拡張メカニズム,及び未規定の又は未確定の構成パラメタを提供していることがある。このプロファイル

で拡張点と認識された場合,

そのようなメカニズム又はパラメタはこのプロファイルの適用範囲外であり,

それを使っても使わなくてもこのプロファイルに対する適合性において意味をもたない。

このプロファイルは,さらに,拡張点の使用について,その範囲を制限することなく,要件を課すこと

がある。また,拡張点の特定の使用方法について,このプロファイルが他のプロファイルと組み合わせて

使われた場合に,相互運用性を向上するために,他のプロファイルで制限されることがある。

拡張点の使用は相互運用性を損なうことがあるので,その使用は Web サービスの関係者によって何らか

の形で個別協議するか,文書化するのが望ましい。例えば,これは個別合意 (out-of-band agreement) の形

をとるかもしれない。

このプロファイルの適用範囲は,

附属書 の引用規格によって定義され,附属書 の拡張点によって詳

細化される。

2.4

適合性の表示

こ の プ ロ フ ァ イ ル に 対 す る 適 合 性 の 表 示 は , Conformance Claim Attachment Mechanisms

(http://www.ws-i.org/Profiles/ConformanceClaims-1.0.html,適合性表示添付メカニズム)の記述に従い,次

に示す各メカニズムを使って行うことができる。この場合,各メカニズムが列挙する対象物に関連付けら

れた,このプロファイルの適用可能要件が満足されていることが条件となる。

・  Web

サ ー ビ ス イ ン ス タ ン ス に 対 す る WSDL 1.1 適 合 性 表 示 添 付 メ カ ニ ズ ム − MESSAGE

DESCRIPTION INSTANCE RECEIVER

・  WSDL

記述の構造に対する WSDL 1.1 適合性表示添付メカニズム−DESCRIPTION

・  Web

サ ー ビ ス イ ン ス タ ン ス に 対 す る UDDI 適 合 性 表 示 添 付 メ カ ニ ズ ム − MESSAGE

DESCRIPTION INSTANCE RECEIVER

このプロファイルに対する適合性表示 URI は,"http://ws-i.org/profiles/attachments/1.0"  である。

3

添付データのパッケージング

このプロファイルのこの箇条では,次の規格を引用し,その中での拡張点を規定する。


6

X 7362

:2010 (ISO/IEC 29362:2008)

   

・  SOAP Messages with Attachments (http://www.w3.org/TR/SOAP-attachments#SOAPMultipart)

拡張点:

E0001

−MIME パート−SOAP Messages with Attachments は,multipart/related メッセージの

非ルートパート (non-root part) の型には制限を置かない。

・  Extensible Markup Language (XML) 1.0 (Second Edition)

  (http://www.w3.org/TR/2000/REC-xml-20001006)

・  Namespaces in XML 1.0(JIS X 4158:2005  XML 名前空間)

  (http://www.w3.org/TR/1999/REC-xml-names-19990114/)]

・  RFC2557 MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)

  (http://ietf.org/rfc/rfc2557)

・  JIS X 5810-1  多目的インターネットメール拡張 (MIME) −第 1 部:インターネットメッセージ

本体のフォーマット  [RFC2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format

of Internet Message Bodies (http://ietf.org/rfc/rfc2045)]

・  JIS X 5810-2  多目的インターネットメール拡張 (MIME) −第 2 部:メディア型  [RFC2046

Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types (http://ietf.org/rfc/rfc2046)]

・  RFC2392 Content-ID and Message-ID Uniform Resource Locators (http://ietf.org/rfc/rfc2392)

SOAP Messages with Attachments

は,SOAP エンベロープを添付データとともにパッケージングするため

の MIME  multipart/related 構造を定義する。このプロファイルは,この構造を利用することを必す

(須)としており,その利用方法について,次の制約を課す。

3.1

ルートパート

R2931  multipart/related MESSAGE

のルートパート

 (root part) 

の実体本体

 (entity body) 

は,

soap:Envelope

要素でなければならない

  (MUST)

R2945  MESSAGE

の中の

Content-Type HTTP

ヘッダフィールドの値は,

"multipart/related" 

又は

"text/xml" 

のいずれかでなければならない

  (MUST)

〔明確化〕

R2932  MESSAGE

の中の

Content-Type HTTP

ヘッダフィールドの値が

 "multipart/related" 

のメ

ディア型の場合,そのメッセージの中の

Content-Type HTTP

ヘッダフィールドの値は

type

パラメタの値が

 "text/xml" 

でなければならない

  (MUST)

〔明確化〕

いずれの MIME パートも soap:Envelope 要素を含んでよいが,MIME パッケージのルートパートの本

体だけが,基本の SOAP エンベロープとして扱われる。非ルートパート (non-root parts) は,添付データと

して参照される。

次に例を示す。

正しい例:

次のメッセージでは,Content-Type HTTP ヘッダフィールドの値は,メディア型が

"Multipart/Related"

で type パラメタの値が "text/xml" となっている。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;


7

X 7362

:2010 (ISO/IEC 29362:2008)

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>

<?xml version='1.0' ?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

...

</SOAP-ENV:Envelope>

--MIME_boundary

...

--MIME_boundary--

3.2

ルートパートのエンコーディング

R2915  multipart/related

MESSAGE

のルートパート

  (root part) 

の実体本体

  (entity body)

は,

UTF-8

又は

UTF-16

のいずれかの文字エンコーディングを用いてシリアライズされな

ければならない

 (MUST)

R2916  multipart/related

MESSAGE

の非ルートパート

 (non-root parts) 

では,いかなる

文字エンコーディングを用いてもよい

  (MAY) 

 

3.3

メッセージのメディア型

R2925  WSDL

記述が少なくとも

1

個の非ルート

MIME

パートを列挙している場合,対応する

MESSAGE

は,

Content-Type

 HTTP

ヘッダフィールドの値として

 "multipart/related" 

もたなければならない

  (MUST)

3.4

添付データをもたないメッセージ

受信側がメッセージに 0 個以上の添付データを想定している場合,そのメッセージの送信側は,添付デ

ータのないメッセージに text/xml メディア型を使うことができる。

R2917  WSDL

記述が

wsdl:binding

要素の中の対応する

wsdl:input

要素又は

wsdl:output

要素に

mime:multipartRelated

要素を指定しているにもかかわらず,添付データのパートをもたな

MESSAGE

は,

Content-Type HTTP

ヘッダフィールドに

 "text/xml"

SOAP HTTP

インディングが使われたときと同様な方式)又は

 "multipart/related" 

のいずれかを指定し

て送られなければならない

  (MUST)

 

R2902  SENDER

は,

wsdl:binding

要素の中の対応する

wsdl:input

要素又は

wsdl:output

要素に

WSDL MIME

バインディングを指定していない場合,

SOAP with Attachments

を使ってメ

ッセージを送ってはならない

  (MUST NOT)

 


8

X 7362

:2010 (ISO/IEC 29362:2008)

   

こ れ は , WSDL 記 述 が soapbind:body 要 素 を 含 む mime:part 子 要 素 を 一 つ だ け も つ

mime:multipartRelated

要素を指定している場合にだけ起こる。

次に例を示す。

正しい例:

次のような WSDL 記述を考える。

<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

...

    <wsdl:binding  name="aBinding"  type="tns:aPortType">

        <soapbind:binding  style="rpc"

                          transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="anOperation">

            <soap:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  use="literal"

                                       namespace="http://example.com/mimetypes"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

                <soapbind:body  use="literal"

                               namespace="http://example.com/mimetypes"/>

            </wsdl:output>

        </wsdl:operation>

 </wsdl:binding>

</wsdl:definitions>

上の WSDL 記述から,次のような SOAP HTTP バインディングの入力メッセージを生成しても

よい。


9

X 7362

:2010 (ISO/IEC 29362:2008)

<?xml version='1.0' ?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:anOperation>

 ...

         </types:anOperation>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

しかしながら,次のような MIME バインディングの出力メッセージを生成してはならない。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;

        start="<rootpart

@example.com>"

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

 xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:anOperationResponse>

...

        </types:anOperationResponse>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

--MIME_boundary--

3.5

添付データの参照値読出し

Web

サービスを使うアプリケーションは,ネットワークからコンテンツを取り出すことを含め,様々な

方法で URI を使用できる。

添付データは,

URI

で認識されるコンテンツを送り届けるために使用できるが,

実装は,添付データのコンテンツを優先すること,添付データだけを使用すること,及び添付データを全

く使用しないことのいずれも要求されない。同様に,アプリケーションは URI の参照値読出し機能(例え

ば,ネットワークからコンテンツを取ってくること。

)を無視し,添付されたコンテンツだけを使うことも

選択できる。


10

X 7362

:2010 (ISO/IEC 29362:2008)

   

CID URI

スキームを使用する場合,RFC2392 で定義された構文と規則とが適用される。

R2918  RECEIVER

は,エンベロープ中にある添付データへの

URI

参照を無視してもよい

(MAY)

3.6

追加の SOAP エンベロープの添付

このプロファイルでは,添付データパートの内容については何の制約も課さない。soap:Envelope 要

素を含んだ追加の XML 文書を添付データとして送ってもよいが,MIME メッセージのルートパートだけ

が,MIME パッケージの中の SOAP エンベロープとして扱われるのが望ましい。

R2919  MESSAGE

は,ルートパート以外のパート中に,添付データとして運ばれる

soap:Envelope

要素をもっていてもよい

  (MAY)

3.7

添付データをもつフォルトメッセージ

R2920  wsdl:output

要素が

WSDL MIME

バインディングを使って記述されている場合に限り,

INSTANCE

は,

添付データのついたフォルトを送ってもよい

  (MAY)

 

3.8

Content-Id

ヘッダの値空間

定義: content-id へのパート名エンコーディング  (content-id part encoding)  は,次の構成要素を連結したも

のである。

・ mime:content 要素によって参照される wsdl:part 要素の name 属性の値。ただし,

content-id

ヘッダで禁止された文字(0x7F を超えるコードポイントで表現される非 ASCII

文字)は,次の方式でエスケープする。

それぞれの禁止された文字を 1 バイト以上の UTF-8 に変換する。

禁止された文字を構成する各バイトを URI エスケープ方式でエスケープする(すな

わち,%HH の形式に変換する。ただし,ここで HH はバイト値の 16 進数表現であ

る。

元の文字をエスケープ結果の文字列で置き換える。

・  文字 '=' (0x3D)。

・  UUID のような,大域的に一意な値。

・  文字 '@' (0x40)。

・  メッセージを生成する実体の管理下にある,有効なドメイン名。

R2933  WSDL

記述が

wsdl:message

要素のパートを

mime:content

要素にバインドしている

場合,

MESSAGE

の中の対応する

MIME

のパートの

Content-Id

 

フィールドの値は,

content-id

へのパート名エンコーディング

 (content-id part encoding) 

に適合しなければな

らない

  (MUST)

 

次に例を示す。

正しい例:

次の WSDL の中で,mime:content 要素にバインドされたパートの名前が content-id の値に追加さ

れる。


11

X 7362

:2010 (ISO/IEC 29362:2008)

<wsdl:message name="fooMsg">

  <wsdl:part  name="body"  type="ns1:Claim"/>

  <wsdl:part  name="fooPart"  type="xs:base64binary"/>

</wsdl:message>

...

<wsdl:binding

    ...

    <mime:multipartRelated>

      <mime:part>

        <soapbind:body  parts="body"  use="literal"/>

      </mime:part>

      <mime:part>

        <mime:content  part="fooPart"  type="application/octet-stream"/>

      </mime:part>

    </mime:multipartRelated>

    ...

</wsdl:binding>

次に示すマルチパートのパッケージは fooPart のバイナリストリームを含み,wsdl:part 要

素の "name" 属性の値がどのように content-id の値に取り込まれるかを強調している。

...

--MIME_boundary

Content-Type: application/octet-stream

Content-Transfer-Encoding: 8bit

Content-ID: <fooPart=somereallybignumberlikeauuid

@example.com>

...

3.9

MIME

パートの順序

中継ノード (intermediaries) が multipart/related メッセージ中のパートの順序を入れ替える可能性

がある。したがって,メッセージ中のパートの順序に意味をもたせることは,明示的にも暗黙的にも,行

わないほうがよい。

R2921  RECEIVER

は,メッセージ中の非ルート

MIME

パートの順序から,いかなる意味も推定

してはならない

  (MUST NOT)

 

R2929  MESSAGE

は,ルートパートがどれであるかということを変えない限り,

MIME

パート

をどのような順序で並べてもよい

  (MAY)

受信側は,WSDL 記述の mime:part 要素の指定された順序が,メッセージの中の MIME パートの順序

と同じであると想定してはならない。WSDL 記述の中の MIME パートの順序は,メッセージの中の MIME


12

X 7362

:2010 (ISO/IEC 29362:2008)

   

パートの順序とは独立であると解釈されなければならない。

3.10

ルートパートの位置

start

パラメタが存在する場合,start パラメタの値がメッセージのルートパートの content-ID で

ある。start パラメタが存在しない場合,RFC2387 の 3.2 に定義されているとおり,ルートパートはパッ

ケージの最初のボディパートである。

R2922

メッセージ中の

HTTP

ヘッダの

Content-Type

フィールドの値に

start

パラメタが存

在しない場合,

RECEIVER

は,

MIME

パッケージの最初のボディパートをルートパート

として扱わなければならない

  (MUST)

〔明確化〕

次に例を示す。

正しい例:

次のメッセージでは,先頭の MIME パート(Content-ID ヘッダの値が

"<rootpart@example.com>"

になっている。)がルートパートである。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>

<?xml version='1.0' ?>

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:SendClaim>

            <ClaimDetail>.............................</ClaimDetail>

            <photo>

              <href>cid:claimphoto

@example.com</href>

            </photo>

        </types:SendClaim>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

--MIME_boundary

Content-Type: application/octet-stream

Content-Transfer-Encoding: binary


13

X 7362

:2010 (ISO/IEC 29362:2008)

Content-ID: <claimphoto

@example.com>

...binary photograph...

--MIME_boundary--

3.11  Content-Transfer-Encoding

Content-Transfer-Encoding

メカニズムは,バイナリのコンテンツの転送をサポートしていないトランスポ

ートを通してメッセージを送ることを可能にする。例えば,幾つかの電子メールシステムでは文字ベース

のメッセージ転送しかサポートしていない。Web サービスのメッセージはそのようなシステムを起点又は

終点とし得るので,このプロファイルではこのメカニズムの使用を許容している。

MIME

のマルチパートメッセージのあるパートに Content-Transfer-Encoding フィールドが存在しない場

合,そのパートの本体は,JIS X 5810-1 (RFC2045)  に規定されているとおり,7 ビットの ASCII エンコー

ディングに適合しなければならない。

R2934  multipart/related

メッセージ

の各パートにおける

Content-Transfer-Encoding

フィールド

は,

"7bit"

"8bit"

"binary"

"quoted-printable" 

又は

 "base64" 

のいずれかの値をもたなけ

ればならない

  (MUST)

R2935  multipart/related

メッセージ

の各パートの本体のエンコーディングは,

JIS X 5810-1 

(RFC2045) 

に規定されているとおり,

Content-Transfer-Encoding

フィールドの値で示さ

れるエンコーディングに従わなければならない

  (MUST)

〔明確化〕

このプロファイルでは,相互運用性を向上させるため,有効な値をよく知られているものに限定してい

る。

3.12  MIME

境界文字列

幾つかの実装は,MIME  カプセル化境界文字列の前に CRLF(carriage-return line-feed,復帰改行)を置

かないメッセージを生成することがある。これは,カプセル化境界文字列の前に正しく CRLF が置かれる

ことを想定している実装に対して問題となる。

R2936  MESSAGE

の中では,最初の

MIME

パートの境界文字列を除き,すべての

  MIME

カプセ

ル化境界文字列の前に

ASCII

文字の

CR (13) 

LF (10) 

とをこの順で置かなければならな

  (MUST)

〔明確化〕

JIS X 5810-2 (RFC2046)

の 5.1.1(共通構文)は,すべてのカプセル化境界の前に CRLF(復帰改行)を

置くことを明確に要求している。

注記  対応国際規格には,RFC2046 の 5.5.1 と記載されているが,5.1.1 が正しい。

4

添付データの記述

このプロファイルのこの箇条では,次の規格を引用する。

・  WSDL 1.1 の 5.0 (http://www.w3.org/TR/2001/NOTE-wsdl-20010315#_Toc492291084)


14

X 7362

:2010 (ISO/IEC 29362:2008)

   

WSDL 1.1

の は,MIME  バインディングを定義している。このプロファイルは WSDL MIME バインデ

ィングの使用を認めるが,それを SOAP Messages with Attachments プロトコルに限定する。このプロファイ

ルは,その使用に関し次の制約を課す。

4.1

MIME

バインディング拡張の使用

送信側が,SOAP with Attachments を使ってメッセージを送信することはできるが,そのようなメッセー

ジを受信して処理することはできないというユースケースは存在し得る。

R2901  DESCRIPTION

は,

WSDL 1.1

5

に記述されている

WSDL MIME

バインディングか,

WSDL 1.1

3

に記述されている

WSDL SOAP

バインディングかのいずれかを,

wsdl:binding

要素の

wsdl:input

要素及び

wsdl:output

要素のそれぞれに使用し

なければならない

  (MUST)

4.2

バインドされていない portType 要素の内容

WSDL 1.1

では,wsdl:binding 要素が wsdl:portType 要素で定義された内容の一部分に対するバイ

ンディングを指定しないことについて,許容されるかどうかが明記されていない。

R2941  DESCRIPTION

の中の

wsdl:binding

要素は,それが参照している

wsdl:portType

要素の中の

wsdl:message

要素の各

wsdl:part

要素について,

soapbind:body

要素,

soapbind:header

要素,

soapbind:fault

要素,

soapbind:headerfault

要素又

mime:content

要素のいずれかにバインドすることが望ましい

  (SHOULD)

portType

は,operation 要素の組とそれに関連付けられた抽象的な message 要素群とをもつ抽象的なイン

タフェース仕様 (abstract contract) に名前を付けたものである。WSDL 1.1 では,wsdl:binding 要素が

wsdl:portType

要素で定義された内容のうち部分に対するバインドを指定しないことは禁止されているわけ

ではないが,portType の中の抽象的な input 要素,output 要素及び fault 要素から参照される message 要素内

それぞれの part 要素は,MIME  バインディングを使うときは,WSDL 1.1 の に定義されているように,

soapbind:body

要素,soapbind:header 要素など,又は mime:content 要素に適切にバインドされ

ることが想定されている。バインドされていない wsdl:part 要素は利用側 (consumer) から無視されるの

が望ましい。

4.3

メッセージのパートの参照

WSDL

中のメッセージのパートは,

(mime:content 要素を使って)特定の MIME パートにバインドで

きる。soapbind:header 要素が wsdl:portType 要素によって定義される抽象的なインタフェース仕

様  (contract) の一部で は な い message 要 素 に 含ま れ る part 要素 を参 照して もよ いのと は異 な り ,

mime:content

要素は,wsdl:operation 要素から参照される message 要素に定義されていない part 要

素を参照してはならない。加えて,WSDL の中のメッセージのパートは,不可分の単位とみなされる。複

雑な内容をもつメッセージのパートの構成要素を,選択的に特定の MIME パートにバインドすることはで

きない。

R2903  DESCRIPTION

中の

mime:content

要素は,対応する

wsdl:portType

要素の対応す

wsdl:operation

要素の対応する

wsdl:input

要素又は

wsdl:output

要素の中に

現れない

wsdl:part

要素を参照してはならない

  (MUST NOT)


15

X 7362

:2010 (ISO/IEC 29362:2008)

R2904  DESCRIPTION

中の

mime:content

要素は,

wsdl:part

要素から参照される要素

(element) 

又は型

 (type) 

の内部構成要素

 (sub-component) 

にバインドされてはならない

 

(MUST NOT)

R2946  DESCRIPTION

の中では,

mime:content

要素は

part

属性を含まなければならない

(MUST)

 

次に例を示す。

間違っている例:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/">

  <types  ...>

    <schema  xmlns="http://www.w3.org/2001/XMLSchema/"

            targetNamespace="http://example.org/foo"

            xmlns:ns="http://example.org/foo">

      <element  name='foo'>

        <complextContent>

          <sequence>

            <element  ref='bar1'/>

            <element  ref='bar2'/>

         </sequence>

      </complexContent>

    </element>

  </schema>

</types>

 ...

<message name='aMsg'>

  <part name='apart' element='ns:foo' />

  <part  name="body"  element="ns:bar"/>

</message>

<portType>

  <operation>

    <input>

      <part  name="apart">

    </input>

...

  </operation>

</portType>

<binding>

  <operation>

    <input>


16

X 7362

:2010 (ISO/IEC 29362:2008)

   

      <mime:multipartRelated>

        <mime:part>

          <soapbind:body  part="body"  use="literal"/>

        </mime:part>

        <mime:part>

          <mime:content  part="ns:bar1"/>

        </mime:part>

      </mime:multipartRelated>

    </input>

...

  </operation>

</binding>

</definitions>

4.4

SOAP

エンベロープからの添付データの参照

添付データを用いることの利点の一つは,分離された MIME パートにデータを格納して,同じ MIME

パッケージのルートパートに含まれる SOAP エンベロープからそれを参照できることである。

このプロファイルは,WSDL 記述の中でメッセージのパートを定義するために使用できるスキーマ型

ref:swaRef

を定義している。あるメッセージのパートが ref:swaRef 型を使って記述された場合,イ

ンスタンス文書では,その URI は同じ MIME パッケージ内の添付データを指す。この型は,アプリケーシ

ョン,ツール及びプラットフォームの開発者に対して,WSDL 記述の中に,添付データへの参照であるこ

とを指定する相互運用可能な手段を提供する。かといって,他の手段を用いることが,WSDL を非適合

(non-conformant)

にしてしまうということではない。

次に,SOAP エンベロープから添付データを参照することに使われる型の XML Schema を示す。

<?xml version="1.0" encoding="UTF-8" ?>

<xsd:schema targetNamespace="http://ws-i.org/profiles/basic/1.1/xsd"

            xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:simpleType  name="swaRef">

    <xsd:restriction  base="xsd:anyURI"  />

  </xsd:simpleType>

</xsd:schema>

利用の便宜を図るため,WS-I はこのスキーマ型のスキーマを次の場所で公開している。

http://ws-i.org/profiles/basic/1.1/swaref.xsd

WSDL 1.1

の記述には,

(swaRef を使って定義された)添付データの参照と,

(mime:content 要素にバイ

ンドされた wsdl:part 要素を使って定義された)添付データとの間を関連付ける手段はないことに注意が必

要である。このプロファイルでは,ref:swaRef が使われた場合,対応する添付データを WSDL に記述

しない,又は反対に,添付データが WSDL に記述された場合,それに対して ref:swaRef を使わないこ

とをベストプラクティスとして推奨している。


17

X 7362

:2010 (ISO/IEC 29362:2008)

R2940  DESCRIPTION

中で,

ref:swaRef

のスキーマ型で定義された

wsdl:part

要素は,

MIME

バインディングの

soapbind:body

要素又は

soapbind:header

要素だけにバインドさ

れることが望ましい

  (SHOULD)

R2928  ENVELOPE

の中において,

ref:swaRef

スキーマ型を使って型付けされた

URI

参照を

解決した結果は,エンベロープと同じメッセージ中の

MIME

パートを指していなければ

ならない

  (MUST)

 

swaRef

型は,添付データに対する参照を示すのに,

(次の例に示すように)要素として使っても,属性

として使ってもよい。どちらの方法が望ましいというわけではない。

次に例を示す。

正しい例:

rpc/literal

バインディングに対する WSDL 記述を考える。

<?xml version="1.0"?>

<wsdl:definitions xmlns:types="http://example.com/mimetypes"

                  xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"

                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

    <wsdl:types>

        <xsd:schema  targetNamespace="http://example.com/mimetypes"

                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

            <xsd:import  namespace="http://ws-i.org/profiles/basic/1.1/xsd"  />

            <xsd:complexType  name="ClaimDetailType">

                <xsd:sequence>

                    <xsd:element  name="Name"  type="xsd:string"/>

                    <xsd:element  name="ClaimForm"  type="ref:swaRef"/>

                </xsd:sequence>

            </xsd:complexType>

        </xsd:schema>

    </wsdl:types>

    <wsdl:message  name="ClaimIn">


18

X 7362

:2010 (ISO/IEC 29362:2008)

   

        <wsdl:part  name="ClaimDetail"  type="types:ClaimDetailType"/>

        <wsdl:part name="ClaimPhoto" type="xsd:base64Binary"/>

    </wsdl:message>

    <wsdl:message  name="ClaimOut">

        <wsdl:part  name="ClaimRefNo"  type="xsd:string"/>

    </wsdl:message>

    <wsdl:portType  name="ClaimPortType">

        <wsdl:operation  name="SendClaim">

            <wsdl:input  message="tns:ClaimIn"/>

            <wsdl:output  message="tns:ClaimOut"/>

        </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding  name="ClaimBinding"  type="tns:ClaimPortType">

        <soapbind:binding  style="rpc"

                          transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="SendClaim">

            <soapbind:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  use="literal"

                                       parts="ClaimDetail"

                                       namespace="http://example.com/mimetypes"/>

                    </mime:part>

                    <mime:part>

                        <mime:content part="ClaimPhoto"

                                      type="image/jpeg"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

                <soapbind:body  use="literal"

                               namespace="http://example.com/mimetypes"/>

            </wsdl:output>

        </wsdl:operation>

 </wsdl:binding>

</wsdl:definitions>


19

X 7362

:2010 (ISO/IEC 29362:2008)

結果として生成される "SendClaim" の rpc/literal オペレーションに対する入力メッセージは,次

のとおり。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;

        start="<rootpart

@example.com>"

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:SendClaim>

            <ClaimDetail>

                <Name>...</Name>

                <ClaimForm>cid:claimform

@example.com</ClaimForm>

            </ClaimDetail>

        </types:SendClaim>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

--MIME_boundary

Content-Type: text/xml

Content-Transfer-Encoding: 8bit

Content-ID: <claimform

@example.com>

...claim form referenced by the swaRef...

--MIME_boundary

Content-Type: image/jpeg

Content-Transfer-Encoding: binary

Content-ID: <ClaimPhoto=4d7a5fa2-14af-451c-961b-5c3abf786796

@example.com>

...MIME attachment of binary photograph...


20

X 7362

:2010 (ISO/IEC 29362:2008)

   

--MIME_boundary--

結果として生成される "SendClaim" の rpc/literal オペレーションに対する出力メッセージは,次

のとおり。

MIME-Version: 1.0

Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:SendClaimResponse>

            <ClaimRefNo>.............................</ClaimRefNo>

        </types:SendClaimResponse>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

正しい例:

document/literal

バインディングに対する WSDL 記述を考える。

<?xml version="1.0" encoding="utf-8" ?>

<wsdl:definitions xmlns:types="http://example.com/mimetypes"

                  xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"

                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

    <wsdl:types>

        <xsd:schema  targetNamespace="http://example.com/mimetypes"

                xmlns:xsd="http://www.w3.org/2001/XMLSchema">

            <xsd:import  namespace="http://ws-i.org/profiles/basic/1.1/xsd"  />

            <xsd:element  name="ClaimDetail"  type="types:ClaimDetailType"/>

            <xsd:complexType  name="ClaimDetailType">

                <xsd:sequence>

                    <xsd:element  name="Name"  type="xsd:string"/>


21

X 7362

:2010 (ISO/IEC 29362:2008)

                    <xsd:element  name="ClaimForm"  type="ref:swaRef"/>

                </xsd:sequence>

            </xsd:complexType>

            <xsd:element  name="ClaimRefNo"  type="xsd:string"/>

        </xsd:schema>

    </wsdl:types>

    <wsdl:message  name="ClaimIn">

        <wsdl:part  name="body"  element="types:ClaimDetail"/>

        <wsdl:part name="ClaimPhoto" type="xsd:base64Binary"/>

    </wsdl:message>

    <wsdl:message  name="ClaimOut">

        <wsdl:part  name="out"  element="types:ClaimRefNo"/>

    </wsdl:message>

    <wsdl:portType  name="ClaimPortType">

        <wsdl:operation  name="SendClaim">

            <wsdl:input  message="tns:ClaimIn"/>

            <wsdl:output  message="tns:ClaimOut"/>

        </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding  name="ClaimBinding"  type="tns:ClaimPortType">

        <soapbind:binding  style="document"

                          transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="SendClaim">

            <soapbind:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  parts="body"  use="literal"/>

                    </mime:part>

                    <mime:part>

                        <mime:content part="ClaimPhoto" type="image/jpeg"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

                <soapbind:body  use="literal"  />


22

X 7362

:2010 (ISO/IEC 29362:2008)

   

            </wsdl:output>

        </wsdl:operation>

    </wsdl:binding>

</wsdl:definitions>

結果として生成される "SendClaim" の document/literal オペレーションに対する入力メッセージ

は,次のとおり。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;

        start="<rootpart

@example.com>"

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

            <types:ClaimDetail>

                <Name>...</Name>

                <ClaimForm>cid:claimform

@example.com</ClaimForm>

            </types:ClaimDetail>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

--MIME_boundary

Content-Type: text/xml

Content-Transfer-Encoding: 8bit

Content-ID: <claimform

@example.com>

...claim form referenced by the swaRef...

--MIME_boundary

Content-Type: image/jpeg

Content-Transfer-Encoding: binary

Content-ID: <ClaimPhoto=4d7a5fa2-14af-451c-961b-5c3abf786796

@example.com>


23

X 7362

:2010 (ISO/IEC 29362:2008)

...MIME attachment of binary photograph...

--MIME_boundary--

結果として生成される "SendClaim" の document/literal オペレーションに対する出力メッセージ

は,次のとおり。

MIME-Version: 1.0

Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:ClaimRefNo>...............</types:ClaimRefNo>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

4.5

ルートパートの指定

SOAP Messages with Attachments

は,multipart/related パッケージのルートパートが SOAP エンベロープを

含まなければならないと要求している。しかし,WSDL の MIME バインディングはそれをどう記述するか

明確ではない。

R2911  DESCRIPTION

中の

mime:multipartRelated

要素は,その子要素である

mime:part

要素の中で,

soapbind:body

を子要素として含む

mime:part

要素を,厳密に

1

個もた

なければならない

  (MUST)

〔明確化〕

WSDL

の MIME バインディングでは,soapbind:body 要素を含む mime:part 要素が,SOAP Messages

with Attachments

で要求されているルート MIME パートを記述する。

次に例を示す。

間違っている例:

<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

...


24

X 7362

:2010 (ISO/IEC 29362:2008)

   

    <wsdl:binding  name="aBinding"  type="tns:aPortType">

        <soapbind:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="anOperation">

            <soap:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  use="literal"

                                       namespace="http://example.com/mimetypes"/>

                    </mime:part>

                    <mime:part>

                        <soapbind:body  use="literal"

                                       namespace="http://example.com/mimetypes"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

 ...

             </wsdl:output>

        </wsdl:operation>

 </wsdl:binding>

</wsdl:definitions>

4.6

ルートパートにおける SOAP ヘッダの指定

WSDL 1.1

は,soapbind:header 要素が soapbind:body 要素と一緒に mime:part 要素の子要素と

して同居することが許されるかどうか規定していない。SOAP Messages with Attachments はマルチパートメ

ッセージのルートパートが SOAP エンベロープを含むことを要求しているが,WSDL 1.1 はこのパートを

どのように記述するかについて明らかではない。WSDL 1.1 は mime:part 要素が multipart/related メッセ

ージの個々のパートを記述するのに使われることを規定しているので,マルチパートメッセージのルート

パートを表す mime:part 要素の内容は,WSDL MIME バインディング拡張がなかった場合と同様,

soapbind:body

要素及び soapbind:header 要素を含めた SOAP エンベロープを完全に記述しなけれ

ばならない。

R2905  DESCRIPTION

中の

soapbind:header

要素は,

mime:part

要素の子要素として含ま

れてもよい

  (MAY)

〔明確化〕

R2906  DESCRIPTION

中の

soapbind:header

要素は,ルートパート(

soapbind:body

要素

をもつ。)ではない

mime:part

要素に含まれてはならない

  (MUST NOT)

〔明確化〕


25

X 7362

:2010 (ISO/IEC 29362:2008)

次に例を示す。

間違っている例:

<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

...

    <wsdl:binding  name="aBinding"  type="tns:aPortType">

        <soapbind:binding  style="rpc"

                          transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="anOperation">

            <soap:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  use="literal"

                                       namespace="http://example.com/mimetypes"/>

                    </mime:part>

                    <mime:part>

                        <soapbind:header  message="tns:headerMessage"

                                         part="aPart"

                                         use="literal"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

 ...

             </wsdl:output>

        </wsdl:operation>

 </wsdl:binding>

</wsdl:definitions>

4.7

MIME

バインディングスキーマの修正

WSDL 1.1

と WSDL の MIME バインディングのスキーマとの間には幾つかの不整合がある。mime:part

要素の場合,スキーマは間違って局所要素宣言と定義しており,また,間違って WSDL 1.1 には記述がな


26

X 7362

:2010 (ISO/IEC 29362:2008)

   

い name 属性を追加している。

WSDL MIME

バ イ ン デ ィ ン グ 拡 張 ス キ ー マ に 対 す る , こ こ で 示 し た も の を 含 む 修 正 は

"http://ws-i.org/profiles/basic/1.1/wsdlmime-2004-08-24.xsd"

にある改訂版のスキーマに反映されている。

R2907  DESCRIPTION

中の

MIME

パートは,

WSDL MIME

バインディング拡張の名前空間中の,

part

という局所名

 (local name) 

をもつ要素を使って定義されなければならない

 

(MUST)

〔明確化〕

R2908  DESCRIPTION

中の

mime:part

要素は,

name

属性をもってはならない

  (MUST NOT)

 

4.8

代替メディア型の指定

mime:part

要 素 の 子 要 素 と し て 複 数 の mime:content 要 素 があ っ た 場 合 , それ は参 照さ れ る

wsdl:part

要素の許容可能な代替シリアライゼーション形式とみなされる。

R2909  DESCRIPTION

中の

mime:part

要素の子要素となる複数の

mime:content

要素は,同

一の

wsdl:part

要素を参照しなければならない

  (MUST)

次に例を示す。

間違っている例:

<mime:part>

  <mime:content  part="ns:foo"  type="image/jpeg"/>

  <mime:content  part="ns:bar"  type="image/jpeg"/>

</mime:part>

正しい例:

<mime:part>

  <mime:content  part="ns:foo"  type="image/jpeg"/>

  <mime:content  part="ns:foo"  type="image/gif"/>

</mime:part>

4.9

WSDL

の part 要素

R2910  DESCRIPTION

中の

mime:content

要素は,

type

属性又は

element

属性のいずれか

の属性を使って定義された

wsdl:part

要素を参照しなければならない

  (MUST)

R2942  MESSAGE

中で,

mime:content

要素にバインドされたメッセージのパートで

wsdl:part

要素の

element

属性を使って)大域要素宣言を参照するものは,その

MIME

パートの中に,参照された要素に記述された内容をルート要素としてもつ

XML

報セット

 (infoset) 

のシリアライゼーションとして,シリアライズされなければならない

 

(MUST)

 

R2943  DESCRIPTION

中で,

mime:content

要素にバインドされたメッセージのパートで

wsdl:part

要素の

type

属性を使って)型宣言を参照する場合,その

type

属性の値


27

X 7362

:2010 (ISO/IEC 29362:2008)

を無視し,

mime:content

要素の

type

属性のメディア型を優先しなければならない

(MUST)

 

R2944  DESCRIPTION

中で,

wsdl:part

要素が(

wsdl:part

要素の

element

属性を使って)

大域要素宣言を参照する場合,そのパートをバインドする

mime:content

要素の

type

 

属性の値は,

XML

化したデータを入れるのに適したものでなければならない

  (MUST)

 

4.10

パートの順序

R2912  RECEIVER

は,

WSDL

記述の中に指定された

mime:part

要素の順序がメッセージの中

MIME

パートの順序と同じであると想定してはならない

  (MUST NOT)

R2947 DESCRIPTION

中で,

soapbind:body

子要素をもつ

mime:part

要素は,

mime:multipartRelated

 

要素の他の子要素の間のどの位置に現れてもよい

  (MAY)

WSDL

記述に指定された MIME パートの順序は,メッセージの中の MIME パートの順序とは独立であ

るとみなさなければならない。

4.11

フォルトメッセージの送信

R2913

フォルトの

MESSAGE

は,

WSDL

記述の対応する

wsdl:binding

要素内の

wsdl:operation

要素の

wsdl:output

子要素が

mime:multipartRelated

要素を子要素としてもつ場

合,

text/xml

又は

multipart/related

のどちらかの形式でシリアライズされてもよ

  (MAY)

 

4.12

フォルトの記述

R2930  DESCRIPTION

中の

wsdl:fault

要素は,その子要素として

mime:multipartRelated

要素をもってはならない

  (MUST NOT)

4.13  WSDL

で記述されていない追加のパートの送信

WSDL

に記述されている範囲を超える追加の MIME パートがメッセージに含まれていてもよい。また,

それらの MIME パッケージ内での位置及び順序は重要ではない。

R2923  SENDER

は,

WSDL MIME

バインディングで記述されていない非ルート

MIME

パートを

送信してもよい

 (MAY)

〔明確化〕

R2926  MESSAGE

は,

WSDL MIME

バインディングで記述されたすべての

MIME

パートを含め

なければならない

 (MUST)

4.14  SOAP

メッセージの適合性

このプロファイルの,適合性対象 ENVELOPE に対する適合性要件は,MIME パッケージのルートパー

トに含まれる SOAP エンベロープに対してだけ適用される。非ルートパートの SOAP エンベロープは,添

付データとして WSDL 記述に記述することができ,その場合,WSDL 記述に列挙された非ルートパートに

対する適合性要件が適用される。

R2927  MESSAGE

のルートパートは,

JIS X 7361:2010

Web

サービス相互運用性−

WS-I 

ベー

シックプロファイル

  1.1

における,エンベロープに対するすべての要件に適合しなけれ

ばならない

 (MUST)

 

4.15  mime:content

要素を使用した添付データ記述の例

次に例を示す。


28

X 7362

:2010 (ISO/IEC 29362:2008)

   

正しい例:

document/literal

に対する WSDL 記述を考える。

<?xml version="1.0" encoding="utf-8" ?>

<wsdl:definitions xmlns:types="http://example.com/mimetypes"

                  xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"

                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

    <wsdl:types>

        <xsd:schema  targetNamespace="http://example.com/mimetypes"

                xmlns:xsd="http://www.w3.org/2001/XMLSchema">

            <xsd:element  name="ClaimDetail"  type="types:ClaimDetailType"/>

            <xsd:complexType  name="ClaimDetailType">

                <xsd:sequence>

                    <xsd:element  name="Name"  type="xsd:string"/>

                    <!--  lots  of  other  claim  detail  stuff  -->

                </xsd:sequence>

            </xsd:complexType>

            <xsd:element  name="ClaimRefNo"  type="xsd:string"/>

        </xsd:schema>

    </wsdl:types>

    <wsdl:message  name="ClaimIn">

        <wsdl:part  name="body"  element="types:ClaimDetail"/>

        <wsdl:part  name="ClaimPhoto"  type="xsd:base64Binary"/>

    </wsdl:message>

    <wsdl:message  name="ClaimOut">

        <wsdl:part  name="out"  element="types:ClaimRefNo"/>

    </wsdl:message>

    <wsdl:portType  name="ClaimPortType">


29

X 7362

:2010 (ISO/IEC 29362:2008)

        <wsdl:operation  name="SendClaim">

            <wsdl:input  message="tns:ClaimIn"/>

            <wsdl:output  message="tns:ClaimOut"/>

        </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding  name="ClaimBinding"  type="tns:ClaimPortType">

        <soapbind:binding  style="document"

                          transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="SendClaim">

            <soapbind:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  parts="body"  use="literal"/>

                    </mime:part>

                    <mime:part>

                        <mime:content  part="ClaimPhoto"  type="image/jpeg"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

                <soapbind:body  use="literal"  />

            </wsdl:output>

        </wsdl:operation>

    </wsdl:binding>

</wsdl:definitions>

結果として生成される "SendClaim" の document/literal オペレーションに対する入力メッセージ

は,次のとおり。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;

        start="<rootpart

@example.com>"

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>


30

X 7362

:2010 (ISO/IEC 29362:2008)

   

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

            <types:ClaimDetail>

                <Name>...</Name>

                <!--  lots  of  other  claim  detail  stuff  -->

            </types:ClaimDetail>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

--MIME_boundary

Content-Type: image/jpeg

Content-Transfer-Encoding: binary

Content-ID: <ClaimPhoto=4d7a5fa2-14af-451c-961b-5c3abf786796

@example.com>

...MIME attachment of binary photograph...

--MIME_boundary--

結果として生成される "SendClaim" の document/literal オペレーションに対する出力メッセージ

は,次のとおり。

MIME-Version: 1.0

Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:ClaimRefNo>...............</types:ClaimRefNo>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

4.16  swaRef

を使用した添付データ記述の例

次に例を示す。

正しい例:

document/literal

に対する WSDL 記述を考える。


31

X 7362

:2010 (ISO/IEC 29362:2008)

<?xml version="1.0" encoding="utf-8" ?>

<wsdl:definitions xmlns:types="http://example.com/mimetypes"

                  xmlns:ref="http://ws-i.org/profiles/basic/1.1/xsd"

                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"

                  xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/"

                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"

                  targetNamespace="http://example.com/mimewsdl"

                  xmlns:tns="http://example.com/mimewsdl">

    <wsdl:types>

        <xsd:schema  targetNamespace="http://example.com/mimetypes"

                xmlns:xsd="http://www.w3.org/2001/XMLSchema">

            <xsd:import  namespace="http://ws-i.org/profiles/basic/1.1/xsd"  />

            <xsd:element  name="ClaimDetail"  type="types:ClaimDetailType"/>

            <xsd:complexType  name="ClaimDetailType">

                <xsd:sequence>

                    <xsd:element  name="Name"  type="xsd:string"/>

                    <!--  lots  of  other  claim  detail  stuff  -->

                    <xsd:element  name="ClaimPhoto"  type="ref:swaRef"/>

                </xsd:sequence>

            </xsd:complexType>

            <xsd:element  name="ClaimRefNo"  type="xsd:string"/>

        </xsd:schema>

    </wsdl:types>

    <wsdl:message  name="ClaimIn">

        <wsdl:part  name="body"  element="types:ClaimDetail"/>

    </wsdl:message>

    <wsdl:message  name="ClaimOut">

        <wsdl:part  name="out"  element="types:ClaimRefNo"/>

    </wsdl:message>

    <wsdl:portType  name="ClaimPortType">

        <wsdl:operation  name="SendClaim">

            <wsdl:input  message="tns:ClaimIn"/>


32

X 7362

:2010 (ISO/IEC 29362:2008)

   

            <wsdl:output  message="tns:ClaimOut"/>

        </wsdl:operation>

    </wsdl:portType>

    <wsdl:binding  name="ClaimBinding"  type="tns:ClaimPortType">

        <soapbind:binding  style="document"

                          transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation  name="SendClaim">

            <soapbind:operation  soapAction="http://example.com/soapaction"/>

            <wsdl:input>

                <mime:multipartRelated>

                    <mime:part>

                        <soapbind:body  parts="body"  use="literal"/>

                    </mime:part>

                </mime:multipartRelated>

            </wsdl:input>

            <wsdl:output>

                <soapbind:body  use="literal"  />

            </wsdl:output>

        </wsdl:operation>

    </wsdl:binding>

</wsdl:definitions>

結果として生成される "SendClaim" の document/literal オペレーションに対する入力メッセージ

は,次のとおり。

MIME-Version: 1.0

Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml;

        start="<rootpart

@example.com>"

Content-Description: This is the optional message description.

--MIME_boundary

Content-Type: text/xml; charset=UTF-8

Content-Transfer-Encoding: 8bit

Content-ID: <rootpart

@example.com>

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">


33

X 7362

:2010 (ISO/IEC 29362:2008)

            <types:ClaimDetail>

                <Name>...</Name>

                <!--  lots  of  other  claim  detail  stuff  -->

                <ClaimPhoto>cid:claimphoto

@example.com</ClaimPhoto>

            </types:ClaimDetail>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>

--MIME_boundary

Content-Type: image/jpeg

Content-Transfer-Encoding: binary

Content-ID: <claimphoto

@example.com>

...MIME attachment of binary photograph...

--MIME_boundary--

結果として生成される "SendClaim" の document/literal オペレーションに対する出力メッセージ

は,次のとおり。

MIME-Version: 1.0

Content-Type: text/xml; charset=UTF-8

<?xml version='1.0' ?>

<SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

    <SOAP-ENV:Body  xmlns:types="http://example.com/mimetypes">

        <types:ClaimRefNo>...............</types:ClaimRefNo>

    </SOAP-ENV:Body>

</SOAP-ENV:Envelope>


34

X 7362

:2010 (ISO/IEC 29362:2008)

   

附属書 A

規定)

引用規格

次の規格の要件は,このプロファイルで置き換えられたものを除き,引用することでこのプロファイル

に取り込まれている。

・  Namespaces in XML 1.0  (http://www.w3.org/TR/1999/REC-xml-names-19990114/)

注記  JIS X 4158:2005  XML 名前空間は,Namespaces in XML 1.0

(http://www.w3.org/TR/1999/REC-xml-names-19990114/)

に対応している。

・  JIS X 5810-1  多目的インターネットメール拡張 (MIME) −第 1 部:インターネットメッセージ本体

のフォーマット

注記  RFC2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message

Bodies (http://ietf.org/rfc/rfc2045)

がこれに対応している。

・  JIS X 5810-2  多目的インターネットメール拡張 (MIME) −第 2 部:メディア型

注記  RFC2046 Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types

 (http://ietf.org/rfc/rfc2046)

がこれに対応している。

・ SOAP

Messages

with

Attachments  (http://www.w3.org/TR/SOAP-attachments#SOAPMultipart)

・  Extensible Markup Language (XML) 1.0 (Second Edition) (http://www.w3.org/TR/2000/REC-xml-20001006)

注記  JIS X 4159:2005  拡張可能なマーク付け言語 (XML) 1.0 は,Extensible Markup Language

(XML) 1.0 (Third Edition)  (http://www.w3.org/TR/2004/REC-xml-20040204)

に対応している。

・  RFC2557 MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)

 (http://ietf.org/rfc/rfc2557)

・  RFC2392 Content-ID and Message-ID Uniform Resource Locators  (http://ietf.org/rfc/rfc2392)

・ WSDL

1.1

の 5  (http://www.w3.org/TR/2001/NOTE-wsdl-20010315#_Toc492291084)


35

X 7362

:2010 (ISO/IEC 29362:2008)

附属書 B

参考)

拡張点

この附属書では,

1.1  適用範囲”の中で,このプロファイルの構成要素の仕様として定義した,規格の

拡張点を列挙する。

これらのメカニズムは,このプロファイルの適用範囲外である。これらを使うことが相互運用性に影響

する場合もあれば,Web サービスの関係者間での個別合意が必要となる場合もある。

SOAP Messages with Attachments  (http://www.w3.org/TR/SOAP-attachments#SOAPMultipart)

の拡張点:

・  E0001−MIME

パート−SOAP Messages with Attachments は,multipart/related メッセージの非ルー

トパート (non-root part) の型には制限を置かない。


36

X 7362

:2010 (ISO/IEC 29362:2008)

   

附属書 C 

参考)

参考規格

附属書 に列挙されている,このプロファイルに取り込まれた規格に加えて,次の規格が参照される。

・ RFC2119,

http://ietf.org/rfc/rfc2119, Key words for use in RFCs to Indicate Requirement Levels, S.

Bradner, March 1997.

・  WS-I Basic Profile 1.0, http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html, K. Ballinger et al.,

April 2004.

・  Namespaces in XML 1.0(XML 名前空間 1.0)(Second Edition),

http://www.w3.org/TR/2006/REC-xml-names-20060816, T. Bray et al.,August 2006.

・  WS-I Conformance Claim Attachment Mechanisms Version 1.0,

http://www.ws-i.org/Profiles/ConformanceClaims-1.0-2004-11-15. html, M.Nottingham et al., November

2004.


37

X 7362

:2010 (ISO/IEC 29362:2008)

附属書 D 

参考)

定義された用語

次に示す用語は,このプロファイルで有効な定義をもつ。

content-id

へのパート名エンコーディング (content-id part encoding)

content-id

へのパート名エンコーディングは,次の構成要素を連結したものである。

・ mime:content 要素によって参照される wsdl:part 要素の name 属性の値。

ただし,

content-id

ヘッダで禁止された文字(0x7F を超えるコードポイントで表現される非 ASCII 文字)は,次の

方式でエスケープする。

それぞれの禁止された文字を 1 バイト以上の UTF-8 に変換する。

禁止された文字を構成する各バイトを URI エスケープ方式でエスケープする(すなわ

ち,%HH の形式に変換する。ただし,ここで HH はバイト値の 16 進数表現である。

元の文字をエスケープ結果の文字列で置き換える。

・  文字 '='  (0x3D)。

・  UUID のような,大域的に一意な値。

・  文字 '@'  (0x40)。

・  メッセージを生成する実体の管理下にある,有効なドメイン名。


38

X 7362

:2010 (ISO/IEC 29362:2008)

   

附属書 E

参考) 
謝辞

(対応国際規格では,規格策定の貢献者を列挙しているが,この規格では不要であり,不採用とした。


39

X 7362

:2010 (ISO/IEC 29362:2008)

附属書 JA

参考)

用語集

この附属書は,用語の使用方法の例を示すものであり,規定の一部ではない。

JA.1

バインディング  (binding)

バインディングは,サービスの仕様を表現したインタフェースと,インタフェースで定義されたメッセ

ージを伝送するための具体的な伝送プロトコル及びデータフォーマットとを関連付けるものである。バイ

ンディングの指定は SOAP バインディング,HTTP バインディングなどそれぞれの箇所で行う。

JA.2

中継ノード  (intermediary)

SOAP

メッセージを中継するノード。SOAP メッセージは,メッセージの発信ノードから最終的な受信

ノードまでの間に複数のノードを中継することが考慮されており,発信ノードと最終的な受信ノードとの

間にあるノードを中継ノードと呼ぶ。中継ノードとしては,単にメッセージのルーティングをするもの,

メッセージの一部を処理して変更するものなどがある。

JA.3

メディア型  (media-type)

HTTP

プロトコルにおいて,やり取りされるデータの形式及びその記述法。MIME タイプとも呼ばれる。

例 text/html , text/xml , application/xml , image/png 及 び image/gif が あ る 。 HTTP メ ッ セ ー ジ の

Content-Type

などで指定される。

JA.4

名前空間  (namespace)

特定の XML 標準スキーマによって定められた要素名及び属性名の集合。XML インスタンスでは,要素

を“名前空間接頭辞:要素名”

,属性を“名前空間接頭辞:属性名”という形式で記述する。名前空間接頭

辞によって,要素及び属性がどの名前空間に属するかを見分ける。この書き方を使って,複数の XML ス

キーマで定義された要素及び属性を,一つの XML インスタンス内で混在させて使うことができる。

JA.5

シリアライゼーション,シリアル化  (serialization)

SOAP

で RPC を行うためには,メソッドの引数及び戻り値に使われる変数,配列,オブジェクトなどを

XML

文書に変換したり,元に戻したりする必要がある。データを XML 文書に変換することを“エンコー

ド”又は“シリアライズ”

,元に戻すことを“デコード”又は“デシリアライズ”という。シリアライゼー

ションは,シリアライズする行為である。


40

X 7362

:2010 (ISO/IEC 29362:2008)

   

JA.6

抽象的なインタフェース仕様  (abstract contract)

対応国際規格において,WSDL の portType を,abstract contract を定義するものと表現している。WSDL

は,送信者と受信者との間でメッセージをやり取りするときの取り決めのようなものなので,contract とい

う表現となっている。また,portType はオペレーション及び入出力メッセージを抽象的なレベルで定義し

ており,それらは binding によって具体化されるものであるため,abstract が使われている。

この規格においては,文章を分かりやすくするため,portType の意味をくみ取って,

“抽象的なインタフ

ェース仕様”と訳した。