Search Posts

Visits: 409

「その他のSelector問題個所」を追記しました。2022-09-13

Seller TAX identifierのSelector [cac:TaxScheme = ‘VAT’]は誤りです

JP PINT 0.9.3の次の項目のSelectorが間違っています。

ibt-031 Seller TAX identifier
ibt-032 Seller TAX registration identifier

どちらも、Syntax bindingでは、次のようにSelectorを定義しています。
• • cac:PartyTaxScheme
  [cac:TaxScheme = “VAT”]

cac:TaxScheme は、XMLのComplexTypeなので、子要素を持つことはできますが、値を持つことはできません。
値が指定できるのは、下記 BIS Billing 3.0で説明されているように、cbc:ID です。この値が ‘VAT’か’VAT’でないかで別の項目に対応付けています。


cac:TaxSchemeは、ComplexTypeなので値を持てません。正しくは、cac:TaxScheme/cbc:ID です。

従って、cac:TaxScheme/cbc:ID = ‘VAT’およびcac:TaxScheme/cbc:ID = ‘VAT’が正しいSelectorです。

それぞれの正しいXPathは、次の値です。
ibt-031 Seller TAX identifier
/ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme [ cac:TaxScheme/cbc:ID=’VAT’ ]/cbc:CompanyID
ibt-032 Seller TAX registration identifier
/ubl:Invoice/cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme [cac:TaxScheme/cbc:ID!=’VAT’ ]/cbc:CompanyID

その他のSelector問題個所

IBG-24 ADDITIONAL SUPPORTING DOCUMENTS cac:AdditionalDocumentReference[cbc:DocumentTypeCode != 130]
cbc:DocumentTypeCodeは文字列です。130でなく’130’です。
cac:AdditionalDocumentReference[cbc:DocumentTypeCode != ‘130’]でも誤りです。
cbc:DocumentTypeCodeは、Syntax bindingに定義されておらず、必ずしも定義する必要がないので、
/ ubl:Invoice / cac:AdditionalDocumentReference[ not(cbc:DocumentTypeCode = ‘130’) ]

IBG-20 DOCUMENT LEVEL ALLOWANCES cac:AllowanceCharge[cbc:ChargeIndicator = false]
IBG-21 DOCUMENT LEVEL CHARGES cac:AllowanceCharge[cbc:ChargeIndicator = true]
cbc:ChargeIndicatorは、udt:IndicatorTypeです。Booleanなので、XPathでは、それぞれ、true(),false()との比較でないとXPathでエラーとなります。
/ ubl:Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = false() ]
/ ubl:Invoice / cac:AllowanceCharge [ cbc:ChargeIndicator = true() ]

cac:TaxTotal
[cac:TaxTotal/TaxAmount/@currency = cbc:DocumentCurrencyCode]も誤り、
正しいXPathは、
/ ubl:Invoice / cac:TaxTotal[cbc:TaxAmount/@currency = ../cbc:DocumentCurrencyCode]

どうにもXPathを理解しているとは思えない定義です。
XPathを組み立ててテストしたものを公開いただきたいと思います。