【发布时间】:2011-06-27 02:21:24
【问题描述】:
我需要从不提供架构的 xml 生成类。我知道这几乎没用,但事实是我们有 xml,它是结构化的,我们应该能够从 xml 创建模型。过去我是手动完成的,但是我正在使用的当前 xml 文档非常大,我的时间可能会更好地用于构建可以满足我需要的东西。但是,我猜它已经完成了,我只是找不到它。
任何指针?
【问题讨论】:
我需要从不提供架构的 xml 生成类。我知道这几乎没用,但事实是我们有 xml,它是结构化的,我们应该能够从 xml 创建模型。过去我是手动完成的,但是我正在使用的当前 xml 文档非常大,我的时间可能会更好地用于构建可以满足我需要的东西。但是,我猜它已经完成了,我只是找不到它。
任何指针?
【问题讨论】:
有许多可用的工具(快速的 google 搜索应该可以找到一些)可以从 XML 生成 XSD,假设几乎所有内容都是字符串类型。您应该能够使用该 XSD 运行 JAXB 来获取类。
这里有一个online tool,可以让你做到这一点。
这是一个屏幕截图:
【讨论】:
如果 XML 是由 JAXB 创建的,则可以轻松地将其转换回对象。 oracle 上有一个tutorial,它说明了执行此操作的一种方法。 Spring 框架使用非常方便的 JAXB 提供了类似的功能。
【讨论】:
从您的 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.71).aspx
命令语法:xsd file.xml [/outputdir:directory]
所以 “C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\xsd.exe” example.xml 在与 xml 文件。
XSD 到 Java: 参考:
XSD 到 C++: 参考资料:
XSD 到 C#: 参考:
【讨论】: