C からのインポート: サポートされる機能

このセクションでは、C データ・タイプをメッセージ・モデル・エレメントにマップするときに C インポーターが使用するデフォルトについて説明しています。

以下の表は、C 定義がメッセージ・モデル内の XML スキーマ設定値にどのような影響を与えるかを示しています。 いくつかの xsd タイプには、タイプの後に '-' があります。 これはそのタイプに基づく無名の単純タイプであることを示しています。 ストリングの場合、無名タイプの目的は最大長の制限を追加することです。 数値タイプの場合、無名タイプの目的は最小値または最大値のどちらかの制限を追加することです。

C データ・タイプ XML スキーマのデータ
Char xsd:string - maxlength=1
Char[10] xsd:string- maxlength=10
Char[10][3] xsd:string - maxlength=3
Char[10][3][6] xsd:string - maxlength=6
Unsigned Char xsd:unsignedByte  
Unsigned Char[2] xsd:unsignedByte  
Signed Char xsd:byte  
Signed Char[2] xsd:byte  
Int xsd:int  
Int[2] xsd:int  
Int[2][3] xsd:int  
Unsigned Int xsd:unsignedInt  
Short xsd:short  
Unsigned Short xsd:unsignedShort  
Long xsd:int  
Long Long Int xsd:long  
Float xsd:float  
Double xsd:double  
Long Double (注 1 を参照) xsd:double  
<任意のポインター型> xsd:hexBinary- maxlength=(注 2 を参照)
<any enum>   (注 3 を参照)

以下の表は、 C 定義がメッセージ・モデル内で生成されたエレメントの物理 MRM CWF 特性にどのような影響を与えるかを示しています。

C データ・タイプ CWF 物理タイプ CWF 長さ特性 その他の CWF 特性
Char 固定長 長さ = 1

長さの単位 = バイト

 
Char[10] 固定長 長さ = 10

長さの単位 = バイト

左寄せ
Char[10][3] 固定長 長さ = 3

および、最大数 (Max Occurs) = 10

長さの単位 = バイト

左寄せ
Char[10][3][6] 固定長 長さ =6

および、最大数 (Max Occurs) = 30

長さの単位 = バイト

左寄せ
Unsigned Char 整数 長さ = 1 符号 (Signed) = No (いいえ)
Unsigned Char[2] 整数 長さ = 1

および、最大数 (Max Occurs) = 2

符号 (Signed) = No (いいえ)
Signed Char 整数 長さ = 1 符号 (Signed) = Yes (はい)
Signed Char[2] 整数 長さ = 1

および、最大数 (Max Occurs) = 2

符号 (Signed) = Yes (はい)
Int 整数 長さ = 4 符号 (Signed) = Yes (はい)
Int[2] 整数 長さ = 4

および、最大数 (Max Occurs) = 2

符号 (Signed) = Yes (はい)
Int[2][3] 整数 長さ = 4

および、最大数 (Max Occurs) = 6

符号 (Signed) = Yes (はい)
Unsigned Int 整数 長さ = 4 符号 (Signed) = No (いいえ)
Short 整数 長さ = 2 符号 (Signed) = Yes (はい)
Unsigned Short 整数 長さ = 2 符号 (Signed) = No (いいえ)
Long 整数 長さ = 4 (注 4 を参照) 符号 (Signed) = Yes (はい)
Long Long Int 整数 長さ (Length) = 8 符号 (Signed) = Yes (はい)
Float Float 長さ = 4  
Double Float 長さ (Length) = 8  
Long Double (注 1 を参照) Float 長さ (Length) = 8  
<任意のポインター型>   (注 2 を参照)  
<any enum> 整数 (注 3 を参照)  
注 :
  1. C インポーター・オプション「long double のサイズ」の値を 128 ビットに設定しないでください。 インポートが正常に行われなくなるためです。 デフォルトの 64 ビットを使用してください。
  2. 長さは、以下のように「アドレス・サイズ」 C インポーター・オプションの影響を受けます。
    • 32 ビットの場合、CWF 長さ = 4 バイト。
    • 64 ビットの場合、CWF 長さ = 8 バイト。
  3. 列挙のタイプおよび長さは、以下のように「列挙のサイズ」 C インポーター・オプションの影響を受けます。
    • 1 の場合 : 論理タイプ = xsd:byte、CWF 物理タイプ = Integer、CWF 長さ = 1 バイト。
    • 2 の場合 : 論理タイプ = xsd:short、CWF 物理タイプ = Integer、CWF 長さ = 2 バイト。
    • 4 の場合 : 論理タイプ = xsd:int、CWF 物理タイプ = Integer、CWF 長さ = 4 バイト。
    • Compact の場合 : 列挙が適合する最小の表現が選択されます。
  4. long の長さは、以下のように「アドレス・サイズ」 C インポーター・オプションの影響を受けます。
    • 32 ビットの場合、CWF 長さ = 4 バイト。
    • 64 ビットの場合、CWF 長さ = 8 バイト。
  5. Java 言語キーワードと競合するエレメント名は、単一下線文字の接頭部を付けることによって変更されます。
  6. _Packed キーワードはサポートされません。 ANSI C 宣言のみがサポートされています。
  7. C long long データ・タイプはサポートされません。
  8. C++ オブジェクト指向の拡張子はサポートされません。 ANSI C 宣言のみがサポートされています。
  9. ポインターは、CWF の長さを 4 に設定した xsd:integer としてインポートされます。
  10. 再帰的 C 構造はサポートされません。 ネスト構造に親構造と同じ名前を持つ構造が含まれている場合、インポートは正常に実行されますが、論理定義は正しくありません。 この問題を避けるには、ネスト構造の名前が、外部または親構造の名前と同じにならないようにしてください。
関連概念
メッセージのモデル化
メッセージ・モデル
関連タスク
メッセージ・モデルの開発
メッセージ定義ファイルの処理
メッセージ・モデル・オブジェクトの処理
関連資料
メッセージ・モデルの参照情報
メッセージ・モデル・オブジェクトのプロパティー
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:43:10

ad06890_