itplr-kosit / validator

Validates XML documents with XML Schema and Schematron
Apache License 2.0
78 stars 41 forks source link

Not Acceptable mit validator 1.2.0 and example 01.15a-INVOICE_ubl.xml #47

Closed thomaspz closed 4 years ago

thomaspz commented 4 years ago

see also: https://github.com/itplr-kosit/validator/issues/43

After upgrade to validator 1.2.0 and configuration 1.2.2_2019-12-30; I ran all test-documents against the validator again:

For this example

/instances/01.15a-INVOICE_ubl.xml

I get an "Reject" State, but the Fehlerreport has only the expected "Warning" and the "positive" Information:

"Bewertung: Es wird empfohlen das Dokument anzunehmen und weiter zu verarbeiten."

The same with

02.01a-INVOICE_ubl.xml

Do I Miss anything?

apenski commented 4 years ago

we've fixed #43 and will publish this with the next release. Nevertheless we need to fix the xrechnung configuration as well, which should use the acceptMatch option

@renzok would you please fix this?

thomaspz commented 4 years ago

I upgraded to validator 1.2.1 but I see no fix of the configuration. The Standard 1.2.2 should be provided on 01.07.2020. That is tomorrow. The actual 01.15a-INVOICE_ubl.xml in master-branch of the testsuite ist still the same than mine, but always the same result "rejected". Has the document format change or is that an issue of the validation? The same with 02_01a-Invoice_ubl-xml.

01.15a-INVOICE_ubl.xml 01 15a-INVOICE_ubl xml-fehlerreport

02.01a-INVOICE_ubl.xml 02 01a-INVOICE_ubl xml-fehlerreport

thomaspz commented 4 years ago

A fast solution for me could be to use the 1.3.3 validation-tool with the actual configuration 1.2.2 2019-12-30. This would work, till the issue is fixed. Would it be o.k. to combine this versions?

apenski commented 4 years ago

Hi @thomaspz

there is no version 1.3.3. of the validation tool.

Which exact target file do you use? If you used a recent version of 01.15a-INVOICE_ubl.xml (this one) and the xrechnung validator configuration 1.2.2 then you got a reject due to the fact, that the file is xrechnung version 2.0 and the configuration is looking for 1.2. E.g.

 <match>/invoice:Invoice[ starts-with(cbc:CustomizationID,
            'urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_1.2') ]</match>

does not match the file starting with

<?xml version="1.0" encoding="UTF-8"?>
<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
             xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
             xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             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">
    <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.0</cbc:CustomizationID>

You got a reject, since no scenario matches your input!

If you used another file please provide a running sample.

thomaspz commented 4 years ago

I retried with validationtool Version 1.3.1 and Configuration Version validator-configuration-xrechnung_1.2.2_2019-12-30 and teststuite xrechnung-1.2.2-testsuite-2019-12-30.

Example Project : https://github.com/thomaspz/kosit-issue-example

Testclass : ValidationtoolEineXrechnungTest

Testdocument : 01.15a-INVOICE_ubl.xml

Kosit-Validation-Result :

AcceptRecommendation = Reject,

but Result Report contains :

Bewertung: Es wird empfohlen das Dokument anzunehmen und weiter zu verarbeiten.

Where can I determine, if I should procceed the XRechnung document,? The Validation Result has some warnings, but says "proceed the document"; So how could I determine this state in the code or why is the result "rejected" if the report contains "proceed".

apenski commented 4 years ago

xrechnung-1.2.2-testsuite-2019-12-30 does not have an acceptMatch-configuration as explained in #43.

The tool only evaluates technical validation results like schema an schematron. The configuration report contains business validation logic. Determination whether to accept the file should be based on business validation. But you should update to the recent xrechnung configuration which contains the acceptMatch-configuration