Запрос схемы RelaxNG (синтаксис xml) в Java, предпочтительно с использованием Jing - PullRequest
2 голосов
/ 27 февраля 2012

Я пытаюсь найти способ запроса схемы RNG, избегая повторного изобретения колеса, чтобы ответить на основные вопросы, такие как: какие элементы являются допустимыми дочерними элементами элемента экземпляра XML, что может / должно быть его атрибутами и и так далее.

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

Я действительно хотел бы избежать разбора схемы в моей собственной объектной модели для выполнения этих запросов, и это также кажется излишним, так как я знаю, что Цзин тоже должен где-то это делать. Вопрос в том, как получить от меня требуемую информацию.

Есть ли другая библиотека, которую я мог бы использовать для запроса схемы RNG из кода Java? Обратите внимание, что я не пытаюсь проверить файлы экземпляров с помощью схемы, я пытаюсь запросить саму схему.

1 Ответ

1 голос
/ 09 марта 2012

Ответом на этот вопрос будет использование RNGOM .Это API для построения объектной модели, основанный на Jing.Поскольку Цзин не раскрывает, его внутренняя модель, похоже, является единственным способом избежать полного переосмысления колеса для этого варианта использования.Вам все равно придется написать собственный код, который будет выполнять фактические запросы, просматривая эту модель (как я пытаюсь сделать сейчас).

Обучение использованию RNGOM не является тривиальным, как можно увидеть здесь , но хранилище кода проекта должно упростить задачу (содержит примеры использования).

У меня естьк сожалению, не нашел другой библиотеки, которая позволила бы мне запрашивать схему ГСЧ (или, по крайней мере, облегчить боль при ее выполнении).

Edit 1

Я закончил тем, что создалмоя собственная объектная модель rng и парсер для ее генерации.Он предназначен для решения моего конкретного случая использования и позволяет мне делать запросы, подобные тем, которые я разместил в вопросе.Так как никаких других ответов не было предложено, я приму свои, пока (если вообще) не будет опубликован лучший ответ.

...