2011-02-14 81 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