Запрос схемы RelaxNG (синтаксис xml) в java, предпочтительно с использованием Jing

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

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

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

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


person predi    schedule 27.02.2012    source источник


Ответы (1)


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

Изучение того, как использовать RNGOM, не является тривиальным, как можно видеть -start">здесь, но репозиторий кода проекта должен упростить задачу (содержит примеры использования).

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

Изменить 1

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

person predi    schedule 09.03.2012