2010-09-16 6 views
5

Ich habe ein Schema, das von einigen verschiedenen Anwendungen für die Formulargenerierung gelesen wird; einer von ihnen verwendet JAXB/XJC, um seine Klassenstruktur zu kompilieren. Das Schema enthält AppInfo Informationen für freundliche Namen von Feldern, zB:JAXB - Kann XJC appinfo in die Klassenstruktur übersetzen?

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

Gibt es eine Möglichkeit XJC zu erhalten diese Informationen in kompilieren?

+0

In welcher Art und Weise:

<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> 

Ein werden Sie so etwas wie bekommen? Was ist Ihr gewünschtes Ergebnis in Ihrem Beispiel? – musiKk

+0

Es spielt eigentlich keine Rolle, solange ich zur Laufzeit von Java darauf zugreifen kann. Durch Annotation (die ich mit Reflektion greifen könnte) oder durch statisches Member scheint das einfachste zu sein. –

Antwort

5

Sie die Annotate plugin können beliebige Java-Annotationen in Ihr Schema abgeleiteten Klassen hinzuzufügen. Mit diesem Plugin können Sie eine Syntax wie verwalten:

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

Ausgezeichnet, danke! –

+0

@lexicore: und wenn Sie das Schema NICHT ändern können, weil es von einem Drittanbieter bereitgestellt wird? –

+0

@Artem Oboturov: Sie können das gleiche mit Bindungsdateien ('* .xjb') tun, ohne das Schema zu ändern. – lexicore

Verwandte Themen