2.2. データを論理データ単位にマッピング
概要
サービスの実装に使用されるインターフェイスは、操作パラメーターを表すデータを XML ドキュメントとして定義します。すでに実装されているサービスのインターフェイスを定義している場合は、実装されている操作のデータ型を、メッセージにアセンブルできる目立たない XML 要素に変換する必要があります。ゼロから始める場合は、メッセージの作成元となる設定ブロックを決定して、実装の観点から意味をなすようにする必要があります。
サービスデータユニットを定義するのに利用可能な型システム
WSDL 仕様に従って、WSDL コントラクトでデータ型を定義するために選択した任意の型システムを使用できます。ただし、W3C 仕様では、XML スキーマが WSDL ドキュメントに推奨される正規型システムであると規定されています。したがって、XML スキーマは Apache CXF の固有の型システムです。
型システムとしての XML スキーマ
XML スキーマは、XML ドキュメントの構造を定義するために使用されます。これは、ドキュメントを設定する要素を定義することによって行われます。これらの要素は、xsd:int
などのネイティブ XML スキーマ型や、ユーザーが定義した型を使用できます。ユーザー定義型は、XML 要素の組み合わせを使用して構築されるか、既存の型を制限することによって定義されます。型定義と要素定義を組み合わせることで、複雑なデータを含むことができる複雑な XML ドキュメントを作成できます。
WSDL XML スキーマで使用される場合は、サービスとの対話に使用されるデータを保持する XML ドキュメントの構造を定義します。サービスで使用されるデータユニットを定義するときに、メッセージ部分の構造を指定するタイプとしてそれらを定義できます。データユニットをメッセージ部分を設定する要素として定義することもできます。
データユニットを作成する際の考慮事項
サービスの実装時に使用することを想定しているタイプに直接マップする論理データユニットを作成することを検討してください。このアプローチは機能し、RPC スタイルのアプリケーションを構築するモデルに厳密に従いますが、サービス指向アーキテクチャーの一部を構築するのに必ずしも理想的ではありません。
Web Services Interoperability Organization の WS-I 基本プロファイルは、データユニットを定義するためのいくつかのガイドラインを http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#WSDLTYPES で提供しています。さらに、W3C は、XML スキーマを使用して WSDL ドキュメントのデータ型を表すための次のガイドラインも提供します。
- 属性ではなく要素を使用します。
- 基本型としてプロトコル固有のタイプを使用しないでください。