JAX-RPC を使用した WebLogic Web サービスの開始

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

データ バインディングについて

以下の節では、データ バインディングとサポートされるデータ型 (組み込みおよびユーザ定義のデータ型) について説明します。

 


データ バインディングの概要

さまざまなシステム間でのデータ交換には XML が標準的に使用されているため、Web サービス アプリケーションには、Java アプリケーションから直接 XML 形式ドキュメントへアクセスする手段が必要となります。具体的には、XML コンテンツを Java アプリケーションで読み取れる形式に変換する必要があります。「データ バインディング」では、XML 表現と Java 表現間のデータ変換を記述します。

以前のリリースと同様、WebLogic Web サービスでは、JAX-RPC 仕様の規定に従って組み込みの XML スキーマ、Java、および SOAP のデータ型がサポートされており、追加のプログラミング手順を踏まずに、そうしたデータ型を Web サービスのオペレーションで使用できます。組み込みデータ型には、integerstringtime などがあります。

また、Web サービスの入力パラメータや戻り値として、さまざまなユーザ定義の XML および Java データ型 (org.apache.xmlbeans パッケージの Apache XmlBeans を含む) を使用できます。ユーザ定義のデータ型には、XML スキーマや Java の構成要素から作成する <xsd:complexType> や JavaBean などがあります。jwscclientgen などの WebLogic Web サービス Ant タスクでは、ユーザ定義のデータ型を XML 表現と Java 表現の間で変換するのに必要なデータ バインディング アーティファクトが自動的に生成されます。XML 表現は SOAP リクエストや応答メッセージで使用し、Java 表現は Web サービスを実装する JWS で使用します。

注意 : WebLogic Server 9.1 以降では、XMLBeans 1.x データ型 (つまり com.bea.xml.XmlObject の拡張) を WebLogic Web サービスのパラメータまたは戻り値の型として使用することは非推奨です。新たに作成するアプリケーションでは、XMLBeans 2.x のデータ型を使用する必要があります。

 


サポートされる組み込みデータ型

次の節では、WebLogic Web サービスがサポートする組み込みデータ型およびその XML 表現と Java 表現間のマッピングについて説明します。Web サービスを実装するバックエンド コンポーネントのパラメータと戻り値のデータ型が、組み込みデータ型のセットの中にある限り、データは WebLogic Server によって、XML と Java 間で自動的に変換されます。

一方、ユーザ定義のデータ型を使用する場合は、XML 表現と Java 表現の間でデータを変換するデータ バインディング アーティファクトを作成する必要があります。WebLogic Server には jwsc および wsdlc Ant タスクが含まれており、ほとんどのユーザ定義データ型のデータ バインディング アーティファクトを自動的に生成できます。サポートされる XML データ型と Java データ型については、「サポートされるユーザ定義のデータ型」を参照してください。

組み込みデータ型の XML-to-Java マッピング

次の表に、サポートされる XML スキーマ データ型 (ターゲット ネームスペース http://www.w3.org/2001/XMLSchema) と、それぞれに対応する Java データ型をまとめます。

サポートされるユーザ定義の XML データ型については、「組み込みデータ型の Java-to-XML マッピング」を参照してください。

表 5-1 XML スキーマの組み込みデータ型と Java データ型のマッピング
XML スキーマ データ型
同等の Java データ型
(小文字はプリミティブ データ型を示す)
boolean
boolean
byte
byte
short
short
int
int
long
long
float
float
double
double
integer
java.math.BigInteger
decimal
java.math.BigDecimal
string
java.lang.String
dateTime
java.util.Calendar
base64Binary
byte[]
hexBinary
byte[]
duration
java.lang.String
time
java.util.Calendar
date
java.util.Calendar
gYearMonth
java.util.Calendar
gYear
java.util.Calendar
gMonthDay
java.util.Calendar
gDay
java.util.Calendar
gMonth
java.util.Calendar
anyURI
java.net.URI
NOTATION
java.lang.String
token
java.lang.String
normalizedString
java.lang.String
language
java.lang.String
Name
java.lang.String
NMTOKEN
java.lang.String
NCName
java.lang.String
NMTOKENS
java.lang.String[]
ID
java.lang.String
IDREF
java.lang.String
ENTITY
java.lang.String
IDREFS
java.lang.String[]
ENTITIES
java.lang.String[]
nonPositiveInteger
java.math.BigInteger
nonNegativeInteger
java.math.BigInteger
negativeInteger
java.math.BigInteger
unsignedLong
java.math.BigInteger
positiveInteger
java.math.BigInteger
unsignedInt
long
unsignedShort
int
unsignedByte
short
Qname
javax.xml.namespace.QName

組み込みデータ型の Java-to-XML マッピング

サポートされるユーザ定義の Java データ型については、「サポートされるユーザ定義の Java データ型」を参照してください。

表 5-2 Java データ型と XML スキーマ データ型のマッピング
Java データ型 (小文字はプリミティブ データ型を示す)
同等の XML スキーマ データ型
int
int
short
short
long
long
float
float
double
double
byte
byte
boolean
boolean
char
string (length=1 のファセット付き)
java.lang.Integer
int
java.lang.Short
short
java.lang.Long
long
java.lang.Float
float
java.lang.Double
double
java.lang.Byte
byte
java.lang.Boolean
boolean
java.lang.Character
string (length=1 のファセット付き)
java.lang.String
string
java.math.BigInteger
integer
java.math.BigDecimal
decimal
java.util.Calendar
dateTime
java.util.Date
dateTime
byte[]
base64Binary
javax.xml.namespace.QName
Qname
java.net.URI
anyURI
javax.xml.datatype.XMLGregorianCalendar
anySimpleType
javax.xml.datatype.Duration
duration
java.lang.Object
anyType
java.awt.Image
base64Binary
javax.activation.DataHandler
base64Binary
javax.xml.transform.Source
base64Binary
java.util.UUID
string

 


サポートされるユーザ定義のデータ型

以降の節の表には、jwsc および wsdlc Ant タスクでデータ バインディング アーティファクトを自動的に生成できるユーザ定義の XML データ型および Java データ型 (対応する Java 表現または XML 表現、JAX-RPC の型マッピング ファイルなど) をまとめます。

これらの表にない XML データ型または Java データ型で、「サポートされる組み込みデータ型」の表に示した組み込みデータ型でもない型の場合は、ユーザ定義データ型のアーティファクトを手動で作成する必要があります。

サポートされるユーザ定義の XML データ型

次の表に、jwsc および wsdlc Ant タスクでサポートされる XML スキーマ データ型と、それぞれに対応する Java データ型またはマッピング メカニズムをまとめます。

これらのデータ型の詳細と例については、JAX-RPC 仕様を参照してください。

表 5-3 サポートされているユーザ定義の XML スキーマ データ型
XML スキーマ データ型
同等の Java データ型またはマッピング メカニズム
単純型および複合型の両方の要素を持つ <xsd:complexType>
JavaBeans。
単純なコンテンツを含む <xsd:complexType>
JavaBeans。
<xsd:complexType><xsd:attribute>
JavaBeans のプロパティ。
既存の単純型の制限による新しい単純型の派生
同等の単純型の Java データ型。
制限要素で使用されるファセット
シリアライゼーションおよびデシリアライゼーションで強制されないファセット。
<xsd:list>
リスト データ型の配列。
wsdl:arrayType 属性を使用した制限によって soapenc:Array から派生する配列
arrayType データ型と同等の Java データ型の配列。
制限によって soapenc:Array から派生する配列
同等の Java データ型の配列。
単純型からの複合型の派生
_value というプロパティのある JavaBean。_value の型は、この節の規則に従って単純型からマップされる。
<xsd:anyType>
java.lang.Object
<xsd:any>
javax.xml.soap.SOAPElement または org.apache.xmlbeans.XmlObject
<xsd:any[]>
javax.xml.soap.SOAPElement[] または org.apache.xmlbeans.XmlObject[]
<xsd:union>
ユニオン メンバーの共通の親タイプ。
<xsi:nil> および <xsd:nillable> 属性
Java の null 値。
XML データ型が組み込みデータ型で通常は Java プリミティブ データ型 (intshort など) にマップされる場合、その XML データ型は実際には同等のオブジェクト ラッパー型 (java.lang.Integerjava.lang.Short など) にマップされる。
複合型の派生
Java の継承を使用してマップされる。
抽象型
抽象 Java データ型。

サポートされるユーザ定義の Java データ型

次の表に、jwsc および wsdlc Ant タスクでサポートされるユーザ定義の Java データ型と、それぞれに対応する XML スキーマ データ型をまとめます。

表 5-4 サポートされているユーザ定義の Java データ型
Java データ型
同等の XML スキーマ データ型
サポートされている任意のデータ型をプロパティとする JavaBean
JavaBean プロパティに対応する要素の <xsd:sequence> をコンテンツ モデルとする <xsd:complexType>
サポートされるすべてのデータ型の配列および多次元配列 (JavaBean プロパティとして使用する場合)
maxOccurs 属性が unbounded に設定されている <xsd:complexType> 内の要素。
java.lang.Object

注意 : 実行時オブジェクトのデータ型は既知の型でなければならない。

<xsd:anyType>
(org.apache.xmlbeans.XmlObject からのみ継承される) Apache XMLBeans

注意 : Apache XMLBeans データ型を戻り値の型またはパラメータとして使用する Web サービスは、document-literal-wrapped または document-literal-bare として定義する必要がある。

Apache XMLBeans』を参照。
java.util.Collection
リテラル配列。
java.util.List
リテラル配列。
java.util.ArrayList
リテラル配列。
java.util.LinkedList
リテラル配列。
java.util.Vector
リテラル配列。
java.util.Stack
リテラル配列。
java.util.Set
リテラル配列。
java.util.TreeSet
リテラル配列。
java.utils.SortedSet
リテラル配列。
java.utils.HashSet
リテラル配列。

注意 : 以下のユーザ定義の Java データ型は、バージョン 8.1 では WebLogic Web サービスのパラメータまたは戻り値として使用されていましたが、現在はサポートされていません。
注意 : また、パラメータまたは戻り値としてのジェネリックスの使用はサポートされていません。たとえば、以下の Java メソッドはパブリックなオペレーションとして公開できません。
注意 : public ArrayList<String> echoGeneric(ArrayList<String> in) {
return in;
}

  ページの先頭       前  次