根据XSD验证XML

时间:2016-12-06 06:25:51

标签: java xsd

寻找一些确认,以下是针对模式验证XML字符串的最有效的Java解决方案。任何其他更有效的内存或性能方式?

private boolean isXMLValid(String XSDPath, String XML) {
        final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        try {
            final Schema schema = factory.newSchema(new File(XSDPath));
            final Validator validator = schema.newValidator();
            validator.validate(new StreamSource(new ByteArrayInputStream(XML.getBytes())));
        } catch (IOException | SAXException e) {
            System.out.println("Exception: " + e.getMessage());
            return false;
        }
        return true;
    }

1 个答案:

答案 0 :(得分:1)

几乎没有。您可以通过重用SchemaFactory(注意:不是线程安全的)和Schema(不可变的,线程安全的)来获得一些小的改进,但它几乎就是这样。如果你从String XML切换到更流畅的东西并使用StAX,你也可以获得一些内存改进。