在对XML模式使用jaxb时,我正在使用外部绑定文件。
我主要使用绑定文件从XML模式基元映射到我自己的类型。
这是绑定文件的片段
<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ai="http://java.sun.com/xml/ns/jaxb/xjc" extensionBindingPrefixes="ai">
<jxb:bindings schemaLocation="xsdurl" node="xs:schema">
<jxb:globalBindings>
<jxb:javaType name="com.companyname.StringType" xmlType="xs:string"
parseMethod="parse" printMethod="print" hasNsContext="true">
</jxb:javaType>
</jxb:globalBindings>
</jxb:bindings>
</jxb:bindings>
因此,只要遇到xs:string
,就会调用com.companyname.StringType
方法print
/ parse
进行编组/解组等。
现在,如果JAXB遇到xs:enumeration
,它将生成一个java enum
。
例如:
<xs:simpleType name="Address">
<xs:restriction base="xs:string">
<xs:enumeration value="ADDR"/>
<xs:enumeration value="PBOX"/>
</xs:restriction>
</xs:simpleType>
public enum Address
{
ADDR,
PBOX,
public String value() {
return name();
}
public static Address fromValue(String v) {
return valueOf(v);
}
}
有没有人知道是否可以自定义enum
的创建,就像它是原始的一样?我希望能够:
为jaxb生成的每个枚举添加标准成员变量/其他方法。
指定用于创建enum
的静态方法。