# JAXB XML-Attribute feststellen



## Gringo13456 (1. Aug 2011)

Hallo,

wie die Überschrift schon sagt würde ich gerne zwischen Methoden die XML-Attribute und Methoden die XML-Elemente betreffen unterscheiden können.
Ich habe mir mit xjc eine Objekt-Struktur erzeugen lassen. Ich erstelle mir für jedes Objekt eine Instanz und Werte die verfügbaren Methoden aus. Dabei sollen jedoch Attribut-Methoden anders behandelt werden als Element-Methoden.
Kann ich evtl. irgendwie die JAXB-Annotationen (@) abfragen?

Vielen Dank
Daniel


----------



## musiKk (2. Aug 2011)

Klar. Über das [c]Class[/c] Objekt kommst Du an die Methoden (z. B. [c]getMethod()[/c] oder [c]getMethods()[/c]) und darüber an die Annotations per [c]getAnnotations()[/c] etc.


----------



## Gringo13456 (2. Aug 2011)

Das habe ich bereits versucht. Leider steht die Annotation nicht direkt über der Methode...
Z. B. sieht die Fibex-Klasse so aus:
public class FIBEX {

    @XmlElement(name = "PROJECT", required = true)
    protected PROJECTTYPE project;
    @XmlElement(name = "PROTOCOLS")
    protected PROTOCOLS protocols;
    @XmlElement(name = "ELEMENTS", required = true)
    protected ELEMENTS elements;
    @XmlElement(name = "PROCESSING-INFORMATION")
    protected PROCESSINGINFORMATION processinginformation;
    @XmlElement(name = "REQUIREMENTS")
    protected REQUIREMENTS requirements;
    @XmlAttribute(name = "VERSION", required = true)
    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
    protected String version;

    /**
     * Gets the value of the project property.
     * 
     * @return
     *     possible object is
     *     {@link PROJECTTYPE }
     *     
     */
    public PROJECTTYPE getPROJECT() {
        return project;
    }
Also müsste ich heraus finden welches Variable in der Methode gesetzt wird und die Annotation dieser heraus finden...


----------



## nillehammer (2. Aug 2011)

Dann nimmste eben getDeclaredFields() (Class (Java Platform SE 6)) ). Steht in der javadoc genau über getDeclaredMethods(). Nu mal nicht so denkfaul


----------



## Wildcard (2. Aug 2011)

Mal eine blöde Frage: wozu braucht man sowas? Sicher das es eine gute Idee ist diese Unterscheidung so zu treffen?


----------

