Formatmanagerでは、以下のようなXML文書を扱うことはできません。適切でない処理結果となる場合があります。
整形式(well-formed)XML文書ではないXML文書
XML規約で許されていない文字を含んでいる、開始タグと終了タグの対応が正しくない、タグの親子関係や入れ子が正しくない、などの整形式XML文書ではないものが入力されても処理できません。
なお、XML規約で許されていない文字とは、以下に示す文字などです。
半角カタカナ
全角空白
全角数字
半角数字で始まるもの
全角カンマ(,)
半角カンマ(,)
タグの順序が不定なXML文書
DTDやXML Schemaにかかわらず、Formatmanagerクライアントで定義した順序でタグが現れないXML文書は処理できません。
255バイトを超える長さのタグをもつXML文書
Formatmanagerクライアントでフィールド名として定義できない長さを持つタグ名は処理できません。
文字参照を使用したXML文書
文字のコード番号を指定して文字データを表す文字参照は処理できません。文字参照の文字列のまま出力されます。
複数レコードが記述されたXML文書
Formatmanagerは、Formatmanagerクライアントで定義したフォーマット定義に対して、すべてのXMLタグが揃っておらず、一部のXMLタグが省略されているようなXML文書も処理することができます。しかし、そのようなXML文書では、一般フォーマットにおけるレコードの区切りが判定できなくなるため、「XMLタグが省略されていて、かつ複数のレコードが含まれる」XML文書は、フォーマット変換結果を保証しません。
しかし、以下の条件を満たしている場合に限り、複数レコードを含むXML文書も入力データとすることができます。
ルート直下のタグは省略されていない。
Formatmanagerでこの条件を満たすXML文書を出力する場合には、Formatmanagerクライアントのフォーマット定義において、ルート直下に該当する項目の「省略可能」欄はチェックしないでください。
図5.26 複数レコードが記述されたXML文書の例
再帰的な構造をもつXML文書
子要素、または孫要素のタグ名が、その親要素と同じタグ名をもつような再帰的な構造をもつXML文書は処理できません。
子要素をもたないタグともつタグが同じタグ名であるXML文書
子要素をもたない(Formatmanagerクライアントで単一の項目と定義される要素)タグと、親要素である(Formatmanagerクライアントで集団項目ヘッダと定義される子要素をもつ要素)タグが、同じタグ名であるような、構造が異なる要素が同じタグ名をもっているXML文書は処理できません。
構成の異なる複数の親要素が同じタグ名をもつXML文書
子要素の構成が異なる複数の親要素が、同じタグ名をもつようなXML文書は処理できません。(同じタグ名をもつ親要素は、その子要素が同じ構成でなければなりません)
任意の階層の中でタグ名が一意でない定義になるXML文書
Formatmanagerクライアントでの定義において、任意の階層の中でフィールド名(タグ名)が一意にならない構造をもつXML文書は処理できません。
上記のフォーマット定義は例であり、実際にはエラーとなり登録できません。
上記の「内容2」と「内容3」の<child1>のように、子要素をもたないタグが連続して繰り返されるXML文書は、[一般フォーマット登録]画面の「タグ繰返数」を指定することにより定義することが可能です。
ポイント
集団項目トレーラに対応するタグは存在しません。
フォーマット定義において、フォーマットIDを定義した単位を1レコードとします。