2.5.1.3 XMLデータ・マッピング
XMLデータ・マッピングは、SOAPモードで使用されるマッピングと類似のルールを使用して実行されます。
次の点が異なります:
- 小数の値がない浮動小数点数は、整数として表現されます。たとえば、10.0は10と出力されます。これは現時点での制約です。
- RESTモードにはインタフェースがないため、ネームスペースは生成または処理されません。
- シンプル・バッファ(
STRING
、CARRAY
、MBSTRING
、XML
)は、XML処理なしにそのまま送受信されます。動作はJSON処理と同じです(つまり、マッピングは必要ありません)。 -
FML
およびFML32
のリクエストは、ルート要素でラップする必要があります(ルート要素の名前は、XMLが適切な形式であれば無視されます)。また、応答は、SALTDEPLOY構成ファイルのREST/Service/Method/@inputbuffer
属性で指定されているサブタイプと同じ名前の要素でラップします。また、サブタイプが構成されていない場合はその要素が存在しないこともあるため、<root>
要素でラップします。VIEW
、VIEW32
、X_COMMON
およびX_C_TYPE
バッファはサブタイプ名をルート要素名として使用します。
次の表に、様々なOracle Tuxedoバッファ・タイプとXMLとの変換を示します:
表2-14 XMLデータ・マッピング
Tuxedoのバッファ・タイプ | 説明 | REST XMLマッピングの例 |
---|---|---|
STRING
|
Oracle Tuxedo STRING 型付きバッファは、NULL 文字で終わる文字列の格納に使用します。Oracle Tuxedo STRING 型付きバッファは自己記述型バッファです。
|
HELLO WORLD! |
CARRAY
|
Oracle Tuxedo CARRAY 型付きバッファには文字配列が格納されます(配列内には任意の位置にNULL を含んでよい)。CARRAY バッファはデータをオペークなものとして扱うバッファで、自己記述型ではありません。
|
バイナリ・コンテンツ |
MBSTRING
|
Oracle Tuxedo MBSTRING 型付きバッファは、マルチバイト文字配列に使用します。Oracle Tuxedo MBSTRING バッファは次の3つの要素により構成されます。
|
Content-Type設定に基づいてエンコードされたマルチバイト文字列。 |
XML
|
Oracle Tuxedo XML 型付きバッファにはXMLドキュメントが格納されます。
GWWSサーバーでは、実際のXMLデータが整形式であることが検証されます。それ以外の事項(スキーマ検証など)の適用については確認されない。 ペイロードには、単一ルートの 元のXMLドキュメントに含まれるプロローグ情報は、ペイロードに含めて伝送することはできません。 UTF-8以外のエンコーディングを転送するには、SALTDEPLOY構成の |
XMLフラグメントはそのままです |
X_C_TYPE
|
VIEW/VIEW32 と同じ
|
- |
X_COMMON
|
VIEW/VIEW32 と同じ
|
- |
X_OCTET
|
CARRAY と同じ
|
- |
VIEW/VIEW32
|
Oracle Tuxedo VIEW およびVIEW32 型付きバッファには、Oracle Tuxedoアプリケーションで定義されたC構造が格納されます。
サブ要素の名前は |
<VIEW>
|
FML/FML32
|
Oracle Tuxedo FML およびFML32 型バッファは、Oracle Tuxedoシステムに特有の自己記述型バッファです。各データ・フィールドは独自の識別子、オカレンス番号、および可能であれば長さインジケータを保持します。
|
ネストFLD_VIEW32 : ビュー・サブタイプの名前は組込みVIEW32の名前である必要があります。例:
|
RECORD
|
RECORD バッファ・タイプは、コピーブック・レコードを表します。RECORD 型には、個々のレコード構造体を示すサブタイプが必要です。
生成されるCOBOL型:
|
|
ノート:
非構造化バッファ・タイプ(STRING
、CARRAY
、X_OCTET
、MBSTRING
)はデータをXMLオブジェクトとしてラップしません。データはそのまま転送されます。