场景
我们有一个java应用程序,它承载了解析各种版本的ddex规范的逻辑。对于每一个新的ddex版本,我们目前都维护一个相应的映射器来将xml映射到我们的应用程序类。这个过程是这样的:
DDEX -> JAXB -> JAXB自动Gen.Java类-> Mapper代码->应用程序类
从长远来看,这个设计是不可维护的。它导致了对每个ddex发行版的大量代码重复和重复测试工作,其中包含了与以前版本相同的许多字段。
我想知道怎样才能更好地设计这个制度。如果需要,我们也可以切换到其他xml解析器。
注意:我看到了这个回答,但也想知道任何特定于ddex的想法。另外,答案已经有十多年了,所以想看看现在是否还有其他可用的东西。
发布于 2019-11-26 18:11:53
在我看来,当您必须处理频繁的模式更改时,JAXB (以及数据映射技术)是错误的选择。我见过一些项目在这件事上严重失败。
与其将特定的模式结构映射到特定的Java类,不如使用一个通用的树模型,如DOM、JDOM2或XOM (DOM是三个中最古老、最流行、最糟糕的--我将使用JDOM2)。
使用通用树模型,您可以设计您的应用程序以适应传入XML中的大多数更改。
或者,使用面向XML的编程语言,如XSLT或XQuery。
我对ddex并不熟悉,所以这个答案并不是特定于那个环境的。
https://stackoverflow.com/questions/59050922
复制相似问题