gpt4 book ai didi

java - 如何使用 XJC 影响组声明的类生成

转载 作者:行者123 更新时间:2023-11-30 08:15:59 25 4
gpt4 key购买 nike

我们遇到以下问题。我们尝试从包含组声明和对这些组声明的多个组引用的 XSD 文件生成 Java 代码。这是一个简化版本:

<xs:group name="Information">
<xs:sequence>
<xs:element name="Name">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="updated" type="xs:boolean"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>

<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:group ref="Information" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:group ref="Information"/>
</xs:sequence>
</xs:complexType>
</xs:element>

要点是:

  • 每个元素都在自己的文件中定义
  • 同一组信息被引用两次
  • 该组没有单独的类型
  • 组内的 Name 元素也没有单独的类型
  • 我们无法更改 XSD 文件

我们现在面临的问题是 xjc 根据我们构建的机器非确定性生成,有时是 Address.Name 类型,有时是 类型Customer.Name,因为 Name 元素是一个复杂类型并且需要一个类型。

有什么方法可以告诉 xjc 始终生成相同的类型吗?

最佳答案

  • 使用 jaxb:class 自定义匿名复杂类型绑定(bind)并指定类名。
  • 使用<jaxb:globalBindings localScoping="toplevel"/>而是在顶层生成内部类。

这两者的结合会给你一个可预测的类别。

关于java - 如何使用 XJC 影响组声明的类生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29668858/

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