Я пытаюсь проверить файл XML в Scala, и пока он работает следующим образом (пространства имен - это массив StreamSource со схемами):
import javax.xml.XMLConstants
import javax.xml.transform.Source
import javax.xml.transform.stream.StreamSource
import javax.xml.validation.SchemaFactory
val schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI)
val schema = schemaFactory.newSchema(namespaces)
val validator = schema.newValidator()
validator.validate(new StreamSource(path))
Но это не учитывает ID отношения в файле. Например, если я удаляю какой-либо элемент из файла, не повреждая структуру, он будет «действительным», но на самом деле это не так, поскольку некоторый элемент ссылается на идентификатор удаленного элемента.