如何从XML生成JAXB类
我需要从XML中生成不提供架构的类。 我知道这是近乎无用的,但事实是,我们有XML,它的结构,我们应该能够从XML创build一个模型。 在过去我已经手工完成了,但是我正在使用的当前的XML文档相当大,我的时间可能会更好地花费在构build我所需要的东西上。 但是,我猜这已经完成了,而我却找不到它。
任何指针?
有许多工具可用(快速谷歌search应该获取你一些),可以从XML生成XSD,假设几乎所有的stringtypes。 您应该可以使用该XSD运行JAXB来获取类。
这是一个在线工具 ,可以让你做到这一点。
这里是一个屏幕截图:
从您的xml文件中,您可以创build一个XML模式定义(XSD)文件。 一旦你有了XSD,你将能够生成代码,需要它的Java,C#,C ++,或所有上述。
如果您有Visual Studio,则可以使用xsd.exe生成XSD文件。
参考文献:
-
http://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]
-
因此“C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe”example.xml会在与xml文件相同的目录中生成一个example.xsd文件。
XSD到Java:参考:
- http://www.javaworld.com/javaworld/jw-06-2006/jw-0626-jaxb.html
- 命令语法: xjc your.xsd -p com.example.package -d src / generatedOutputDirectory
XSD到C ++:参考文献:
- stackoverflow.com/questions/445905/xml-schema-to-c-classes
- http://www.codesynthesis.com/products/xsd/
XSD到C#:参考:
- quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
- 命令语法: “C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ x64 \ xsd.exe”-c -l:c#-n:SomeNameSpace example.xsd
如果XML是由JAXB创build的,则可以轻松地将其转换回对象。 在oracle上有一个教程 ,说明了一个方法来做到这一点。 Spring框架使用非常方便的JAXB提供了类似的function。