有没有办法使用wsimport从XSD获取注释到Java代码?例如,我有一个XSD文件
<!-- Enumerace /model/user/UserLevel.java -->
<xs:simpleType name="userLevel">
<xs:restriction base="xs:string">
<!-- basic user -->
<xs:enumeration value="BASE"/>
<!-- team leader -->
<xs:enumeration value="TL"/>
<!-- section leader -->
<xs:enumeration value="SL"/>
</xs:restriction>
</xs:simpleType>
我希望我生成的java enum类看起来像这样:
@XmlType(name = "userLevel")
@XmlEnum
public enum UserLevel {
/**
* basic user
*/
BASE,
/**
* team leader
*/
TL,
/**
* section leader
*/
SL;
}
首先是合同中是否可能(例如从XSD生成的java代码)?
答案 0 :(得分:1)
好的,我在XSD中找到了一个解决方案:
<xs:simpleType name="MyEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="STANDARD">
<xs:annotation>
<xs:documentation>
This is a comment.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
生成一个Java枚举,例如:
@XmlType(name = "MyEnum")
@XmlEnum
public enum MyEnum {
/**
*
* This is a comment.
*
*
*/
STANDARD,
public String value() {
return name();
}
public static MyEnum fromValue(String v) {
return valueOf(v);
}
}
唯一的问题是xs:documentation不会忽略空格,因此注释中有很多空格。