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.

  • 相关阅读:
    ios更改UITabBarController背景以及选中背景图片的方法
    ios7 sdk 新特性
    AES加密算法原理
    iOS 获取手机的型号,系统版本,软件名称,软件版本
    iOS8中的UIActionSheet添加UIDatePicker后,UIDatePicker不显示问题
    iOS 8 定位失败问题
    利用CMake和OpenCV源代码生成Visual Studio工程
    dm8127前段采集和抓拍
    c++课程设计
    github安卓游戏
  • 原文地址:https://www.cnblogs.com/huey/p/5505117.html
Copyright © 2011-2022 走看看