从 JAX-WS 生成 XSD 时如何避免 XSD 序列?

2024-01-03

当我注释了 java 类时

@javax.xml.bind.annotation.XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class UserdataType {

    String username;
    String street;
    String address;

它将生成为

<xs:complexType name="userdataType">
<xs:sequence>
<xs:element name="username" type="xs:string" minOccurs="0"/>
<xs:element name="street" type="xs:string" minOccurs="0"/>
<xs:element name="address" type="xs:string" minOccurs="0"/>

因此,默认情况下 JAX-WS 始终在 XSD 文件中生成“序列”。

这迫使客户注意元素的确切顺序,这在某些情况下没有帮助。

有没有办法生成与序列不同的东西?


Add an XmlType http://download.oracle.com/javaee/5/api/javax/xml/bind/annotation/XmlType.html注释为空propOrder, 像这样:

 @XmlType(propOrder={})

然后它会生成一个xs:all(无序)而不是序列。

<xs:complexType name="userdataType">
  <xs:all>
    <xs:element name="username" type="xs:string" minOccurs="0"/>
    <xs:element name="street" type="xs:string" minOccurs="0"/>
    <xs:element name="address" type="xs:string" minOccurs="0"/>
  </xs:all>
</xs:complexType>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 JAX-WS 生成 XSD 时如何避免 XSD 序列? 的相关文章

随机推荐