20.1.31 xsd:schema要素
xsd:schema要素のサポート範囲を説明します。
-
JAXB 2.2仕様に従いJava型にマッピングしますが,マッピングはXML Processorにすべて委譲しています。
(1) xmime:expectedContentTypes属性(xsd:schema要素)
WSDLのスキーマ宣言であるxsd:element要素のtype属性に"xsd:base64Binary"を指定している場合,xmime:expectedContentTypes属性を用いてMIMEタイプを明示的に指定することで,Base64形式のデータをMIMEタイプに対応したJava型に関連づけることができます。WSDLのスキーマ宣言であるxsd:element要素に対するxmime:expectedContentTypes属性の記述可否を次の表に示します。
項番 |
xsd:element要素を参照するwsdl:messageのパラメタ |
xsd:element要素に対するxmime:expectedContentTypes属性の記述可否 |
---|---|---|
1 |
wsdl:input |
○※1 |
2 |
wsdl:output |
○※1 |
3 |
wsdl:fault |
×※2 |
xsd:element要素にxmime:expectedContentTypes属性を指定した場合のWSDLからJava型へのマッピング方法は,WSDLのxmime:expectedContentTypes属性があるxsd:base64Binary型をJava型へマッピングします。WSDLからJava型へのマッピング例を次の図に示します。
xmime:expectedContentTypes属性に指定するMIMEタイプには,"text/xml"および"application/xml"のcharsetパラメタを除いて,パラメタを記述しないでください。"text/xml"および"application/xml"のcharsetパラメタ以外のパラメタを記述した場合,動作は保証されません。
WSDLからマッピングするJava型は,xmime:expectedContentTypes属性に指定されているMIMEタイプによって変化します。xmime:expectedContentTypes属性に記述されているMIMEタイプと関連づけるJava型の関係を次の表に示します。
項番 |
xmime:expectedContentTypes属性の値(MIMEタイプ) |
関連づけるJava型 |
---|---|---|
1 |
application/xml |
javax.xml.transform.Source |
2 |
image/png※1 |
java.awt.Image※2 |
3 |
image/jpeg※1 |
|
4 |
上記のMIMEタイプをコンマ区切りで記述(例:image/png, image/jpeg)※3 |
|
5 |
image/*※3 |
|
6 |
text/plain |
java.lang.String |
7 |
text/*※4 |
javax.activation.DataHandler |
8 |
text/xml※5 |
javax.xml.transform.Source |
9 |
上記以外※4,※6 |
javax.activation.DataHandler |
xmime:expectedContentTypes属性に指定されているMIMEタイプは,cjwsimportコマンドで自動生成されるJavaBeanクラスのうち,xmime:expectedContentTypes属性を記述した要素に対応するJavaBeanクラスにアノテートされたjavax.xml.bind.annotation.XmlMimeTypeアノテーションの値へマッピングされます。WSDLから自動生成されたJavaBeanクラスへのマッピングの例を次の図に示します。
(a) 名前空間"xmime"のインポート
WSDLからJava型へのマッピングでは,名前空間"xmime"に存在する属性"xmime:expectedContentTypes"を使用しますが,JAX-WSではxsd:import要素による名前空間"xmime"のインポートは不要です。
hwsgenコマンドで作成したWSDLを使用する場合,必要に応じて名前空間"xmime"をインポートする必要があります。名前空間"xmime"のインポート例を次に示します。
<wsdl:definitions targetNamespace="http://localhost" xmlns:intf="http://localhost" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" ・・・・・・> <wsdl:types> <xsd:schema targetNamespace="http://localhost"> <xsd:import namespace="http://www.w3.org/2005/05/xmlmime"/> <xsd:element name="setPhotoData" type="intf:setPhotoData"/> <xsd:complexType name="setPhotoData"> <xsd:sequence> <xsd:element name="in0" type="xsd:base64Binary" xmime:expectedContentTypes="image/jpeg"/> </xsd:sequence> </xsd:complexType> ・・・・・・ </xsd:schema> </wsdl:types> ・・・・・・