Как генерировать классы JAXB только из XML - PullRequest
56 голосов
/ 14 февраля 2011

Мне нужно сгенерировать классы из xml, которые не предоставляют схему.Я понимаю, что это почти бесполезно, но дело в том, что у нас есть XML, он структурирован, и мы должны быть в состоянии создать модель из XML.Раньше я делал это вручную, но текущие xml-документы, с которыми я работаю, довольно большие, и мое время, вероятно, было бы лучше потратить на то, чтобы создать то, что мне нужно.Но, полагаю, это уже сделано, и я просто не могу его найти.

Есть какие-нибудь указатели?

Ответы [ 3 ]

63 голосов
/ 14 февраля 2011

Доступно множество инструментов (быстрый поиск в Google должен вас кое-что найти), которые могут генерировать XSD из XML, предполагая тип строки почти для всего Вы должны иметь возможность использовать этот XSD для запуска JAXB для получения классов.

Вот онлайн-инструмент , который позволяет вам сделать это.

А вот и крышка экрана: enter image description here

11 голосов
/ 16 мая 2012

Из вашего xml-файла вы можете создать файл определения схемы XML (XSD). Когда у вас есть XSD, вы сможете сгенерировать код, будь то для Java, C #, C ++ или для всего вышеперечисленного.

Если у вас есть Visual Studio, вы можете использовать xsd.exe для создания файла XSD.

Рекомендации:

  • www.xmlforasp.net / CodeBank / System_Xml_Schema / BuildSchema / BuildXMLSchema.aspx

  • msdn.microsoft.com / EN-US / библиотека / x6c1kb0s (v = vs.71) .aspx

  • Синтаксис команды: xsd file.xml [/ outputdir: directory]

  • so "C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe" example.xml дает файл example.xsd в том же каталоге, что и XML-файл.

XSD в Java: Справка:

XSD в C ++: Ссылки:

  • / stackoverflow.com вопросы / 445905 / XML-схема-в-к-классы
  • www.codesynthesis.com / продукция / XSD /

XSD в C #: Справка:

  • quickstart.developerfusion.co.uk / Быстрый старт / HOWTO / DOC / xmlserialization / XSDToCls.aspx
  • Синтаксис команды: "C: \ Program Files \ Microsoft SDK \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe "-c -l: c # -n: SomeNameSpace example.xsd
1 голос
/ 14 февраля 2011

Если XML был создан JAXB, его можно легко преобразовать обратно в объекты. На oracle есть учебник , который иллюстрирует один из способов сделать это. Spring Framework предлагает аналогичные функции с использованием JAXB, которые очень удобны.

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