gpt4 book ai didi

JAXB schemagen 如何为两个字段生成选择?

转载 作者:行者123 更新时间:2023-12-01 04:44:32 27 4
gpt4 key购买 nike

我有java类:

public class ActivityAddress {

@XmlElement(name = "Elem1", required = false)
private String elem1;

@XmlElement(name = "Elem2", required = false)
private String elem2;

@XmlElement(name = "PostIndex", required = true)
private String postIndex;
}

我想获得这样的架构:

<xs:complexType name="ActivityAddress">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="Elem1" type="xs:string"/>
<xs:element name="Elem2" type="xs:string"/>
</xs:choice>
<xs:element name="PostIndex" type="xs:string"/>
</xs:sequence>



所以必须选择两个字段“Elem1”和“Elem2”。

像这样的决定:
@XmlElements({
@XmlElement(name = "Elem1", type = String.class, required = false),
@XmlElement(name = "Elem2", type = String.class, required = false)
})
private String elem;

不适合我,因为在 java 类中我需要有两个字段。

Ноw 我能做到吗?任何人都可以帮忙吗?

最佳答案

生成 XML 模式

对于以下 Java 类:

public class ActivityAddress {

@XmlElement(name = "Elem1", required = false)
private String elem1;

@XmlElement(name = "Elem2", required = false)
private String elem2;

@XmlElement(name = "PostIndex", required = true)
private String postIndex;
}

您将获得如下所示的 XML 模式,没有办法按照您希望的方式生成选择。

<xs:sequence>
<xs:element name="Elem1" type="xs:string" mincOccurs="0"/>
<xs:element name="Elem2" type="xs:string" minOccurs="0"/>
<xs:element name="PostIndex" type="xs:string"/>
</xs:sequence>

指向手工制作的 XML 模式

但是,您可以生成一个 XML 模式,然后自己修改它,然后告诉 JAXB 使用它。这是通过包级别 @XmlSchema 完成的注解。

包信息.java

@XmlSchema(location="http://www.example.com/foo/mySchema.xsd")
package com.example.foo;

关于JAXB schemagen 如何为两个字段生成选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26680029/

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