zoukankan      html  css  js  c++  java
  • JAXB

    If you want a data type that enumerates discrete values you should use a restriction of the schema type xsd:string, enumerating all the values as you would in a Java enum type.

    <xsd:simpleType name="IXLType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="eStwA"/>
            <xsd:enumeration value="eStwS"/>
            <xsd:enumeration value="SpDrL"/>
            <xsd:enumeration value="SpDrS"/>
            <xsd:enumeration value="VGS80"/>
        </xsd:restriction>
    </xsd:simpleType>

    The JAXB compiler generates a Java enum, but the names of the enum constants are transformed so that they conform to the style commonly accepted in the Java community. Below is the (somewhat shortened) Java code.

    public enum IXLType {
    
        E_STW_A("eStwA"),
        E_STW_S("eStwS"),
        SP_DR_L("SpDrL"),
        SP_DR_S("SpDrS"),
        VGS_80("VGS80");
    
        private final String value;
    
        IXLType(String v) {
            value = v;
        }
    
        public String value() {
            return value;
        }
    }

    If you want to use the original identifiers as enum constant names, you may resort to an explicit specification of the binding, for each enum constant name, as shown below.

    <xsd:simpleType name="IXLType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="eStwA">
                <xsd:annotation>
                    <xsd:appinfo>
                        <jxb:typesafeEnumMember name="eStwA"/>
                    </xsd:appinfo>
                </xsd:annotation>
            </xsd:enumeration>
            ...
        </xsd:restriction>
    </xsd:simpleType>

    The generated enum class will now contain enum constant names that exactly match the original strings.

    public enum IXLType {
     
        eStwA,
        eStwS,
        SpDrL,
        SpDrS,
        VGS80;
    
        public String value() {
            return name();
        }
        ...
    }

    There is no need now to store the XML representations along with each enum constant, and method value may now simply call name() to obtain the stringified value.

  • 相关阅读:
    Git教程
    test
    Android中的权限机制
    Android中<uses-library>的理解
    权限机制
    总是听到有人说AndroidX,到底什么是AndroidX?Android和AndroidX的区别
    VMware Tools按钮变灰色,无法安装的解决方法
    VMware Tools (ubuntu系统)安装详细过程与使用
    Android studio常用快捷键
    CVE漏洞分析
  • 原文地址:https://www.cnblogs.com/huey/p/5505117.html
Copyright © 2011-2022 走看看