【发布时间】:2012-02-04 16:44:50
【问题描述】:
我最近转移到一个项目,我注意到有一个特定的要求将一些数据存储为 XML。
之前的团队使用 Castor 生成的类来编组和解组数据。
我现在有一个新要求,要求我向此 XML 添加一些额外的(但可选的)字段。但是我意识到之前的团队据说根本没有检查过 XSD,我也无法联系到他们。
XSD 无疑是庞大而复杂的,因为它负责生成大约 50 个类。所以再次编写 XSD 会很容易出错,而且我现在可能最终创建与旧 XML 兼容的 XML。
我想到的另一种选择是使用 XML Spy 之类的工具并尝试从 XML 逆向工程 XSD,但这听起来也有点困难,因为我需要对 20 个奇怪的 XML 进行逆向工程以生成 XSD 然后合并所有这些 XSD 合而为一,因为 XML 有几个可选部分。这种方法仍然可能存在错误。
我能想到的最佳选择是将类逆向工程为 XSD - 但是 Castor 据说不支持此功能。所以我没有办法将这些 Castor 生成的类转换回 XSD!虽然 Castor 生成的类确实有一些 Castor 特定的方法,但如果忽略 Castor 特定的方法,它们本质上就是 Pojos!
我们对从 java 类获取或生成 XSD 有什么建议吗?我们还有什么其他建议可以解决我讨论的问题吗?
谢谢。
【问题讨论】:
标签: xsd reverse-engineering castor jaxp