Я проверяю XMLSchema в Java и получаю исключения SAXParseException, когда у меня недопустимые модели содержимого.
Я собираюсь использовать эти исключения, чтобы выделить, где проверка не удалась - но SAXParseExceptions, кажется, слишком низкоуровневый.
Например, при сбое в перечислении я получаю ошибку достоверности, что указанное значение не соответствует модели содержимого в одном исключении, а элемент, к которому он применяется, - в следующем.
Мне кажется, мне нужна утилита, которая немного абстрагируется, чтобы объединить связанные ошибки и разобрать текст исключения в пригодные для использования свойства исключения.
Это разумный подход, или я просто что-то упускаю, или, возможно, библиотека или вспомогательный класс?
Обновление @timgilbert, спасибо за ответ.
Например, исключение SAXParseException, которое я нашел в Интернете
cvc-pattern-valid: Value 'en' is not facet-valid
with respect to pattern '([a-zA-Z]{1,8})(-[a-zA-Z0-9]{1,8})*'
Ключевыми вещами для меня являются
- Элемент 'en', к которому относится это исключение. Почему я не могу вызвать exception.getElement () или что-то, и почему не XPath к рассматриваемому элементу? Более полезно с документом в памяти, чем номер строки и столбца!
- Это ошибка проверки шаблона. Почему я не могу получить что-то вроде перечисления возможных типов сбоев и ссылки на соответствующий?
- Фактический шаблон, по которому проверка не удалась.
- Далее будет добавлено еще одно исключение, сообщающее мне значение элемента 'en', вызвавшего проблему, с которой мне нужно объединиться
Пример того, что я хотел бы сделать, это сделать так, чтобы люди отправляли документ и выдвигали на первый план документ, где проверка не проходит, с удобным сообщением - сообщение об ошибке выше вроде не очень дружелюбно ... необходимость разбираться в одинарных кавычках - это просто несчастный случай, ожидающий, чтобы это произошло :)
Я думаю, что, возможно, я делаю это неправильно с «ссылкой на элемент», и, возможно, мне нужно иметь преобразование идентичности документа по умолчанию как часть проверки и дополнить преобразование ошибкой проверки атрибуты, которые я могу выбрать с помощью CSS. Это все равно не поможет, если мне нужно будет проанализировать сообщения, чтобы сделать их более дружелюбными ...
Re: жесткая привязка, javax.xml.validation.Validator.validate () все равно генерирует исключение org.xml.sax.SAXException - не уверен, как я могу избежать предположения о привязке ...
Приветствия