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

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

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

パック・データ構造データ・タイプは、C インポーターの有効範囲外です。

C データ・タイプ 論理タイプ
Char xsd:string - length=1
Char[10] xsd:string- length=10
Char[10][3] xsd:string - length=3
Char[10][3][6] xsd:string - length=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- length=(注 2 を参照)
<any enum>   (注 3 を参照)

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

C データ・タイプ CWF 物理タイプ CWF 長さ特性 その他の CWF 特性
Char 固定長 長さカウント (Length Count) = 1

長さの単位 (Length Units) = バイト (Bytes)

 
Char[10] 固定長 長さカウント (Length Count) = 10

長さの単位 (Length Units) = バイト (Bytes)

左寄せ
Char[10][3] 固定長 長さカウント (Length Count) = 3

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

長さの単位 (Length Units) = バイト (bytes)

左寄せ
Char[10][3][6] 固定長 長さカウント (Length Count) = 6

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

長さの単位 (Length Units) = バイト (bytes)

左寄せ
Unsigned Char 整数 長さカウント (Length Count) = 1 符号 (Signed) = No (いいえ)
Unsigned Char[2] 整数 長さカウント (Length Count) = 1

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

符号 (Signed) = No (いいえ)
Signed Char 整数 長さカウント (Length Count) = 1 符号 (Signed) = Yes (はい)
Signed Char[2] 整数 長さカウント (Length Count) = 1

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

符号 (Signed) = Yes (はい)
Int 整数 長さカウント (Length Count) = 4 符号 (Signed) = Yes (はい)
Int[2] 整数 長さカウント (Length Count) = 4

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

符号 (Signed) = Yes (はい)
Int[2][3] 整数 長さカウント (Length Count) = 4

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

符号 (Signed) = Yes (はい)
Unsigned Int 整数 長さカウント (Length Count) = 4 符号 (Signed) = No (いいえ)
Short 整数 長さカウント (Length Count) = 2 符号 (Signed) = Yes (はい)
Unsigned Short 整数 長さカウント (Length Count) = 2 符号 (Signed) = No (いいえ)
Long 整数 長さカウント (Length Count) = 4 (注 4 を参照) 符号 (Signed) = Yes (はい)
Long Long Int 整数 長さカウント (Length Count) = 8 符号 (Signed) = Yes (はい)
Float Float 長さカウント (Length Count) = 4  
Double Float 長さカウント (Length Count) = 8  
Long Double (注 1 を参照) Float 長さカウント (Length Count) = 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, 2006 最終更新: 08/21/2006
ad06890_