Что вы используете для проверки XML-схемы? - PullRequest
2 голосов
/ 30 сентября 2008

Когда я хочу проверить свои документы XML по схеме в моей серверной Java, я использую встроенную реализацию JRE Xerces и javax.xml.validation.Schema. Он работает нормально, но при сбое проверки Xerces выдает сообщения об ошибках, которые очень близки к бесполезным, например:

cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type 'PopulatedStringType'

Это может занять много времени для диагностики и отслеживания конкретной части документа XML, которая не проходит проверку, и все из-за плохого сообщения об ошибке.

Итак, мой вопрос: вы используете альтернативные средства проверки XML по схеме, которые дают более полезный вывод при сбое проверки?

Пожалуйста, не говорите, что это Java на стороне сервера, поэтому, пожалуйста, не говорите "использовать XML Spy" или подобное.

Ответы [ 5 ]

2 голосов
/ 04 октября 2008

В вашем обработчике для проверки вы должны получить SAXParseException с этим сообщением, а также номер столбца и номер строки в файле XML. Разве это не так?

0 голосов
/ 31 мая 2009

Если у вас возникли проблемы с интерпретацией ошибок Xerces и вы хотите что-то, что поможет подчеркнуть, где в вашем документе вы нарушили правила, ознакомьтесь с некоторыми инструментами разработки XML, такими как oXygen .

alt text
(источник: oxygenxml.com )

Как только вы свяжете схему с вашим экземпляром XML-документа, редактор выделит область документа, в которой возникли проблемы, и предоставит вам описание нарушения.

Кроме того, вы можете использовать различные механизмы для проверки:

oXygen имеет встроенную поддержку для: Xerces, LIBXML, XSV, Saxon SA, MSXML4.0, MSXML .NET и SQC.

0 голосов
/ 30 сентября 2008

xmlstarlet (xmlstar.sourceforge.net/) - это набор инструментов командной строки. Вы можете запустить его с помощью Runtime.exec () для данного XML (если XML находится в файле).

0 голосов
/ 02 октября 2008

Используем Кастор .

Castor - это платформа связывания данных с открытым исходным кодом для Java [tm]. Это кратчайший путь между объектами Java, документами XML и реляционными таблицами. Castor обеспечивает привязку Java-XML, постоянство Java-SQL и многое другое.

0 голосов
/ 30 сентября 2008

Мы используем Oracle XDK (XML Development Kit) , который включает в себя xmlparserv2.jar с проверяющим анализатором и XSLT 2.0. Он использует JAXB API, поэтому вам нужно всего лишь добавить его в classpath и изменить импорт. Он генерирует ошибки, которые не идеальны, но я бы сказал, что их легче понять, чем ваш пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...