XMLの整形式と業務上の正しさは別の確認

XMLの拒否は閉じ忘れたタグでも、書き方は正しいが不適切な値でも起こります。まずこの2種類の失敗を分けて考えます。

構造は正しさの最初の層

XMLには1つのルートと正しい入れ子が必要です。異なる名前で閉じたり、別々のルートを置いたりすると、人が意図を推測できても構造は不正です。

許可される項目や値は別の層です。整形式でも、負の金額や受け取り側が拒否するコードを含められます。

参考資料: W3C — XML 1.0 well-formedness and validity

整形で内容を書き換えない

要素間の空白は読みやすさに役立ちますが、要素と文章が混ざる箇所では文の一部です。削除や無作為な改行で読み取れる内容が変わる場合があります。

ToolRoofは混在テキストとxml:spaceの適用範囲を考慮します。再整形で元と同じバイト列や電子署名を保てるとは考えず、比較用の原本を残してください。

実際に確認した範囲を知る

ツールはXML 1.0の整形式確認と整形を行います。XSD・DTDの検証や外部実体の取得はしません。DOCTYPEとENTITY宣言は対応済みと扱わず拒否します。

合格しても税務・金融・その他の正式提出が受理されるとは限りません。構造を直した後、必要以上の機密情報を共有せず、適切な環境で受け取り側のスキーマと規則を確認します。

例:構造は正しくても金額が負

<order><amount>-5</amount></order>は整形式で2要素を含みます。しかし-5が許されるかは、XML構造以外の規則が必要です。

<order><amount>5</order>はorderより前にamountを閉じておらず不正です。<p>Read <b>this</b> now.</p>でも単語をつなげないよう空白を保つ必要があります。

参考資料