Я проверяю XMLSchema на Java и получаю вызовы SAXParseException, когда у меня есть недействительные модели содержимого.
Я собираюсь использовать эти исключения, чтобы выделить, где проверка не удалась, но значения SAXParseExceptions выглядят слишком низкоуровневыми.
Например, для отказа при перечислении я получаю ошибку достоверности, что предоставленное значение не соответствует модели содержимого в одном исключении, и к элементу, к которому она относится в следующем.
Я думаю, что мне нужно иметь утилиту, которая немного абстрагирует, чтобы объединить связанные ошибки и проанализировать текст исключения в пригодных для использования свойствах исключения.
Это разумный подход, или я просто что-то пропустил, или, может быть, библиотеку или вспомогательный класс?
Обновите @timgilbert, спасибо за ответ.
Например, исключение SAXParseException, которое я нашел в t'internet
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() throws org.xml.sax.SAXException в любом случае - не знаю, как я могу уйти от принятия привязки...
Приветствия