如何自定义JAXB生成的java注释?

时间:2012-06-04 09:47:03

标签: java annotations jaxb

JAXB为每个属性生成@XmlAttribute注释。例如,属性

    <xsd:attribute name="agent_id" use="required" type="xsd:unsignedInt">
    <xsd:annotation><xsd:documentation xml:lang="en">Foreign key reference to Agent.agent_id, Included in composite primary key</xsd:documentation></xsd:annotation>
    </xsd:attribute>

被转换为带注释的java对象属性

@XmlAttribute(name = "agent_id", required = true)
@XmlSchemaType(name = "unsignedInt")
protected long agentId;

但是,如果属性名称中没有下划线,则缺少@XmlAttribute中的name字段(因此## default)。我想自定义JAXB绑定,以及生成没有下划线的名称的注释。有任何建议如何起作用?

谢谢! 约翰内斯

1 个答案:

答案 0 :(得分:1)

您可以编写一个XJC插件来添加此行为:

就JAXB(JSR-222)实现而言,结果XML将是相同的。