我需要使用 XStream 将受 XSD 约束的 XML 映射到 Java 对象。XSD 有 4 个复杂类型元素,它们是“选择”元素,即这 4 个元素中的任何一个都可以出现在 XML 中的根标记下。
我一直在研究 XStream,但在我看来,要映射这样的 XML,我需要 8 个类。如何?这里是...
例如,我的根元素是 VEHICLE,XML 中的每个复杂类型都是 a) CAR b) BIKE c) TRUCK d) TRACTOR。它们中的每一个都有不同的属性。要将其映射到 Xstream 并使 XML(由 XStream 生成)与 XSD 兼容,我们需要 8 个类,即。VehicleCarWrapper ->(有)汽车,VehicleTruckWrapper ->(有)卡车,VehicleBikeWrapper ->(有)自行车和VehicleTractorWrapper ->(有)拖拉机。
除了破旧的解决方案之外,有人有什么建议吗?Xstream 中有没有办法映射 XML 根的这种“选择”元素?因此,所有 4 个(即卡车、汽车、自行车、拖拉机)都可以作为关联实体进入 Wrapper,但 XStream 始终忽略除一个关联之外的所有关联,因此创建了一个 XSD 兼容的 XML。
希望我的问题很清楚。
非常感谢!