diff --git a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java index 5e8ce312..e7615f33 100644 --- a/validator/src/main/java/org/mustangproject/validator/XMLValidator.java +++ b/validator/src/main/java/org/mustangproject/validator/XMLValidator.java @@ -536,12 +536,15 @@ public class XMLValidator extends Validator { } ESeverity severity; + Node failNode = currentFailNode.getAttributes().getNamedItem("flag"); + String failVal = failNode == null ? null : failNode.getNodeValue(); if (defaultSeverity == ESeverity.notice) { severity = defaultSeverity; - } else if (currentFailNode.getAttributes().getNamedItem("flag") != null - && "warning".equals(currentFailNode.getAttributes().getNamedItem("flag").getNodeValue())) { + } else if ("warning".equals(failVal)) { // the XR issues warnings with flag=warning severity = ESeverity.warning; + } else if ("information".equals(failVal)) { + severity = ESeverity.notice; } else { severity = ESeverity.error; } diff --git a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java index 4adb787b..5e28bdec 100644 --- a/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java +++ b/validator/src/test/java/org/mustangproject/validator/ZUGFeRDValidatorTest.java @@ -202,7 +202,7 @@ public class ZUGFeRDValidatorTest extends ResourceCase { assertThat(res).valueByXPath("count(//notice)") .asInt() - .isEqualTo(0); + .isEqualTo(1); assertThat(res).valueByXPath("/validation/summary/@status") .asString() .isEqualTo("valid");// expect to be valid because XR notices are, well, only notices @@ -216,14 +216,14 @@ public class ZUGFeRDValidatorTest extends ResourceCase { assertThat(res).valueByXPath("count(//error)") .asInt() - .isEqualTo(5); + .isEqualTo(4); assertThat(res).valueByXPath("count(//warning)") .asInt() .isEqualTo(1); assertThat(res).valueByXPath("count(//notice)") .asInt() - .isEqualTo(0); // 12 notices RE XRechnung 3.0 + .isEqualTo(1); // 12 notices RE XRechnung 3.0 assertThat(res).valueByXPath("/validation/summary/@status") .asString() .isEqualTo("invalid");// expect to be valid diff --git a/validator/src/test/resources/validXRV30.xml b/validator/src/test/resources/validXRV30.xml index adffb992..5a78754a 100644 --- a/validator/src/test/resources/validXRV30.xml +++ b/validator/src/test/resources/validXRV30.xml @@ -102,6 +102,32 @@ + + + Zeitlose Diensleistung + + + Zeitlose Diensleistung + + + + 0.00 + + + + 1 + + + + VAT + S + 7 + + + 0.00 + + + 04011000-12345-03