Я хочу проверить файл xml с его xsd перед его unmarshalling.JAXB Validator не обнаруживает синтаксические ошибки?
Код выглядит следующим образом:
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(xsdFilePath);
Validator validator = schema.newValidator();
validator.setErrorHandler(new MyValidationErrorHandler());
validator.validate(new StreamSource(xmlFilePath));
Я обнаружил, что, когда XML-элемент не закрыт, валидатор не удалось записать это как ошибку, Но UnMarshaller признает это и бросает «Invalid контент был обнаружен начиная с элемента .. "Ошибка.
Я хочу, чтобы проверка и развязка/Маршаллинг были разными.
Существуют ли способы проверки Validator таких синтаксических ошибок в файле xml?
Причина, по которой я хочу продолжать проверку и разборки отдельно, заключается в том, что я хочу, чтобы валидация была как можно более общей, без большой зависимости от JAXBContext, поскольку она будет повторно использоваться в нескольких местах для проверки XML-файлов. Я хочу иметь API проверки подлинности, который будет сообщать об ошибках синтаксиса/разбора в XML-файле, а также об ошибках соответствия схемы. – Monikka