2.10.3.3 XMLとFML/FML32フィールド型のマッピング
XML形式とFML/FML32フィールド間の関係では、XML要素名はFML/FML32フィールド名と同じですが、XML値は対応するフィールド型をもとに解釈されます。
開始および終了タグは、フィールドの名前を使用します。属性は、必要に応じてFLD_FML32、FLD_MBSTRING
とFLD_VIEW32
で提供されます。フィールド名と属性の大文字と小文字は区別されます。
フィールド値は文字列として読み取られ、以下のフィールド型に変換されます。
<FIELDNAME Attribute="Attribute Value"> FIELDVALUE </FIELDNAME>
FML/FML32フィールド型は、次のようにXMLバッファ型にマッピングされます。
フィールド型 | 変換マッピング | 例 |
---|---|---|
SHORT LONG CHAR FLOAT DOUBLE STRING | FLD_SHORT、FLD_LONG、FLD_CHAR、FLD_FLOAT、FLD_DOUBLE およびFLD_STRING フィールドとXML文字列値間の変換は単純です。型の値の形式は、Ftypcvt() で使用されているスタイルに従います。
|
|
CARRAY | FLD_CARRAY フィールドの変換時に、Tuxedoでは、XMLバイト・ストリーム値はXMLの2文字から1バイト値に変換されます。つまり、文字の各XMLペアは16バイト値を表します。
|
|
PTR | XMLへの変換時に、FLD_PTR フィールド名は、STRING、MBSTRING、CARRAY、FML、FML32 およびVIEW32 のうち、有効なTuxedoバッファ型を示し、無効なバッファ型を無視します。バッファの内容がXMLに変換された場合、BUFTYPE 属性はバッファ型タグに含まれます(例1を参照)。FML32への変換時に、BUFTYPE 属性をバッファ型タグに含める必要があります。有効な唯一の値は、STRING、MBSTRING、CARRAY、FML、FML32 およびVIEW32 のTuxedoバッファ型です。BUFTYPE 属性を指定していない場合、または無効な値を使用している場合、要素はFML32で無視されます。
|
例1 - XML変換: 例2 - FML32変換:
|
FML32 | FLD_FML32 フィールド名は、FMLフィールド名に基づいて開始および終了タグでサポートされます。このXMLドキュメントには、バッファに含まれるフィールドごとに<fieldname>value</fieldname> の複数の説明が含まれます。埋込みFML32は許可されるので、XMLの階層記述は受け付けられます。
ノート: 省略可能な属性Tpmbenc は、XMLとFML32間の変換時にFML32バッファのMBSTRINGフィールド全体のエンコードを指定するために使用します
|
下記の最初の例には、エンコード属性が含まれます。2番目の例は、IDという埋め込みFML32フィールドを含むBANKフィールドに対するFML32定義です。
例1:
例2: |
VIEW32 | FLD_VIEW32 フィールド名がサポートされているので、FLD_INT フィールドとFLD_DECIMAL フィールドも認識されます。FLD_INT は、FLD_LONG と同様に処理されます。開始および終了タグは、FLD_VIEW32 フィールド名に基づいています。使用するVIEW名を指定するためにVname 属性が取られます。このXMLドキュメントには、<fbname> value </fbname> の複数の説明が含まれます(fbname はVIEWメンバー・フィールドのバッファ名です)。
|
|
MBSTRING | FLD_MBSTRING フィールド変換は、Encoding 属性、およびFML32フィールドを記述するためのフィールド・データを使用します。この変換は、Fmbpack32 を使用した場合と同じです。次の条件に注意してください。
FLD_CARRAY フィールドと同じ方法で処理されます。
|
|
親トピック: XMLデータとFML/FML32バッファ間の変換