Проверка XML - PullRequest
       29

Проверка XML

1 голос
/ 22 июля 2009

Я хочу проверить XML-файл по предоставленной схеме RELAXNG. Поиск в сети дал мне подсказки для создания экземпляра схемы с использованием SchemaFactory, предоставив соответствующий язык схемы. В соответствии с моим требованием я использовал:

SchemaFactory.newInstance (XMLConstants.RELAXNG_NS_URI);

Но при запуске было сгенерировано следующее исключение:

Исключение в потоке "main" java.lang.IllegalArgumentException: нет SchemaFactory, который реализует язык схемы, указанный в: http://relaxng.org/ns/structure/1.0, не может быть загружено
в javax.xml.validation.SchemaFactory.newInstance (SchemaFactory.java:207)

Я использую Java6 и заметил, что работает только 'W3C_XML_SCHEMA_NS_URI'. Rest все URI схемы выдает подобное исключение.

Я довольно новичок в использовании API валидации XML. Может кто-нибудь, пожалуйста, предоставьте мне соответствующее использование, если я делаю это неправильно?

Спасибо и всего наилучшего,
Keya

Ответы [ 5 ]

2 голосов
/ 22 июля 2009

RNG плохо поддерживается в Java API, он никогда не получал тяги. Я не знаю ни одной реализации Java API, которая бы справлялась с этим. Я предлагаю преобразовать схему в XML-схему (используя Trang или аналогичную) и затем проверить ее.

0 голосов
/ 01 апреля 2010

Я успешно проверил документ на основе схемы RelaxNG на основе XML с использованием Java 6, ознакомьтесь:

Как проверить документ XML с использованием схемы RELAX NG и JAXP?

Не знаю, имеет ли это отношение, просто указав: -).

0 голосов
/ 22 июля 2009

Kohsuke Kawaguchi, по-видимому, написал библиотеку адаптеров для jaxp для использования средства проверки relaxng, см. здесь и здесь

0 голосов
/ 22 июля 2009

msv в Java; Я предполагаю, что у него есть понятный API, который вы можете использовать, но я когда-либо использовал его только в командной строке и в скриптах.

0 голосов
/ 22 июля 2009

ГСЧ не поддерживается так широко, как схема XML. Вы всегда должны сначала подумать об использовании XSD.

...