Search Posts

Visits: 88

XML文書の検証について

Open PeppolのXML文書に対するValidationは、次の3段階です。
BIS Billing 3.0を例に説明します。
https://docs.peppol.eu/poacc/billing/3.0/bis/#_validation

BIS Billing 3.0との違いは、次の記事に記載しました。

1. XML文書がUBL2.1として妥当な形式か

XML文書に対して、次のXMLスキーマでValidation実行
xsi:schemaLocation=”urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 http://docs.oasis-open.org/ubl/os-UBL-2.1/xsd/maindoc/UBL-Invoice-2.1.xsd”
ここでは、
1.1 XMLスキーマで定義されたデータ型として妥当な内容か
1.2 指定されたminOccrs maxOccursの範囲内で繰り返されているか。
注:XMLスキーマに定義された通りでないとエラー

2. スキーマトロン検証

BIS Billing 3.0で定義されたセマンティックモデルとシンタクス・バインディングに従って生成されたUBL文書か検証
2.1 シンタクス・バインディングで定義されたデータ型として妥当な内容か
2.2 シンタクス・バインディング指定されたCardinalityで生成されているか。
必須要素が記載されているか。
複数記載不可の要素が複数記載されていないか。
2.3 シンタクス・バインディングで指定されていないUBLのXML要素が使用されていないか。
注:スキーマトロン検証では、明治的にエラーとしない限りシンタクス・バインディングで指定されていないUBLのXML要素が使用されていても検出できない

3.BIS Billing 3.0のセマンティックモデルに従った妥当なUBL文書か検証

3.1 丸め計算 https://docs.peppol.eu/poacc/billing/3.0/bis/#_rounding 
計算の元になるUBL要素から指定された計算方式で求めた値と結果値として記載されているUBL要素の値を比較して許容範囲内か判定する。
3.2 合計や税額の計算 https://docs.peppol.eu/poacc/billing/3.0/bis/#_calculation
記載されているUBL要素の値は、規定された計算式に従って報告されているか。
計算の元になるUBL要素から指定された計算方式で求めた値と結果値として記載されているUBL要素の値を比較して許容範囲内か判定する。
3.3 要素間の指定条件が満足されているか。
要素の値が他の要素の値に応じて制限されているものがあるときその条件が満足しているか。

JP PINT 0.9.xの課題

0.9では提供されていたBasicルールの多くは、次の検証を提供するもので600件程度ありましたが、0.9.xでは提供されていません。
2.3 シンタクス・バインディングで指定されていないUBLのXML要素が使用されていないか。
この検証ルールが提供されないと、C2でのスキーマトロンチェックでシンタクス・バインディングで指定されていないUBLのXML要素が使用されていてもエラーが報告されません。