加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

wsdl – 使用JAX-WS的XML序列

发布时间:2020-12-16 22:50:36 所属栏目:百科 来源:网络整理
导读:是否有任何方法可以使JAX-WS生成默认WSDL(通过?wsdl返回)以使用 XML选择而不是任何和序列? 解决方法 我假设您指的是 types /中的XML架构. WSDL的一部分.此模式的生成不受JAX-WS的约束,而是受JAXB规范的约束.这是JAX-WS中数据绑定的规范. 但要实际回答您的
是否有任何方法可以使JAX-WS生成默认WSDL(通过?wsdl返回)以使用 XML选择而不是任何和序列?

解决方法

我假设您指的是< types />中的XML架构. WSDL的一部分.此模式的生成不受JAX-WS的约束,而是受JAXB规范的约束.这是JAX-WS中数据绑定的规范.

但要实际回答您的问题:是的,您可以使用代表您的数据类型的类中的相应@XMLElements批注来执行此操作.例如,采用如下的Web服务接口:

@WebService
public interface Chooser {

    String chooSEOne(Choice myChoice);

}

然后,XSD的内容取决于Choice类的结构.您可以通过以下方式强制生成选择元素:

public class Choice {

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

}

第一和第二类是选择中可能的元素.从此代码生成的模式如下所示:

<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>

这仍然包含序列中的选择,但由于序列中只有一个元素,这并不重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读