gpt4 book ai didi

java - JAXB:使用包含较少属性的 XSD 从 Java 生成 XML

转载 作者:行者123 更新时间:2023-12-01 04:17:31 26 4
gpt4 key购买 nike

我正在寻找一种方法来使用 Java 类的通用 XML 生成器,并且能够使用给定的先前版本的 Java 类生成 XML(如果可能的话,使用 XSD)。

示例:

今天,我将使用属性 Property1Property2 创建 Object1,我将使用 JAXB 生成它的 XSD 并将其命名为 Today.xsd。明天我想将 Property3 添加到 Object1,然后创建一个新的 XSD 文件并将其命名为 Today.xsd。此后,我希望能够使用具有 2 个属性或 3 个属性的两个版本的 Object1 生成包含数据的 XML,如果可能的话,可以使用生成的 XSD。

我的真实案例使用了大量具有大量属性的类,并且版本控制的数量可能会很大。我想存储每个版本的 XSD,并通过动态指定包含版本号的 XSD 名称来从 Java 类生成 XML。

是否可以实现我的上述要求,或者你们有类似的解决方案来满足我的需求吗?

最佳答案

JAXB 是一个相当僵化的框架,不支持您想要做的事情。

当您需要支持同一“对象”的不同版本时,有几种方法

  • 您可以手动解析 xml(手动我的意思是使用 XPath),这将为您提供很大的灵 active
  • 另一种验证更严格但需要更多努力的方法是拥有多个需要手动生成的 XSD,然后使用 XSLT 可以转换不同的 XML 消息,这些消息通过 XSD 进行验证,到“标准”XML,并且此 XML 是您使用 JAXB 映射的 XML。此模式有一些变体,您可以将不同的版本汇集到应用程序期望的版本中。

关于java - JAXB:使用包含较少属性的 XSD 从 Java 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19281120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com