X 7362:2010 (ISO/IEC 29362:2008)
(1)
2019年7月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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
ページ
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
まえがき
この規格は,工業標準化法第12条第1項の規定に基づき,独立行政法人情報処理推進機構 (IPA) から,
工業標準原案を具して日本工業規格を制定すべきとの申出があり,日本工業標準調査会の審議を経て,経
済産業大臣が制定した日本工業規格である。
この規格は,著作権法で保護対象となっている著作物である。
この規格の一部が,特許権,出願公開後の特許出願,実用新案権又は出願公開後の実用新案登録出願に
抵触する可能性があることに注意を喚起する。経済産業大臣及び日本工業標準調査会は,このような特許
権,出願公開後の特許出願,実用新案権及び出願公開後の実用新案登録出願にかかわる確認について,責
任はもたない。
X 7362:2010 (ISO/IEC 29362:2008) 目次
(4)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
白 紙
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
日本工業規格 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) を補完している。
箇条1は,このプロファイルを紹介し,他のプロファイルとの関係を示す。
箇条2は,このプロファイルに適合するとはどういう意味かを説明する。
それに続く各箇条は,このプロファイルの構成要素となるそれぞれの規格について示すもので,次の二
つの部分からなる。すなわち,構成要素となる規格及び拡張点 (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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
辞に関連付けられた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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
要件レベルは,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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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) の形
をとるかもしれない。
このプロファイルの適用範囲は,附属書Aの引用規格によって定義され,附属書Bの拡張点によって詳
細化される。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
・ 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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
これは,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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<?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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
パートの順序とは独立であると解釈されなければならない。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
WSDL 1.1の5は,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の5に定義されているように,
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
結果として生成される "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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
--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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
</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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
...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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
次に例を示す。
間違っている例:
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
い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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
を無視し,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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
正しい例:
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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<?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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<?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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
<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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書C
(参考)
参考規格
附属書Aに列挙されている,このプロファイルに取り込まれた規格に加えて,次の規格が参照される。
・ 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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書E
(参考)
謝辞
(対応国際規格では,規格策定の貢献者を列挙しているが,この規格では不要であり,不採用とした。)
39
X 7362:2010 (ISO/IEC 29362:2008)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
附属書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)
2019年7月1日の法改正により名称が変わりました。まえがきを除き,本規格中の「日本工業規格」を「日本産業規格」に読み替えてください。
JA.6
抽象的なインタフェース仕様 (abstract contract)
対応国際規格において,WSDLのportTypeを,abstract contractを定義するものと表現している。WSDL
は,送信者と受信者との間でメッセージをやり取りするときの取り決めのようなものなので,contractとい
う表現となっている。また,portTypeはオペレーション及び入出力メッセージを抽象的なレベルで定義し
ており,それらはbindingによって具体化されるものであるため,abstractが使われている。
この規格においては,文章を分かりやすくするため,portTypeの意味をくみ取って,“抽象的なインタフ
ェース仕様”と訳した。