gpt4 book ai didi

java - 如何使用 JAXB 和 XJC 编写我的 XSD 以匹配所需的 XML 和 Java 格式

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

<分区>

Possible Duplicate:
How generate XMLElementWrapper annotation with xjc and customized binding

我希望能够使用 JAXB 处理这种格式的 XML ...

<configuration>
<!-- more content here -->
<things>
<thing>
<name>xx1</name>
<value>yy1</value>
</thing>
<thing>
<name>xx2</name>
<value>yy2</value>
</thing>
</things>
<!-- more content here -->
</configuration>

我想将上述 XML 编码到这些 Java 类中(为简单起见,我保留了诸如 publicprotected 以及 getters/setters 等修饰符) :

class Configuration {
List<Thing> things;
}

class Thing {
String name;
String value;
}

我当前 XSD 结构的相关部分大致如下所示:

<complexType name="Configuration">
<sequence>
<!-- ... -->
<element name="things" type="ns:Things" minOccurs="0" maxOccurs="unbounded"/>
<!-- ... -->
</sequence>
</complexType>

<complexType name="Things">
<sequence>
<element name="thing" type="ns:Thing" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>

不幸的是,XJC 还为 Things 生成了一个类,即使在处理的 Java 部分确实不需要它。所以我的输出是这样的:

class Configuration {
Things things;
}

class Things {
List<Thing> thing;
}

class Thing {
String name;
String value;
}

有什么方法可以告诉 XJC 避免生成这个不必要的类吗?或者有什么办法可以重新措辞我的 XSD 以避免那一代?这两种选择都适合我。

事实上,我想我需要生成 @XmlElementWrapper 注释,如下所示:

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