Есть ли инструмент для генерации JSON-схемы из XML-схемы через Java? - PullRequest
19 голосов
/ 13 октября 2011

Кто-нибудь знает инструмент или подход, из которого мы можем сгенерировать схему JSON из схемы XML или схему XML из схемы JSON с помощью Java?

Ответы [ 5 ]

17 голосов
/ 30 октября 2011

Это не очень элегантно, но Джексон может генерировать JSON-схему из класса Java . Таким образом, вы можете взять свою XML-схему, сгенерировать из нее java-классы с аннотациями jaxb , а затем сгенерировать схему json из этого, поскольку Джексон поддерживает аннотации jaxb .

5 голосов
/ 04 ноября 2011

Если вы можете получить POJO, соответствующие Схеме (например, с использованием xjc), вы можете использовать Джексона для создания Схемы JSON (см. ObjectMapper.generateSchema (...) ).

4 голосов
/ 02 ноября 2011

Я ожидаю, что вы сможете написать сценарий XSLT, который генерирует структуры JSON из схемы XML довольно легко. Это работает, потому что XSLT идеально подходит для чтения и преобразования XML, а схема XML - это просто XML.

Идти другим путем будет немного сложнее. Вам нужно что-то, что может прочитать схему JSON и выплюнуть XML. Для этого вам нужен анализатор и, скорее всего, что-то, что создает AST-анализ. С этим и обходом дерева вы, вероятно, сможете сгенерировать схему XML довольно легко.

ANTLR позволит вам довольно легко определять грамматики, создавать синтаксический анализатор и AST. У него есть своего рода генератор «Структурированного текста», который может работать для обхода AST.

Наш инструментарий реинжиниринга программного обеспечения DMS похож на ANTLR, но с большим количеством оборудования. С помощью DMS вы можете определить синтаксис JSON, построить AST, а затем записать транформированные исходники в источник, чтобы сопоставить их с XML, представляющим вашу схему.

2 голосов
/ 03 ноября 2011

Преобразование XML в JSON довольно простое и может быть выполнено различными способами:

http://answers.oreilly.com/topic/278-how-to-convert-xml-to-json-in-java
http://www.json.org/javadoc/org/json/XML.html#toJSONObject%28java.lang.String%29

Для преобразования из XML в JSON может показаться, что это кажетсябыть очень простым:

http://www.bramstein.com/projects/xsltjson/
http://code.google.com/p/xml2json-xslt/
http://json -lib.sourceforge.net / index.html

Существует также библиотека http://x -stream.github.io / , которая позволяет выполнять преобразование в обе стороны (также в POJO).Простой пример использования вы можете найти здесь: Конвертировать XML в формат JSON

/ edit: ups, похоже, я не правильно понял вопрос: P

2 голосов
/ 02 ноября 2011

Например, CXF может обслуживать запросы в Json или XML, поэтому у него должен быть способ конвертировать их.

...