01 iulie 2020

Validare xml cu xsd in Java

private static void initialize() throws SAXException { 
    final SchemaFactory factory = 
        SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
    final InputStream xsdStream = XmlDocumentValidator.class.getClassLoader()
        .getResourceAsStream(SCHEMA_PATH);            
    final Schema schema = factory.newSchema(new StreamSource(xsdStream)); 
    validator = schema.newValidator();      
    validator.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); 
    validator.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); 

public static boolean validateSchema(Resource resource) { 
    try (InputStream inputStream = resource.getInputStream()) { 
        if (validator == null) { 
            initialize(); 
        } 
        validator.validate(new StreamSource(inputStream)); 
        return true; 
    } catch (final SAXException | IOException e) { 
        LOGGER.error("Schema validation failed", e); 
        return false; 
    } 
}

Niciun comentariu: