gpt4 book ai didi

wsdl - 使用 JAX-WS 的 XML 序列

转载 作者:行者123 更新时间:2023-12-05 01:23:29 25 4
gpt4 key购买 nike

有没有办法让 JAX-WS 生成的默认 WSDL(通过 ?wsdl 返回)使用 XML choice而不是 anysequence ?

最佳答案

我假设您的意思是 <types/> 中的 XML 模式。 WSDL 的一部分。此模式的生成不受 JAX-WS 管理,而是由 JAXB 规范管理。这是 JAX-WS 中数据绑定(bind)的规范。

但要真正回答您的问题:是的,您可以使用适当的 @XMLElements表示您的数据类型的类中的注释。例如,采用这样的 Web 服务接口(interface):

@WebService
public interface Chooser {

String chooseOne(Choice myChoice);

}

那么你的 XSD 的内容取决于 Choice 的结构。类(class)。您可以强制生成 choice通过类似这样的元素:

public class Choice {

@XmlElements(value = { @XmlElement(type = First.class),
@XmlElement(type = Second.class) })
private Object myChoice;

}

类(class) FirstSecond是选择中可能的元素。从此代码生成的架构如下所示:
<xs:complexType name="choice">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="myChoice" type="tns:first"></xs:element>
<xs:element name="myChoice" type="tns:second"></xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>

这仍然包含 choicesequence , 但由于 sequence 中只有一个元素,这并不重要。

关于wsdl - 使用 JAX-WS 的 XML 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14642405/

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