我正在为将在WSDL中使用的常见Web服务类型创建XSD。我需要的常见类型之一是枚举。
我的问题是当我执行wsimport时,生成的工件是一个类而不是枚举。
我正在使用Eclipse Indigo的XSD和WSDL编辑器。这就是我在设计模式下创建枚举的方法:
我做错了什么?
<complexType name="ResponseCodeType">
<sequence>
<element name="code">
<simpleType>
<restriction base="string">
<enumeration value="SUCCESS"></enumeration>
<enumeration value="WARNING"></enumeration>
<enumeration value="ERROR"></enumeration>
<enumeration value="FATAL"></enumeration>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ResponseCodeType", propOrder = {
"code"
})
public class ResponseCodeType {
@XmlElement(required = true)
protected String code;
/**
* Gets the value of the code property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getCode() {
return code;
}
/**
* Sets the value of the code property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setCode(String value) {
this.code = value;
}
}
答案 0 :(得分:2)
我明白了。当我尝试设计我的枚举时,我创建了一个复杂类型,其元素具有我需要的约束(SUCCESS,INFO,WARN等)。
我所做的是创建一个带有约束(ResponseCode)的字符串元素的简单类型。然后我创建了一个带有ResponseCode元素的复杂类型(ResponseCodeType)。
当我执行wsimport时,它生成了ResponseCode作为枚举和ResponseCodeType类,并带有ResponseCode属性。
如果有人有更好的approch请评论或提供更好的答案。