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