Hallo,
mein Ziel ist es in meinem Programm eine Datei mit JAXB einzulesen und das Einlesen an sich läuft auch schon aber das ist ja nicht schwer. Das Problem ist nun, das ich nicht verstehe, wie das bspw. bei einer "Referenz" funktionieren soll. Wenn ich bspw. so eine XML Datei habe:
Ein Raum hat bei mir da jeweils immer nur einen Nachbarn und ref soll dabei der Nachbarraum bzw. die Referenz sein aber wie teile ich das da JAXB mit? So würde das ja wohl kaum funktionieren oder nicht? Vor allem da ich ja erst den "eingang" erstelle und dann erst die folgenden Räume?
Ich habe da auch noch ein kleines Problem. Ich würde nämlich gerne den Eingang und den Ausgang in einer Variable speichern aber wenn ich das so versuche, mit dem Eingang
dann kriege ich immer nur, wenn ich das mit System.out.println ausgebe null ausgegeben. Ich habe auch die toString Methode überschrieben. Der Raum wird dann auch gar nicht mehr aufgenommen, wieso?
So wird ein Raum bei mir definiert:
Ds wären auch eigentlich soweit meine Probleme. Ich habe auch noch andere Elemente im Spiel, wo ich dann eigentlich auch noch einen Raum zuordnen muss aber das ist ja im Prinzip dasselbe Problem, von daher lasse ich das hier mal aus.
mein Ziel ist es in meinem Programm eine Datei mit JAXB einzulesen und das Einlesen an sich läuft auch schon aber das ist ja nicht schwer. Das Problem ist nun, das ich nicht verstehe, wie das bspw. bei einer "Referenz" funktionieren soll. Wenn ich bspw. so eine XML Datei habe:
Java:
<?xml version="1.0"?>
<level>
<raueme>
<raum>
<eingang>
<beschreibung>Ihr Startpunkt</beschreibung>
<nachbar>
<weg>geradeaus</weg>
<ref>raum2</ref>
</nachbar>
</eingang>
</raum>
<raum>
<beschreibung>raum2</beschreibung>
<nachbar>
<weg>rechts</weg>
<ref>raum3</ref>
</nachbar>
</raum>
</raueme>
</level>
Ein Raum hat bei mir da jeweils immer nur einen Nachbarn und ref soll dabei der Nachbarraum bzw. die Referenz sein aber wie teile ich das da JAXB mit? So würde das ja wohl kaum funktionieren oder nicht? Vor allem da ich ja erst den "eingang" erstelle und dann erst die folgenden Räume?
Ich habe da auch noch ein kleines Problem. Ich würde nämlich gerne den Eingang und den Ausgang in einer Variable speichern aber wenn ich das so versuche, mit dem Eingang
Java:
@XmlElementWrapper(name = "eingang")@XmlElement(name = "raum")
public void setEingang(Raum eingang)
{
this.eingang = eingang;
}
dann kriege ich immer nur, wenn ich das mit System.out.println ausgebe null ausgegeben. Ich habe auch die toString Methode überschrieben. Der Raum wird dann auch gar nicht mehr aufgenommen, wieso?
So wird ein Raum bei mir definiert:
Java:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "raum")@XmlAccessorType(XmlAccessType.NONE)
public class Raum implements Serializable
{
private String beschreibung;
private Raum ausgang;
public Raum()
{
}
public Raum(String beschreibung)
{
this.beschreibung = beschreibung;
}
public String getBeschreibung()
{
return beschreibung;
}
@XmlElement(name = "beschreibung")
public void setBeschreibung(String beschreibung)
{
this.beschreibung = beschreibung;
}
@XmlElement(name = "nachbar")
public void setNachbar(Raum nachbar)
{
this.nachbar = nachbar;
}
@Override
public String toString()
{
return this.beschreibung;
}
}
Ds wären auch eigentlich soweit meine Probleme. Ich habe auch noch andere Elemente im Spiel, wo ich dann eigentlich auch noch einen Raum zuordnen muss aber das ist ja im Prinzip dasselbe Problem, von daher lasse ich das hier mal aus.