Java 根据包含的xsd验证xml
我试图根据一个内部引用另一个XSD的XSD(使用include语句)验证XML 作为 我得到一个错误,“cvc数据类型有效。1.2.1:‘True’不是‘boolean’的有效值。” 这是针对schema1.xsd引用的schema2.xsd中定义的元素Java 根据包含的xsd验证xml,java,xsd,xml-parsing,xml-validation,Java,Xsd,Xml Parsing,Xml Validation,我试图根据一个内部引用另一个XSD的XSD(使用include语句)验证XML 作为 我得到一个错误,“cvc数据类型有效。1.2.1:‘True’不是‘boolean’的有效值。” 这是针对schema1.xsd引用的schema2.xsd中定义的元素 如果我做错了什么,请告诉我。您遇到了案例问题。”true是xsd:boolean的有效值,但true(显然是XML文档中的值)不是 此处的响应()提供了一些附加信息和基于枚举值的可能替代解决方案(如果您无法将True更改为True)。Aweso
如果我做错了什么,请告诉我。您遇到了案例问题。”true是xsd:boolean的有效值,但true(显然是XML文档中的值)不是
此处的响应()提供了一些附加信息和基于枚举值的可能替代解决方案(如果您无法将True更改为True)。Awesome!!。。谢谢你的解决方案。
<xs:include schemaLocation="Schema2.xsd"/>
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader(
inputXml)));
TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();
Source src = new DOMSource(document);
Result xmlFile = new StreamResult(new File("xmlFileName.xml"));
aTransformer.transform(src, xmlFile);
} catch (Exception e) {
// TODO: handle exception
}
File xmlFile = new File("xmlFileName.xml");
SchemaFactory factory1 = SchemaFactory
.newInstance("http://www.w3.org/2001/XMLSchema");
File schemaLocation = new File("F:\\Project\\Automation\\XSDs\\schema1.xsd");
Schema schema = factory1.newSchema(schemaLocation);
Validator validator = schema.newValidator();
Source source = new StreamSource(xmlFile);
try {
validator.validate(source);
System.out.println(xmlFile.getName() + " is valid.");
isXmlValid = true;
} catch (SAXException ex) {
System.out.println(xmlFile.getName() + " is not valid because ");
System.out.println(ex.getMessage());
isXmlValid = false;
}