2009-01-22 150 views
10

我与JAXB @XmlRootElement注释JAXB文档注释

@XmlRootElement(name="ClientData") 
public class ClientData { 

/** 
* The first address field of the person 
*/ 
private String address1 = null; 
} 

当我生成XSD架构

<xs:complexType name="clientData"> 
    <xs:sequence> 
    <xs:element minOccurs="0" name="address1" type="xs:string"/> 

产生这个XML片段以下Java类可以使用JAXB注释,以便地址1字段上的文档详细信息将作为xs:annotation/xs:documentention元素包含在我的最终模式中?

<xs:complexType name="clientData"> 
    <xs:sequence> 
    <xs:element minOccurs="0" name="address1" type="xs:string"> 
    <xs:annotation> 
     <xs:documentation>The first address field of the person</xs:documentation> 
    </xs:annotation> 
    </xs:element> 

回答

4

简单的回答:不,内建JAXB不可能。

2

我不知道是否有可能,因为我从来没有用过它。但据我所知,API不支持文档元素。但是,您可以使用@XMLElement注释为您的成员提供更具描述性的名称。

//Example: Code fragment 
public class USPrice { 
    @XmlElement(name="itemprice") 
    public java.math.BigDecimal price; 
} 

<!-- Example: Local XML Schema element --> 
<xs:complexType name="USPrice"/> 
    <xs:sequence> 
    <xs:element name="itemprice" type="xs:decimal" minOccurs="0"/> 
    </sequence> 
</xs:complexType> 
+0

是的 - 我想这是一个简单的解决方法,但我可以想象,随着更多的特定字段添加到类中,字段名称长度变得更长。我想将字段的业务用户定义添加为文档标记,并将java字段命名留给开发人员。谢谢。 – emeraldjava 2009-01-26 18:25:45