Подтвердить что ты не робот

Как создавать классы JAXB только из XML

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

Любые указатели?

4b9b3361

Ответ 1

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

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

И вот экранная крышка: enter image description here

Ответ 2

Из вашего XML файла вы можете создать файл XML Schema Definition (XSD). Когда у вас есть XSD, вы сможете сгенерировать код, нужно ли это для java, С#, С++ или всего вышеперечисленного.

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

Ссылки:

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

  • msdn.microsoft.com/en-us/library/x6c1kb0s (v = vs .71).aspx

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

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

XSD для Java: Справка:

XSD на С++: Ссылки:

  • stackoverflow.com/questions/445905/xml-schema-to-c-classes
  • www.codesynthesis.com/products/xsd/

XSD до С#: Справка:

  • quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
  • Синтаксис команды: "C:\Program Files\Microsoft SDK\Windows\v6.0A\Bin\x64\xsd.exe "-c -l: С# -n: SomeNameSpace example.xsd

Ответ 3

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