繁体   English   中英

将 xsd 中的枚举重命名为 JAXB

[英]Rename Enum in xsd with JAXB

我想知道是否可能,如果可以,如何在 xsd 文件中重命名枚举。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
    targetNamespace="blabla:xsd:3" 
    elementFormDefault="unqualified" attributeFormDefault="unqualified" version="3.1">
    
    <xsd:simpleType name="IrrelevantEnumerationType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="IRRELEVANT1"/>
            ...
            ...
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="RelevantEnumerationType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="RE_LEVANT"/>
            <xsd:enumeration value="IRRELEVANT2"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

生成的 Java 代码如下所示

@XmlType(name = "RelevantEnumerationType", namespace = "blabla:xsd:3")
@XmlEnum
public enum RelevantEnumerationType {

    RE_LEVANT,
    IRRELEVANT2;

    public String value() {
        return name();
    }

    public static RelevantEnumerationType fromValue(String v) {
        return valueOf(v);
    }

}

jaxb 文件。

<?xml version="1.0"?>
<jxb:bindings version="2.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
              xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc"
              xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <jxb:bindings>
        <jxb:globalBindings>
            <xjc:simple/>
        </jxb:globalBindings>
    </jxb:bindings>
</jxb:bindings>

我已经删除了大多数不相关的信息,只保留了原始结构。

如您所见,我有一个生成为 RE_LEVANT 的枚举,我想在生成 Java 代码时删除下划线。

所以结果应该是相关的。

这会成功的

<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <bindings schemaLocation="schema.xsd">
        <bindings node="//xs:simpleType[@name='RelevantEnumerationType']//*//xs:enumeration[@value='RE_LEVANT']">
            <typesafeEnumMember name="RELEVANT"/>
        </bindings>
    </bindings>
</bindings>

您可以在文档https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing267526FDC708D中阅读有关绑定的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM