如何使用EclipseXSD编辑器创建枚举

如何使用EclipseXSD编辑器创建枚举,xsd,wsimport,Xsd,Wsimport,我正在为将在wsdl中使用的常见web服务类型创建一个XSD。我需要的常见类型之一是枚举 我的问题是执行wsimport时生成的工件是类而不是枚举。 我正在使用EclipseIndigo的XSD和WSDL编辑器。这是我在设计模式下创建枚举的步骤: 创建新的复杂类型(ResponseCodeType) 在ResponseCodeType中添加新的字符串元素(代码) 在代码的constraints属性中,我添加了以下约束值:SUCCESS、WARNING、ERROR、FATAL 我做错了什么 XSD

我正在为将在wsdl中使用的常见web服务类型创建一个XSD。我需要的常见类型之一是枚举

我的问题是执行wsimport时生成的工件是类而不是枚举。

我正在使用EclipseIndigo的XSD和WSDL编辑器。这是我在设计模式下创建枚举的步骤:

  • 创建新的复杂类型(ResponseCodeType)
  • 在ResponseCodeType中添加新的字符串元素(代码)
  • 在代码的constraints属性中,我添加了以下约束值:SUCCESS、WARNING、ERROR、FATAL
  • 我做错了什么

    XSD源
    我想出来了。当我尝试设计枚举时,我创建了一个复杂类型,其中一个元素具有我需要的约束(SUCCESS、INFO、WARN等)

    我所做的是创建一个简单的类型,其中包含一个具有约束的字符串元素(ResponseCode)。然后我用ResponseCode元素创建了一个复杂类型(ResponseCodeType)

    当我执行wsimport时,它以枚举的形式生成ResponseCode,并使用ResponseCode属性生成ResponseCodeType类

    如果有人有更好的方法,请评论或提供更好的答案

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