Can*_*lan 2 java xml validation xsd
我正在尝试使用以下代码从给定的XSD文件验证我的XML文件,
Source xmlFile = new StreamSource(fXmlFile);
SchemaFactory schemaFactory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(new File("presentation.xsd"));
Validator validator = schema.newValidator();
try {
validator.validate(xmlFile);
System.out.println(xmlFile.getSystemId() + " is valid");
} catch (SAXException e) {
System.out.println(xmlFile.getSystemId() + " is NOT valid");
System.out.println("Reason: " + e.getLocalizedMessage());
}
Run Code Online (Sandbox Code Playgroud)
我上传了我的XSD文件到这里给你看:http://orhancanceylan.com/stack/presentation.xsd
但是当我运行我的代码时,我收到此错误:
org.xml.sax.SAXParseException: s4s-att-not-allowed: Attribute 'maxOccurs' cannot appear in element 'element'.
Run Code Online (Sandbox Code Playgroud)
有什么问题,我该如何解决?
小智 6
您的架构中有错误,全局表示元素不能有约束(maxOccurs ="1"minOccurs ="1"),您需要删除它们(对于全局元素具有min/max没有意义,那些约束在其他元素的上下文中是有意义的).有关XSD入门的更多信息:http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#Globals