WebSphere Application Server - Express, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

カスタム・データ・バインダー

カスタム・データ・バインダー は、Java オブジェクトを持つ XML スキーマ・タイプをマップするために使用します。 カスタム・データ・バインダーは、現行の Java API for XML-based Remote Call Procedure (JAX-RPC) 仕様ではサポートされていない XML スキーマ・タイプに対するバインディングを提供します。

カスタム・データ・バインダーは、Java オブジェクトと SOAPElement インターフェース間で変換を行うためのシリアライズ・メソッドやデシリアライズ・メソッドを定義します。 カスタム・データ・バインダーはランタイム・システムに追加され、SOAPElement を使用して Web サービス・ランタイムと対話をします。 従来のデシリアライザーとは異なり、カスタム・データ・バインダーは、Java オブジェクト (Simple API for XML (SAX) など) の作成を、ランタイムの低水準解析イベントに依存しません。 代わりに、ランタイムは着信 SOAP メッセージを SOAPElement にレンダリングすることにより、カスタム・データ・バインダーを作成します。 メッセージを含む SOAPElement は、顧客データ・バインダーに渡されます。 例えば、着信メッセージにサービス・データ・オブジェクト (SDO) データグラフが含まれている場合、ランタイム・システムは次のように処理を行います。
  1. ランタイム・システムが <sdo:Datagraph> コードを認識します。
  2. ランタイムはタイプ・マッピング・システムを照会し、データグラフ・データ (例えば、SDOCustomBinder) のカスタム・データ・バインダーを検索します。
  3. 着信 SDO データ・グラフを表す SOAPElement が作成されます。
  4. ランタイムは SOAPElement を SDOCustomBinder に渡します。
デシリアライズしたメソッド内で、SDOCustomBinder は SOAPElement のコンテンツを抽出し、 commonj.sdo.DataGraph 型を持つ具体的な DataGraph オブジェクトをビルドします。 図に、Web サービスのランタイム・フローとカスタム・データ・バインダーを表示します。

Java オブジェクトがシリアライズされる場合、同様のプロセスが発生します。 ランタイムはカスタム・データ・バインダーを探し、Java オブジェクトを SOAPElement に変換します。 ランタイムは SOAPElement を、出力ストリームに転送される未加工のメッセージにシリアライズします。

以下に、SDO 仕様で定義される XML スキーマの例を示します。
<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  targetNamespace="commonj.sdo">

  <xsd:element name="datagraph" type="sdo:DataGraphType"/>
  
  <xsd:complexType name="DataGraphType">
  <xsd:complexContent>
    <xsd:extension base="sdo:BaseDataGraphType">
      <xsd:sequence>
        <xsd:any minOccurs="0" maxOccurs="1"
                 namespace="##other" processContents="lax"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="BaseDataGraphType" abstract="true">
  <xsd:sequence>
    <xsd:element name="models" type="sdo:ModelsType" minOccurs="0"/>
    <xsd:element name="xsd" type="sdo:XSDType" minOccurs="0"/>
    <xsd:element name="changeSummary"
                 type="sdo:ChangeSummaryType" minOccurs="0"/>
   </xsd:sequence>
  <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
    
  <xsd:complexType name="ModelsType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded"
             namespace="##other" processContents="lax"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="XSDType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded"
        namespace="http://www.w3.org/2001/XMLSchema" processContents="lax"/>
  </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="ChangeSummaryType">
  <xsd:sequence>
    <xsd:any minOccurs="0" maxOccurs="unbounded"
             namespace="##any" processContents="lax"/>
  </xsd:sequence>
  <xsd:attribute name="create" type="xsd:string"/>
  <xsd:attribute name="delete" type="xsd:string"/>
  </xsd:complexType>

</xsd:schema> 

WebSphere Application Server は、特定の XML スキーマ・タイプに対して具体的なカスタム・バインディングをインプリメントする CustomBinder インターフェースを定義します。

カスタム・バインディングをランタイムにインポートするには、カスタム・バインディング・プロバイダーを使用します。 カスタム・データ・バインダーを開発用の WSDL2Java コマンド行ツールにプラグインする方法について学習するには、 カスタム・バインディング・プロバイダーを参照してください。 トピック、カスタム・データ・バインダーをデプロイするための使用パターンでは、カスタム・データ・バインダーをデプロイするための使用パターンと役割を提供しています。

API および SPI で使用される資料を検討するには、参照: 生成 API 資料を参照してください。 このトピックの説明に従って、API および SPI インターフェースを読み進めてください。

Web サービスの開発に使用する規格および API については、specifications を検討することもできます。




関連タスク
JAX-RPC に対する拡張および J2EE クライアント・プログラミング・モデルの Web サービスのインプリメント
関連資料
CustomBinder インターフェース
カスタム・バインディング・プロバイダー
カスタム・データ・バインダーをデプロイするための使用パターン
JAX-RPC アプリケーション用の WSDL2Java コマンド
Web サービス: 学習用リソース
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 11:31:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/cwbs_custombinders.html