包含ASSERT标记的XML Schema验证

时间:2014-05-08 15:25:38

标签: java xml xsd xsd-validation

我正在尝试使用XML Schema验证XML实例,其中包含assert标记。验证器抛出包含消息的异常:

  

'#AnonType_message'的内容无效。元素'断言'无效,错位或过于频繁发生。

这是我的代码:

//xmlData is a xml string
Source xmlFile = new StreamSource(new StringReader( xmlData ));

SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

Schema schema = schemaFactory.newSchema(schemaFile);
Validator validator = schema.newValidator();

validator.validate(xmlFile);

这是解析器的错误消息:

  

org.xml.sax.SAXParseException

1 个答案:

答案 0 :(得分:2)

<assert>标记在XSD 1.1模式中有效。

要验证您的架构,您需要一个兼容XSD 1.1的解析器。有关如何在应用程序中配置它的示例,请参阅this question和答案。

您可能还想检查您的XSD文档在<xs:schema>开始标记中是否包含以下两个属性:

<xs:schema ...
       xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1" ...>