2012-06-04 63 views
1

JAXB爲每個屬性生成@XmlAttribute註釋。例如,屬性如何自定義由JAXB生成的java註釋?

<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名稱字段缺失(因此##默認)。我想定製JAXB綁定,這樣也可以生成沒有下劃線的名稱的註釋。任何建議如何可以工作?

謝謝! 約翰內斯

+0

請看[這個問題](http://stackoverflow.com/questions/8702559/adding-an-annotation-to-a-jaxb-binding-class-from-a-schema) – mthmulders

回答

1

你可以寫一個XJC插件添加這種行爲:

至於一個JAXB(JSR-222)的實施而言,結果XML將是相同的。

+0

所以我不會走多遠使用自定義綁定[在此處解釋](http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXBUsing4.html)?然後我會堅持我的python後期處理腳本。謝謝您的回答! – Johannes