2010-09-16 53 views
5

我有一個模式,由幾個不同的應用程序讀取表單生成;其中一個使用JAXB/XJC來編譯它的類結構。該模式包含字段的友好名稱APPINFO信息,例如:JAXB - XJC可以將appinfo編譯到類結構中嗎?

<xs:element name="HomeAddress" type="xs:string"> 
    <xs:annotation> 
    <xs:appinfo>Home address</xs:appinfo> 
    </xs:annotation> 
</xs:element> 

有沒有辦法讓XJC編譯在這個信息?

+0

以什麼方式?你的例子中你想要的結果是什麼? – musiKk 2010-09-16 09:51:17

+0

只要我可以在運行時從Java訪問它,它並不重要。通過註釋(我可以通過反射來獲取)或靜態成員看起來是最簡單的。 – 2010-09-16 10:00:36

回答

5

可以使用Annotate plugin任意Java註釋添加到您的模式派生類。有了這個插件,您可以管理像語法:

<xs:element name="HomeAddress" type="xs:string"> 
    <xs:annotation> 
    <xs:appinfo> 
     <ann:annotate xmlns:ann="http://annox.dev.java.net/com.acme.foo"> 
     <my:Label value="Home address"/> 
     </ann:annotate> 
    </xs:appinfo> 
    </xs:annotation> 
</xs:element> 

的你會得到這樣的:

@Label("Home address") // FQCN is com.acme.foo.Label 
public String getHomeAddress(...) {} 
+0

非常好,謝謝! – 2010-10-05 09:00:13

+0

@lexicore:如果你不能修改模式,因爲它是由第三方提供的? – 2012-04-06 08:15:39

+0

@Artem Oboturov:您可以在不修改模式的情況下對綁定文件('* .xjb')做同樣的事情。 – lexicore 2012-04-06 11:46:57