Menu Close

2.2. データの論理データユニットへのマッピング

概要

サービスを実装するために使用されるインターフェースは、操作パラメーターを表すデータを XML ドキュメントとして定義します。すでに実装されているサービスのインターフェースを定義する場合は、実装した操作のデータ型を、メッセージにアセンブル可能な XML 要素に変換する必要があります。ゼロから作業を行う場合は、メッセージを構築するビルディングブロックを判断し、実装の観点から意味をなすようにします。

サービスデータユニットの定義に使用できる型システム

WSDL 仕様に従うと、任意の型システムを使用して、WSDL コントラクトでデータ型を定義できます。ただし、W3C 仕様では、XML スキーマが WSDL ドキュメントの推奨される標準的な型システムであると述べられています。そのため、XML スキーマは Apache CXF の固有型システムです。

型システムとしての XML スキーマ

XMLスキーマは、XML 文書がどのように構造化されるかを定義するために使用されます。これは、ドキュメントを構成する要素を定義して行います。これらの要素は、xsd:int などのネイティブ XML スキーマ型や、ユーザーが定義した型を使用できます。ユーザー定義型は、XML 要素の組み合わせを使用して構築されるか、または既存の型を制限することによって定義されます。型定義と要素定義を組み合わせることで、複合データを含むことができる複合 XML ドキュメントを作成できます。

WSDL で使用されると、サービスとの対話に使用されるデータを保持する XML ドキュメントの構造を定義します。サービスで使用するデータユニットを定義する際に、メッセージ部分の構造を指定するタイプとして定義できます。また、データユニットは、メッセージの一部を構成する要素として定義することも可能です。

データユニットを作成する際の注意点

サービスの実装時に、想定する型に直接マップする論理データユニットを作成することを検討してください。このアプローチは機能し、RPC 形式のアプリケーションのビルドモデルに密接に従っていますが、サービス指向のアーキテクチャーの一部を構築するには必ずしも理想的なわけではありません。

Web Services Interoperability Organization の WS-I 基本プロファイルは、データユニットを定義するガイドラインを提供し、http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#WSDLTYPES からアクセスできます。さらに、W3C は、WSDL ドキュメントのデータ型を表すために XML スキーマを使用する以下のガイドラインも提供します。

  • 属性ではなく要素を使用します。
  • プロトコル固有の型はベース型として使用しません。