-2

我正在针对 XSD 验证 XML。但我的 java 验证错误消息与 XMLSpy 的验证错误消息不同。这里 XMLSpy 是正确的,而 java 验证消息具有误导性。我正在使用以下代码来验证 XML:

SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(true);
factory.setNamespaceAware(true);
SAXParser saxParser = factory.newSAXParser();
saxParser.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);

saxParser.setProperty(JAXP_SCHEMA_SOURCE,new File("TXLife2.26.00.xsd"));
MySAXHandler dh = new MySAXHandler();
saxParser.parse(new File("test.xml"), dh);

Java 验证消息说:

cvc-complex-type.2.4.a:发现以元素“<element>”开头的无效内容。

但 XMLSpy 说:

元素 <parent_element> 下的此位置不允许元素 <element>

4

1 回答 1

1

您收到的错误消息取决于您使用的验证器。两者都报告相同的错误。如果您想要一个带有更好错误消息的 Java XSD 验证器,请尝试一下 Saxon:您可能更喜欢它。但是错误报告是一门不精确的艺术:在设计错误消息时,实现者使用的信息有限,包括 (a) 用户的意图,以及 (b) 用户对技术的了解程度。

于 2012-04-10T07:40:40.040 回答