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バッファ間の変換