この規格ページの目次
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=MIMEboundary; type=text/xml;
Content-Description: This is the optional message description.
--MIMEboundary
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>
--MIMEboundary
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
――――― [JIS X 7362 pdf 16] ―――――
13
X 7362 : 2010 (ISO/IEC 29362 : 2008)
Content-ID: <claimphoto@example.com>
...binary photograph...
--MIMEboundary--
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)
――――― [JIS X 7362 pdf 17] ―――――
14
X 7362 : 2010 (ISO/IEC 29362 : 2008)
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)。
――――― [JIS X 7362 pdf 18] ―――――
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>
――――― [JIS X 7362 pdf 19] ―――――
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を使わないこ
とをベストプラクティスとして推奨している。
――――― [JIS X 7362 pdf 20] ―――――
次のページ PDF 21
JIS X 7362:2010の引用国際規格 ISO 一覧
- ISO/IEC 29362:2008(IDT)
JIS X 7362:2010の国際規格 ICS 分類一覧
- 35 : 情報技術.事務機械 > 35.100 : 開放型システム間相互接続(OSI) > 35.100.05 : マルチレイヤアプリケーション
JIS X 7362:2010の関連規格と引用規格一覧
- 規格番号
- 規格名称
- JISX5810-1:2008
- 多目的インターネットメール拡張(MIME)―第1部:インターネットメッセージ本体のフォーマット
- JISX5810-2:2008
- 多目的インターネットメール拡張(MIME)―第2部:メディア型