XML für Einstellungen - welche Strategie verwenden?

Status
Nicht offen für weitere Antworten.

Antimon

Mitglied
Hallo zusammen,

ich möchte verschiedene Einstellungen in einer XML-Datei abspeichern, den Aufbau könnte man vergleichen mit der Beschreibung eines Autohauses: Es gibt einen Besitzer, dessen Adresse gespeichert wird (genau ein Mal) und es gibt beliebig viele Autos, die wiederum verschiedene Eigenschaften haben.

Jetzt zerbreche ich mir den Kopf, wie es am sinnvollsten ist, eine solche XML-Beschreibung zu erstellen. Die Technik ist klar, nur gibt es da mehrere Möglichkeiten:
Entweder, ich erzeuge gleich die komplette XML-Datei (mit leeren Einträgen, also z.B. <Name></Name>), oder ich erstelle die Einträge, wenn Daten kommen (z.B. wenn ein Pächter Hans Meier kommt, füge ich die entsprechenden Tags hinzu).

Wenn ich das ganze Dokument gleich erstelle, habe ich den Vorteil, dass ich davon ausgehen kann, dass alle übergeordneten Knoten existieren, wenn ich irgend einen Kindknoten bearbeiten möchte (z.B. existiert <Pächter> wenn ich <Name> bearbeiten möchte, weil ein Name zu der Anschrift eines Pächters gehört), allerdings gibt es ein Problem, wenn dies mal nicht der Fall sein sollte (z.B. weil jemand von Hand in der Datei rumgepfuscht hat).

Lege ich dagegen nur bei Bedarf die Zweige an ist das fehlertoleranter - existiert mal ein Zweig nicht, wird das überprüft und notfalls ein neuer angelegt. Aber es ist auf jeden Fall aufwändiger, denn ich kann nie davon ausgehen dass übergeordnete Knoten existieren.

Was würdet Ihr mir von den oben genannten Möglichkeiten empfehlen - oder vielleicht was ganz anderes? Vielleicht mach ich mir auch einfach viel zu viel Gedanken und es ist eigentlich ganz einfach - aber momentan dreh ich mich nur im Kreis... :-/

Momentan verwende ich übrigens dom4j, xmlbeans habe ich aufgegeben - da war die doku viel zu schlecht. Gibts evtl. andere, für den Zweck bessere Libs?
 

André Uhres

Top Contributor
Vielleicht könnest du die Einstellungen in der Anwendung als JTree hinterlegen
und dann das TreeModel einfach mit java.beans.XMLEncoder/XMLDecoder speichern/laden.

Antimon hat gesagt.:
..weil jemand von Hand in der Datei rumgepfuscht hat..
Das sollte bei meinem Vorschlag allerdings tabu sein (bei einer komplizierten Struktur ist das eh nicht zu empfehlen) :wink:
Höchstens der Entwickler selbst könnte sowas wagen um gewisse Korrekturen im Rahmen der Entwicklung vorzunehmen.
 

Antimon

Mitglied
Also die Idee mit dem TreeModel ist sehr interessant - die behalte ich im Hinterkopf.

Jetzt ist halt die Frage - was mache ich wenn sich im Laufe der Zeit bei neuen Versionen des Programms am XML-Aufbau etwas ändert? Bin ich dann nicht am flexibelsten wenn ich den Dokumentaufbau im Programmcode hinterlege? Wenn dann ein Ast hinzukommt, wird der einfach angelegt, ansonsten müsste ich bei Updates eine spezielle Routine haben, die mir ein Mal den neuen Ast anlegt.

Wenn ich von der fertigen Datei ausgehe, könnte ich mir ja auch ein leeres Gerüst bauen und das dann immer kopieren, wenn ne neue Konfig erzeugt wird. Wäre natürlich relativ einfach und spart sicher ne Menge Code...

Oder gibts eventuell was ähnliches wie XMLBeans, welches anhand eines XSD-Dokumentes den Aufbau der Konfiguration kennt und fehlende Knoten einfach anlegen kann?

Mein größtes Problem ist nämlich momentan: Wie mache ich es wenn ich auf /Root/Knoten1/Knoten2/Knoten3/Knoten4 zugreifen möchte - aber weil die Konfig grade erst erstellt wurde, gibt es Knoten1-Knoten3 noch nicht... dann müsste ich diese Stück für Stück anlegen... oder gehts eleganter?
 

Wildcard

Top Contributor
Schreib eine xsd, lass dir die Datenklassen mit JaxB erzeugen und schreib dir ein TreeModel das mit den JaxB Klassen umgehen kann.
Dann kannst du einfach und korrekt serialisieren und deserialisieren.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Jackson: Erstellen Sie Klassen für Jackson aus XSD XML & JSON 2
N JAXB: Überflüssiges Wrapper-Tag für Map-Einträge XML & JSON 0
H Editor für Apache FOP XML & JSON 5
E Gibt es denn einen XML-Parser für JUnit-Tests? XML & JSON 6
A XMLRPC für Java XML & JSON 3
S Ersatz für die veraltete Klasse XPath XML & JSON 1
D ods./Excel Tabelle oder doch SQL für nen Anfänger? XML & JSON 5
S Xml File für den Aufbau einer anderen Xml Datei XML & JSON 6
R Rückgabewert für XML-Abschnitt XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
D eine Schema für ein andere Schema XML XML & JSON 14
T XML-Stream als Quelle für FOP XML & JSON 4
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D [EMF,XSD] PatternMatcher für eigene Methoden benutzen XML & JSON 3
F Standard für das erstellen von XML? XML & JSON 4
H XML plattformunabhängig/Open Source für Java XML & JSON 4
G Idee für kleines Vorführprojekt XML & JSON 5
isowiz Welches Persistenzframework für XML? XML & JSON 3
T Java Klasse für gegebenes XML erstellen XML & JSON 4
B XML file für schtasks XML & JSON 5
G XPath gesucht für Tag mit konkretem Content XML & JSON 2
F beste lib für xml serialisierung - deserialisierung XML & JSON 4
HeRaider Steuerzeichen für Zeilenumbrüche XML & JSON 2
T Editor für XML-Dialekt entwickeln XML & JSON 3
M brauche große XML-Datei für XPath-Tests XML & JSON 4
M Best Practices für Data Binding ohne Hilfstools XML & JSON 14
M XSL-File für Transformation verwenden XML & JSON 3
C Pfadangabe für Bilder XML & JSON 2
J Client für WebService programmieren (aus WSDL-File) XML & JSON 15
T DTD für XML-Instanz einbinden? XML & JSON 4
Z beispiel für valides Xml-Dokument durch XML-Schema XML & JSON 5
G XML als "Datenbank" für kleine Daten XML & JSON 2
D Suche eine OnlineQuelle für SAX XML & JSON 2
S Welche Zeichen sind erlaubt bei einem XML - Attributsnamen? XML & JSON 2
J Welche Gründe führen zu einer endlos tiefen XML? XML & JSON 4
Ollek XML Einlesen - Welche API ist die richtige? XML & JSON 14
G Ich stehe auf dem Schlauch. Welche XML API denn nun? XML & JSON 4
W Welche Möglichkeiten MultiElement XML XML & JSON 2
G Welche Klassen zum erzeugen/auslesen eines XML Files verwend XML & JSON 9
Daniel_L Erfahrungswerte: Welche XML Api eignet sich als Datenformat? XML & JSON 20
G Welche XML-Datenbank? XML & JSON 3

Ähnliche Java Themen

Neue Themen


Oben