2011-02-11 56 views
3

从XSD导入的Enums中的注释是否有一种方法可以使用wsimport从XSD向Java代码发送注释?例如,我有一个XSD文件wsimport

<!-- 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枚举类看起来是这样的:

@XmlType(name = "userLevel") 
@XmlEnum 
public enum UserLevel { 
    /** 
    * basic user 
    */ 
    BASE, 
    /** 
    * team leader 
    */ 
    TL, 
    /** 
    * section leader 
    */ 
    SL; 
} 

合同这甚至可能第一(例如,从生成的Java代码XSD)?

回答

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:文档没有空白忽视所以在评论中有很多空白。

+1

您是否尝试在``标记中添加属性`xml:space =“default”`?此外,从这个问题的信息可能会有所帮助:http://stackoverflow.com/questions/1650249/how-to-make-generated-classes-contain-javadoc-from-xml-schema-documentation – 2011-03-18 07:46:12