Erstellung einer XML Datei

beta20

Top Contributor
Hallo zusammen,

ich möchte gerne anhand einer Java - Klasse eine XML - Datei erstellen mit JAXB.
Dazu habe ein paar Fragen:

Struktur wie diese:
Java:
<Designer>
       <ComponentA>
          <id>1234</id>
       </ComponentA>
   </Designer>

a) Wie müssen diese Klassen dann genau aussehen?

Java:
@XmlRootElement
public class ComponentA implements Serializable{
private String id;
// Getter + Setter

Muss ich dann ebenfalls noch "Designer" als Attribut aufnehmen? Also immer den Parentknoten?
private Designer designer;

b) Attribute
-> Muss ich jedes Attribut mit einer Annotation versehen oder reicht wenn ich über die Klasse @XMLRootElement habe?

c) Annotation nur bei Setter?
-> Ich habe schon gesehen, dass manchmal die Annotation bei Attributen stattfindet, was macht das für einen Sinn?

Java:
@XmlElement
public void setText(String text) {
this.text = text;
}

Danke für jede Hilfe
 

krgewb

Top Contributor
Bisher habe ich es nur geschafft, so eine Struktur aufzubauen:
Java:
<model>
    <person id="30a506e2e35" name="Klaus Mayer">
        <attributeExample  nameOfAttribute="Hobbies"  id="57b985cac0d" idOfParent="30a506e2e35" values="Wandern, Schach spielen"/>
    </person>
</model>
Die Attributsausprägungen sind also nicht innerhalb von dem öffnenden und dem schließenden Tag.

Ich habe bei jedem Getter eine Annotation mit dem Namen, der in der xml vorkommen soll. Zum Beispiel:
Code:
@XmlElement(name = "id")

Bei Setter habe ich keine Annotationen.

Meine Model-Klasse hat eine ArrayList mit den person-Objekten. Außerdem hat sie einen Getter für diese ArrayList.

Wie du in meinem Beispiel siehst, hat jedes attributeExample ein Attribut namens idOfParent. Das ist die ID von dem person. Ich wusste nicht, wie ich es programmieren kann, damit die ID nicht nötig ist.
 
Zuletzt bearbeitet:

krgewb

Top Contributor
Achso. Die Klasse Person hat natürlich eine ArrayList mit Objekten der Klasse AttributeExample.
Ich muss mich für die Begrifflichkeiten entschuldigen. Ich habe das Beispiel erstellt, indem ich Code aus meiner Bachelor-Arbeit herauskopiert habe.
 

mihe7

Top Contributor
Hab das mal kurz ausprobiert.
Java:
import javax.xml.bind.*;

public class Test {
    public static void main(String[] args) throws Exception {
        Designer designer = new Designer();
        designer.comp = new ComponentA();

        JAXB.marshal(designer, System.out);
    }
}

Java:
import javax.xml.bind.annotation.*;

@XmlRootElement(name="Designer")
public class Designer {
    @XmlElement(name="ComponentA")
    ComponentA comp;
}

Java:
import javax.xml.bind.annotation.*;

public class ComponentA {
    @XmlElement
    long id;
}

Lässt man das laufen, erhält man
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Designer>
    <ComponentA>
        <id>0</id>
    </ComponentA>
</Designer>
 

beta20

Top Contributor
Ok, danke...


@mihe7
Du hast nun allerdings keine Getter + Setter, sondern nur:

Java:
@XmlElement
    long id;

Wenn ich Getter+Setter habe, wie erfolgt dann die Annotation?
etwa so:

Java:
@XmlElement
private long id;

Wenn jedes Attribut im XML Code erscheinen soll, muss ich dann überhaupt die Annotation für die Attribute anwenden?
 

mihe7

Top Contributor
Vorab: ich habe keine der folgenden Aussagen überprüft (bitte selber in den Specs nachsehen)

Wenn ich Getter+Setter habe, wie erfolgt dann die Annotation?
Durch Methoden sollte sich daran nichts ändern.

Wenn jedes Attribut im XML Code erscheinen soll, muss ich dann überhaupt die Annotation für die Attribute anwenden?
Das dürfte darauf ankommen, wie Du die Attribute ausgegeben haben willst. Standard dürfte sein, dass primitive Typen als XML-Attribut geschrieben werden, also im Falll der id z. B. <ComponentA id="0">, willst Du aber die ID als XML-Element haben, wirst Du eine Annotation brauchen.
 

Robat

Top Contributor
Hier werden die einzelnen Annotations eigentlich wunderschön erklärt.
Über @XmlAccessorType(XmlAccessType.FIELD) kannst du bestimmen welche Art von Membern genommen werden sollen.
 

beta20

Top Contributor
Ah. Vielen Dank für den Link

Noch drei Fragen:

a) Wie bekomme ich aus einer XML Datei ein entsprechendens JAVA Objekt erstellt
-> Alle Kinder von DatePickerComponent

b) Wie bekomme ich aus einer XML Datei ein entsprechendens JAVA Objekt erstellt, welches die ID 1 hat
-> Also von einer Klasse (DatePickerComponent) den Knoten mit der ID 1

c) Wenn ich nur 3 Attribute setze, wie schaffe ich es, dass die anderen Felder mit NULL belegt werden?
Heißt requiredText etc. soll dann mit NULL belegt sein, oder passiert das dann automatisch wenn ich aus der XML Datei den Knoten finde und er hat keine XML Elemente?

Java:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class DatePickerComponent {

    private String id;
    private String name;

    private String labelText;
    private String labelAlignment;
    private Boolean requiredField;
    private String separatorText;
    private String subLabelText;

Java:
       JAXBContext jaxbContext = JAXBContext.newInstance(DatePickerComponent.class);

       DatePickerComponent datePickerComponent = new DatePickerComponent();
       datePickerComponent.setLabelText("Test");
       datePickerComponent.setLabelAlignment("Hallo");

       Marshaller marshaller = jaxbContext.createMarshaller();
       marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
       marshaller.marshal(datePickerComponent, new File("test.xml"));
       marshaller.marshal(datePickerComponent, System.out);

Output
Java:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<datePickerComponent>
    <dateFormat>Test</dateFormat>
    <dayFridayText>Hallo</dayFridayText>
</datePickerComponent>
 

Robat

Top Contributor
a) Wie bekomme ich aus einer XML Datei ein entsprechendens JAVA Objekt erstellt
-> Alle Kinder von DatePickerComponent
Unmarshaller ... meinst du das?
b) Wie bekomme ich aus einer XML Datei ein entsprechendens JAVA Objekt erstellt, welches die ID 1 hat
-> Also von einer Klasse (DatePickerComponent) den Knoten mit der ID 1
Auch hier würde ich sagen erst unmarshallen und dann, in der Liste, das DatePickerComponent-Objekt mit der ID 1 suchen
c) Wenn ich nur 3 Attribute setze, wie schaffe ich es, dass die anderen Felder mit NULL belegt werden?
Heißt requiredText etc. soll dann mit NULL belegt sein, oder passiert das dann automatisch wenn ich aus der XML Datei den Knoten finde und er hat keine XML Elemente?
Werte die nicht im XML gefunden werden, werden automatisch mit ihrem default-Wert initialisiert bzw mit null.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Probleme mit Animation und der erstellung einer jar Datei. Java Basics - Anfänger-Themen 11
N Erstellung einer Supermarktwarteschlange Java Basics - Anfänger-Themen 10
C Erstellung einer Währungsrechnungstabelle Java Basics - Anfänger-Themen 2
T Collections Erstellung eines Listeneintrags einer verketteten Liste Java Basics - Anfänger-Themen 5
S Klassen Brauche Hilfe bei Erstellung einer Klasse für einen Tachenrechner!!! Java Basics - Anfänger-Themen 6
N Hilfe zur Erstellung einer Internet-Plattform Java Basics - Anfänger-Themen 5
W Problem mit jar erstellung bei einer SWT-Applikation Java Basics - Anfänger-Themen 5
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
M Java Einstellung von Apache POI für MS Word Erstellung mit Eclipse Java Basics - Anfänger-Themen 6
M Regex Erstellung Problem Java Basics - Anfänger-Themen 2
B Hilfe bei Regex - Erstellung Java Basics - Anfänger-Themen 5
M Erstellung Interfaces....totale Anfängerfrage Java Basics - Anfänger-Themen 16
Moritz1508 Variablen Erstellung eines simplen Taschenrechners mit +/- - Auswahl Java Basics - Anfänger-Themen 2
J Java Ordner Erstellung nicht möglich. Java Basics - Anfänger-Themen 3
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
A Zeichentool mit automatischer Java Code Erstellung Java Basics - Anfänger-Themen 1
J Can't find symbol - Erstellung eines Objekts in if-Bedingung Java Basics - Anfänger-Themen 3
M Deklaration und Initialisierung bei Method Erstellung Java Basics - Anfänger-Themen 12
J OOP Endlose Erstellung eines Objekts Java Basics - Anfänger-Themen 13
D Klassen Objekte nach erstellung in ArrayList speichern Java Basics - Anfänger-Themen 5
K Javadoc-Erstellung Java Basics - Anfänger-Themen 16
Luk10 Problematik großer Objekt-Erstellung / -Löschung Java Basics - Anfänger-Themen 2
U Methoden Methode zur Erstellung von Buttons Java Basics - Anfänger-Themen 11
A Probleme mit JAR-Datei-Erstellung unter Eclipse Java Basics - Anfänger-Themen 23
MU5T4NG Getter und Setten bei GUI-Erstellung Java Basics - Anfänger-Themen 13
O Problem bei .jar Erstellung Java Basics - Anfänger-Themen 7
A Erstellung eines einfachen Plugin HILFE ! Java Basics - Anfänger-Themen 19
S [JAVA] Erstellung eines Objekts abbrechen?! Java Basics - Anfänger-Themen 7
K Hilfe zur Erstellung v.kl. Applikation Java Basics - Anfänger-Themen 5
S Problem mit Schleife - Objektwert aendert sich nach erstellung Java Basics - Anfänger-Themen 17
E Erstellung eines Netzwerkfähigen Stundenplans Java Basics - Anfänger-Themen 6
Developer_X Zugriff auf PC verweigert bei Ordner erstellung, wie zulassen?! Java Basics - Anfänger-Themen 3
T Erstellung von Queue mit verkketten listen Java Basics - Anfänger-Themen 3
P Spiel im Schiffe-Versenken Stil, Problem mit Erstellung des zweidimensionalen ARRAYs Java Basics - Anfänger-Themen 7
M Frage zur Erstellung von Methoden Java Basics - Anfänger-Themen 4
F Erstellung eines Fensters mit Button und Textfeldern Java Basics - Anfänger-Themen 10
S Probleme bei der Erstellung von JAR-Dateien Java Basics - Anfänger-Themen 2
G Gui erstellung mit actionlistener Java Basics - Anfänger-Themen 4
J Bei erstellung der Jar Datei werden Bilder nicht geladen Java Basics - Anfänger-Themen 2
S Problem mit Array-Erstellung Java Basics - Anfänger-Themen 5
G Blöde Frage zur Jar-File-Erstellung Java Basics - Anfänger-Themen 5
B Fehler bei ArrayList erstellung? Java Basics - Anfänger-Themen 2
M Frage zu Erstellung von Methode Java Basics - Anfänger-Themen 17
M Hilfe bei der Erstellung der Comparator Klasse Java Basics - Anfänger-Themen 10
G Probleme mit *.JAR erstellung Java Basics - Anfänger-Themen 15
G Klassenbibliothek zur Erstellung von Tabellen? Java Basics - Anfänger-Themen 3
G Erstellung von HTML Ausgaben Java Basics - Anfänger-Themen 5
G Binäre Suchbaum + Erstellung des Programmes Java Basics - Anfänger-Themen 4
G Kurze Frage zur Erstellung des Projektplans Java Basics - Anfänger-Themen 7
M Welche UML Werkzeuge für PAP Erstellung gibt es? Java Basics - Anfänger-Themen 3
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
M Zufallszahl generieren mit einer linken und rechten Grenze Java Basics - Anfänger-Themen 3
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
H Kapselung protected aber in einer Kindklasse nicht zugänglich Java Basics - Anfänger-Themen 5
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben