Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB:在XML验证期间发生严重程度为2的事件(致命错误),而不是严重程度为1的事件(错误)_Java_Jaxb_Jaxb2 - Fatal编程技术网

Java JAXB:在XML验证期间发生严重程度为2的事件(致命错误),而不是严重程度为1的事件(错误)

Java JAXB:在XML验证期间发生严重程度为2的事件(致命错误),而不是严重程度为1的事件(错误),java,jaxb,jaxb2,Java,Jaxb,Jaxb2,在使用JAXB对XSD文件进行XML验证期间,我似乎得到了严重程度为2的事件(致命错误),而不是严重程度为1的事件(错误) 为了检查我的印象,我使用了博客条目中发布的代码的精确副本,使用了Unmarshal演示。我得到的不是该博客上显示的三个严重级别为1的事件,而是严重级别为2的事件。以下是我的输出: EVENT SEVERITY: 2 MESSAGE: cvc-maxLength-valid: Value 'Jane Doe' with length = '8' is not facet-

在使用JAXB对XSD文件进行XML验证期间,我似乎得到了严重程度为2的事件(致命错误),而不是严重程度为1的事件(错误)

为了检查我的印象,我使用了博客条目中发布的代码的精确副本,使用了Unmarshal演示。我得到的不是该博客上显示的三个严重级别为1的事件,而是严重级别为2的事件。以下是我的输出:

EVENT SEVERITY: 2 MESSAGE: cvc-maxLength-valid: Value 'Jane Doe' with length = '8' is not facet-valid with respect to maxLength '5' for type 'stringMaxSize5'. LINKED EXCEPTION: org.xml.sax.SAXParseException; systemId: file:/C:/.../workspace/JAXBTest/input.xml; lineNumber: 2; columnNumber: 25; cvc-maxLength-valid: Value 'Jane Doe' with length = '8' is not facet-valid with respect to maxLength '5' for type 'stringMaxSize5'. LOCATOR LINE NUMBER: 2 COLUMN NUMBER: 25 OFFSET: -1 OBJECT: null NODE: null URL: file:/C:/.../workspace/JAXBTest/input.xml EVENT SEVERITY: 2 MESSAGE: cvc-type.3.1.3: The value 'Jane Doe' of element 'name' is not valid. LINKED EXCEPTION: org.xml.sax.SAXParseException; systemId: file:/C:/.../workspace/JAXBTest/input.xml; lineNumber: 2; columnNumber: 25; cvc-type.3.1.3: The value 'Jane Doe' of element 'name' is not valid. LOCATOR LINE NUMBER: 2 COLUMN NUMBER: 25 OFFSET: -1 OBJECT: null NODE: null URL: file:/C:/.../workspace/JAXBTest/input.xml EVENT SEVERITY: 2 MESSAGE: cvc-complex-type.2.4.d: Invalid content was found starting with element 'phone-number'. No child element is expected at this point. LINKED EXCEPTION: org.xml.sax.SAXParseException; systemId: file:/C:/.../workspace/JAXBTest/input.xml; lineNumber: 5; columnNumber: 19; cvc-complex-type.2.4.d: Invalid content was found starting with element 'phone-number'. No child element is expected at this point. LOCATOR LINE NUMBER: 5 COLUMN NUMBER: 19 OFFSET: -1 OBJECT: null NODE: null URL: file:/C:/.../workspace/JAXBTest/input.xml 事件 严重程度:2 消息:cvc maxLength有效:对于类型“stringMaxSize5”,长度为“8”的值“Jane Doe”对于maxLength“5”无效。 链接异常:org.xml.sax.saxpasseeption;systemId:file:/C:/…/workspace/JAXBTest/input.xml;行号:2;栏目号:25;cvc maxLength valid:对于类型“stringMaxSize5”,长度为“8”的值“Jane Doe”对于maxLength“5”无效。 定位器 行号:2 栏目号:25 偏移量:-1 对象:空 节点:空 URL:file:/C:/…/workspace/JAXBTest/input.xml 事件 严重程度:2 消息:cvc类型。3.1.3:元素“name”的值“Jane Doe”无效。 链接异常:org.xml.sax.saxpasseeption;systemId:file:/C:/…/workspace/JAXBTest/input.xml;行号:2;栏目号:25;cvc type.3.1.3:元素“name”的值“Jane Doe”无效。 定位器 行号:2 栏目号:25 偏移量:-1 对象:空 节点:空 URL:file:/C:/…/workspace/JAXBTest/input.xml 事件 严重程度:2 消息:cvc复杂类型。2.4.d:发现以元素“phone number”开头的无效内容。此时不需要任何子元素。 链接异常:org.xml.sax.saxpasseeption;systemId:file:/C:/…/workspace/JAXBTest/input.xml;行号:5;栏目号:19;cvc复杂类型.2.4.d:发现以元素“phone number”开头的无效内容。此时不需要任何子元素。 定位器 电话号码:5 栏目号:19 偏移量:-1 对象:空 节点:空 URL:file:/C:/…/workspace/JAXBTest/input.xml 在我自己的项目中,我希望收集XML文件的所有无效点。到目前为止,这还不起作用,因为对于XML文件的大多数无效部分,我都会收到严重级别为2的事件,即使只有一个值超出了它的指定范围

如何获得简单XML验证错误的预期严重性1分类?是否有任何机制可以更改JAXB中XML验证事件的分类?

另一方面,即使出现致命错误,我也可以将异常处理程序配置为继续,但我认为这不是一个好主意

最初,我想使用JAXB的ValidationEventCollector,但它通常只收集第一个事件,因为它在出现致命错误(严重性为2)时停止,就我所见,几乎所有验证问题都是如此


我使用的是Java 1.8.0,我在windows系统和mac上都有过这种行为。

我不确定是应该发布我使用的代码示例,还是只发布代码链接。我使用了链接。我希望没问题。对这个问题有什么想法吗?您是否从问题中的链接中获得代码示例的严重性1或严重性2错误?