1. Сначала нам нужна эта зависимость, которая может анализировать схемы xsd:
implementation("org.apache.ws.xmlschema:xmlschema-core:2.2.4")
2. Мы создаем 2 бобов. Один для хранения нашего XSD's
(он автоматически найдет другие файлы, если есть этот schemaLocation="..."
), другой для нашего Validator
:
@Bean
fun schema(): XsdSchemaCollection {
return CommonsXsdSchemaCollection(
ClassPathResource("xsd/main.xsd")
).also { it.setInline(true) }
}
@Bean
fun myValidator(schema: XsdSchemaCollection): XmlValidator {
return schema.createValidator()
}
3. И мы можем использовать его:
@Autowired
private val myValidator: XmlValidator
fun validate(data: String): Array<SAXParseException> {
return myValidator.validate(StreamSource(data.byteInputStream()))
}
Array<SAXParseException>
будет содержать список исключений проверки, если таковые имеются