DOM Typeinformation vom XSD

Status
Nicht offen für weitere Antworten.

Templon

Bekanntes Mitglied
Hallo zusammen,

Also ich bin noch nicht allzu erfahren mit XML und XSD und all dem anderen XML Zeug, also nicht schlagen :p

Also ich möchte einen XML Editor schreiben. Dieser Editor soll alle Daten von dem XML-File in einen JTree laden (Jaja, ich weiss, das gibts bestimmt schon zu genüge, aber ist eigentlich nur eine Übung =) und dann sollte man irgendwie die Werte der Elemente in diesem JTree verändern können. Bis hier komme ich noch klar, denke ich.

Jetzt möchte ich aber noch, dass wenn ein Element ein Datentyp (Im XSD File definiert) ist, welcher z.B. nur gewisse Strings zulässt (also eine enumeration im XSD), dass ich dann z.B. den Wert des Elements nicht über ein Textfeld verändern kann, sondern mit einer Combobox. Das gleiche für booleans, da könnte man eine Combobox nehmen, in welcher nur true und false steht. Komme ich irgendwie an diese Typinformationen ran?

Ich hoffe das war verständlich :p

Gruss Templon
 

Wildcard

Top Contributor
Du kannst dafür Eclipse EMF nehmen. Mit EMF generierst du dir erstmal aus der XSD ein Modell (Java Klassen). Im Anschluss kannst du dann mit genau zwei Klicks einen Editor zu deinem Modell generieren lassen, der genau das tut was du möchtest.
Der generierte Editor läuft zwar als Eclipse PlugIn, aber die Logik dahinter lässt sich auch auf Swing übertragen.
 

Ebenius

Top Contributor
Du kannst dafür Eclipse EMF nehmen. Mit EMF generierst du dir erstmal aus der XSD ein Modell (Java Klassen). Im Anschluss kannst du dann mit genau zwei Klicks einen Editor zu deinem Modell generieren lassen, der genau das tut was du möchtest.
Der generierte Editor läuft zwar als Eclipse PlugIn, aber die Logik dahinter lässt sich auch auf Swing übertragen.
Hab ich grad nen Denkfehler? EMF sagt mir zwar etwas, kenne ich aber nicht wirklich. Ich habe absichtlich kein XML-Binding (wie JAXB) vorgeschlagen, weil es meiner Meinung nach nicht zu den im Eingangsbeitrag gestellten Aufgaben passt. Verstehst Du die Frage falsch, oder ich Deinen Lösungsansatz, oder beides, oder was anderes? ???:L

Ebenius
 

Wildcard

Top Contributor
Was spricht den gegen Databinding? Der generierte Editor leistet im Übrigen genau was der OP fordert. Validieren gegen die Constraints, Comboboxen bei enums, checkboxen bei boolean usw. Warum soll das nicht passen? ???:L
 
Zuletzt bearbeitet:

Ebenius

Top Contributor
Bis jetzt gehe ich davon aus, dass der Themeneröffner einen Editor bauen möchte, in dem er ein beliebiges Schema öffnen kann und dann eine XML-Datei editiert. XML-Binding kann ich doch nur mit dem Schema machen. Wenn ich das zur Laufzeit wählen will, dann fällt das doch flach. ???:L

Wie gesagt: Wenn ich mich gedanklich irgendwo verrannt hab: Sag Bescheid, ich lerne gern was dazu. Den Aufwand mir EMF gleich anzusehen, will ich mir allerdings vorerst sparen. :)

Ebenius
 

Wildcard

Top Contributor
Bis jetzt gehe ich davon aus, dass der Themeneröffner einen Editor bauen möchte, in dem er ein beliebiges Schema öffnen kann und dann eine XML-Datei editiert. XML-Binding kann ich doch nur mit dem Schema machen. Wenn ich das zur Laufzeit wählen will, dann fällt das doch flach. ???:L
Nun, das hatte ich anders verstanden. Solltest du recht haben, passt es trotzdem. EMF kann dynamische Modelle verwalten und bietet auch einen passenden dynamic Editor mit grundsätzlich der gleichen Funktionalität. Nur Customizing wird dann etwas komplexer und das Modell ist weniger handlich (wie auch, wenn es dynamisch ist).
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben