Castor生成的类(XML编组)-XSD不可用

Castor生成的类(XML编组)-XSD不可用,xsd,reverse-engineering,castor,jaxp,Xsd,Reverse Engineering,Castor,Jaxp,我最近转移到一个项目中,我注意到有一个特定的需求,需要将一些数据存储为XML 先前的团队使用Castor生成的类来整理和解压数据 现在我有一个新的要求,要求我向这个XML中添加一些额外的(但可选的)字段。然而,我意识到之前的团队根本没有检查过XSD,我也没有办法联系他们 XSD肯定是庞大而复杂的,因为它负责生成大约50个类。因此,再次编写XSD很容易出错,而且我可能最终创建与旧XML兼容的XML 我想到的另一种选择是使用XMLSpy之类的工具,并尝试从XML对XSD进行反向工程,但是这听起来也有

我最近转移到一个项目中,我注意到有一个特定的需求,需要将一些数据存储为XML

先前的团队使用Castor生成的类来整理和解压数据

现在我有一个新的要求,要求我向这个XML中添加一些额外的(但可选的)字段。然而,我意识到之前的团队根本没有检查过XSD,我也没有办法联系他们

XSD肯定是庞大而复杂的,因为它负责生成大约50个类。因此,再次编写XSD很容易出错,而且我可能最终创建与旧XML兼容的XML

我想到的另一种选择是使用XMLSpy之类的工具,并尝试从XML对XSD进行反向工程,但是这听起来也有点困难,因为我需要对20多个XML进行反向工程来生成XSD,然后将所有这些XSD合并为一个,因为XML有几个可选部分。这种方法仍有可能出错

我能想到的最好的选择是将类反向工程到XSD,但是Castor应该不支持这个特性。所以我没有办法将这些Castor生成的类转换回XSD!虽然Castor生成的类确实有一些Castor特定的方法,但如果忽略Castor特定的方法,本质上它们就是POJO

对于从java类获取或生成XSD,我们有什么建议吗?对于解决我讨论的问题,我们还有其他建议吗


谢谢。

只是一个更新,虽然我还没有达到我所期望的100%,但我能够使用JAXB的schemagen工具成功地对XSD进行反向工程

请注意,castor会为每个类生成一个XXXDescriptor,因为它不会映射到实际的XSD,所以不会将XXXDescriptor类作为输入传递给schemagen工具

schemagen工具与getter方法一起工作,并忽略Castor的validate、marshall和unmarshall等方法

因此,与我第一次发布问题时的情况相比,现在的情况看起来很有希望

谢谢