2011-02-14 76 views
46

我需要從xml生成不提供模式的類。我明白這幾乎是無用的,但事實是我們有xml,它是結構化的,我們應該能夠從xml創建一個模型。在過去,我已經手工完成了這項工作,但目前我正在使用的xml文檔非常龐大,我的時間可能會更好地用於構建我需要的東西。但是,我猜測它已經完成了,我無法找到它。如何從XML生成JAXB類

任何指針?

回答

55

有許多工具可用(快速谷歌搜索應該取你一些),可以從XML生成XSD,假定幾乎所有的字符串類型。您應該可以使用該XSD運行JAXB以獲取類。

這是一個online tool,讓你這樣做。

這裏是一個屏幕帽: enter image description here

+1

也不錯ŧ ool是http://www.freeformatter.com/xsd-generator.html#ad-output – Yauhen 2014-07-30 12:27:19

1

如果XML是由JAXB創建的,它可以很容易地轉換回對象。在oracle上有一個tutorial,它說明了一種方法。 Spring框架使用非常方便的JAXB提供了類似的功能。

8

從您的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/library/x6c1kb0s(v=vs 0.71).ASPX

  • 命令語法:XSD file.xml [/ outputdir:目錄]

  • 所以「C:\鐠ogram Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe「 example.xml在與 xml文件相同的目錄中生成example.xsd文件。

XSD到Java: 參考:

XSD到C++: 參考文獻:

  • stackoverflow.com/questions/445905/xml-schema-to-c-classes
  • www.codesynthesis。COM /產品/ XSD/

XSD到C#: 參考:

  • quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
  • 命令語法: 「C:\ Program Files文件\微軟的SDK \的Windows \ v6.0A \ BIN \ 64 \ XSD.EXE」 -c -l:C#-n:SomeNameSpace example.xsd