当我注释了 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 文件中生成“序列”。
这会迫使客户注意元素的确切顺序,这在某些情况下没有帮助。
有没有办法生成不同于序列的东西?
最佳答案
添加 XmlType
带有空 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>
关于java - 从 JAX-WS 生成 XSD 时如何避免 XSD 序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4407746/