我正在尝试针对 XSD 验证非常 XML (~200MB)。这需要将近3个小时。我不确定我在这里做错了什么?
SchemaFactory sf = SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File(this.productExtraInfoXsd));
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = builder.parse(new File(filePath));
DOMSource domSource = new DOMSource(doc);
DOMResult result = new DOMResult();
Validator validator = schema.newValidator();
validator.validate(domSource, result);
最佳答案
查看这篇来自 Marco Tedone 的关于 XML 解码的文章,请参阅 here .基于他你可以看到Stax
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(fileInputStream);
Validator validator = schema.newValidator();
validator.validate(new StAXSource(xmlStreamReader));
关于java - 如何提高 Java 中针对 xsd 的大型 xml 验证速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772165/