Frage zum XML-Format und zu Schnittstellen

Moderatoren: Raskir, little.yoda, Zafnir, teclis2000, hades-hl, Gorbalad, Eclipse404

Antworten
der-eschenfurter
Grad reingeschneit -- (Höhlenkundig?)
Beiträge: 1
Registriert: 4. Dez 2011, 14:13

Frage zum XML-Format und zu Schnittstellen

Beitrag von der-eschenfurter »

Hallo!

Mit diesem Post möchte ich mich kurz vorstellen und auch gleich im Anschluss zwei Fragen loswerden.

Ich bin erst vor kurzem auf die Heldensoftware umgestiegen und wollte zum Einstieg ein kleines Plugin ergänzen, welches mir ein paar Berechnungen abnimmt.
Als ich dann schon mal einen Testknopf eingebaut, und mich etwas mit dem Datenmodell auseinandergesetzt hatte, fiel mir auf, dass das, was ich erzielen wollte, exakt mit den Ausrüstungssets abgedeckt wird. Na toll, erstmal losprogrammiert und dann geschaut, ob es das Feature vielleicht schon gibt. :kopfwand:

Nun bin ich schlauer aber auch gleich um eine Frage reicher. Ich konnte der Werkzeug-Klasse irgendwie nicht entlocken, wie ich denn an die verschiedenen Ausstattungssets kommen kann. Soweit ich das erinnere, sieht die Schnittstelle ungefähr so aus:

Code: Alles auswählen

wz.getAusruestung2().getNahkamfwaffen() 
Da getAusruestung2() keinen Parameter frisst, wundere ich mich also, wie ich an die anderen alternativen Sets kommen kann. Ist das erste Set per Konvention das, was man bekommt?

Nun, da es meine gesuchte Funktion schon gibt, würde ich trotzdem gerne meine Mithilfe im Projekt anbieten. Da ich keine große Swing-Erfahrung habe - eher SWT - und auch nicht der "Oberflächen Typ" bin, fällt mir da etwas anderes ein.
Ich habe gelesen, dass es eine TCP-Schnittstelle gibt. Ist das so gemeint, wie es da steht? Also wenn ich sie kontaktieren möchte, muss ich mich ihr auf Socket-Level nähern oder ist damit eine HTTP-Schnittstelle gemeint?

Beim Stöbern in den Klassenhierarchien habe ich Plugin-Interfaces gefunden, die nahelegen, dass man auch auf die Klassen zur Generierung des XML-Austauschformates zugreifen kann. Habe ich das richtig verstanden?
Wie ist da der Aufruf gedacht? Ich habe etwas mit einer Methode execute(Document d) herumexperimentiert, bin da aber auf keinen grünen Zweig gekommen.
Kurz gesagt: Gibt es einen Weg, wie ich ohne das Rad neu zu erfinden, das XML-Austauschformat für einen Charakter generieren kann? Ist das auch das selbe Format, das die Android-App konsumiert, wenn sie Charaktere importiert?

Viele Grüße,

Markward Schubert
Spielleiter
Möchtegern-Held -- (Höhlenkundig 2)
Beiträge: 26
Registriert: 17. Feb 2011, 23:57

Re: Frage zum XML-Format und zu Schnittstellen

Beitrag von Spielleiter »

Es könnte sich um JAXB oder eine andere Schnittstelle mit ähnlicher Aufgabe handeln.
Falls derartiges noch nicht eingesetzt wird, würde ich gerne meine Hilfe in diesem Bereich anbieten. Die xml-Schnittstelle scheint mir ohnehin die beliebteste zu sein, was den Datenaustausch mit extern entwickelter Software angeht. Da wäre ein Ausbau sicher nicht verkehrt?
Benutzeravatar
little.yoda
Meine Höhle! -- (Höhlenkundig 21)
Beiträge: 2515
Registriert: 10. Dez 2004, 17:48
Kontaktdaten:

Re: Frage zum XML-Format und zu Schnittstellen

Beitrag von little.yoda »

der-eschenfurter hat geschrieben: Nun bin ich schlauer aber auch gleich um eine Frage reicher. Ich konnte der Werkzeug-Klasse irgendwie nicht entlocken, wie ich denn an die verschiedenen Ausstattungssets kommen kann. Soweit ich das erinnere, sieht die Schnittstelle ungefähr so aus:

Code: Alles auswählen

wz.getAusruestung2().getNahkamfwaffen() 
Da getAusruestung2() keinen Parameter frisst, wundere ich mich also, wie ich an die anderen alternativen Sets kommen kann. Ist das erste Set per Konvention das, was man bekommt?
Dazu kann Maik/Zafnir dir etwas sagen. Diese Schnittstelle ist sein "Baby".
der-eschenfurter hat geschrieben: Ich habe gelesen, dass es eine TCP-Schnittstelle gibt. Ist das so gemeint, wie es da steht? Also wenn ich sie kontaktieren möchte, muss ich mich ihr auf Socket-Level nähern oder ist damit eine HTTP-Schnittstelle gemeint?
Genau dass. Schau mal auf http://wiki.helden-software.de/w/index. ... le=Plugins ganz unten.
Dort siehst du, wie das Austauschformat bei XML aussieht. (Das Beispiel ist nicht mehr ganz auf dem aktuellen Stand, aber das sollte nicht das Problem sein)
Diese Informationen kannst du entweder per Plugin-Schnittstelle oder über TCP/IP erhalten. Wenn du mir per PM deine E-Mail-Adresse schickst, kann ich dir die beiden Beispiel-Java Programm zu schicken.

der-eschenfurter hat geschrieben: Kurz gesagt: Gibt es einen Weg, wie ich ohne das Rad neu zu erfinden, das XML-Austauschformat für einen Charakter generieren kann? Ist das auch das selbe Format, das die Android-App konsumiert, wenn sie Charaktere importiert?
DSA-Tab geht den umständlicheren Weg und nimmt sich die Helden.xml und berechnet daraus die notwendigen Informationen. In dem Austausch-XML sind aber auch die berechneten Werte enthalten.

Gruß
Macht uns das Leben einfacher und beachtet die Anmerkungen zum Bugreporting.
Eine schöne Art uns Danke zu sagen: Uns unterstützen oder meine persönliche Wunschliste
Benutzeravatar
little.yoda
Meine Höhle! -- (Höhlenkundig 21)
Beiträge: 2515
Registriert: 10. Dez 2004, 17:48
Kontaktdaten:

Re: Frage zum XML-Format und zu Schnittstellen

Beitrag von little.yoda »

Spielleiter hat geschrieben:Die xml-Schnittstelle scheint mir ohnehin die beliebteste zu sein, was den Datenaustausch mit extern entwickelter Software angeht. Da wäre ein Ausbau sicher nicht verkehrt?
Ich würde sagen 50:50.

Maiks Schnittstelle hat den Vorteil, dass du direkt via Methoden auf die Werte zugreifen kannst.
Bei XML musst du via Xpath-Anweisungen oder ähnliches zugreifen. Ist einfach Geschmackssache.
Macht uns das Leben einfacher und beachtet die Anmerkungen zum Bugreporting.
Eine schöne Art uns Danke zu sagen: Uns unterstützen oder meine persönliche Wunschliste
Spielleiter
Möchtegern-Held -- (Höhlenkundig 2)
Beiträge: 26
Registriert: 17. Feb 2011, 23:57

Re: Frage zum XML-Format und zu Schnittstellen

Beitrag von Spielleiter »

xml hat halt den Vorteil, unabhängig von der ansonsten verwendeten Programmiersprache zu sein. Für echte Plugins (um die es hier ja eigentlich geht) ist das zwar irrelevant, für externe Software aber elementar (und dieser Aspekt liegt mir aktuell mehr am Herzen).
Den bequemen Zugriff auf die Daten mittels Objekten etc. kann man über xml-binding bekommen, für das es in verschiedenen Sprachen Frameworks gibt. Die sind dann auch gegenüber Änderungen in der xml-Datei etwas robuster, da Schemata mit in die Übersetzung xml-Element->Objekt eingebunden werden.

Ich hatte im vergangenen Semester die Verbindung von einer XML-Datei für die magische Bibliothek mit JAXB zu einem Vortragsthema gemacht, deshalb habe ich dazu konkrete Ideen und Materialien.
Im Rahmen künftiger Projektarbeiten für mein Studium könnte ich in diese Richtung vielleicht sogar weitere Zeit investieren, von der ich ansonsten recht wenig für solche Arbeiten erübrigen kann.
Wenn andere Entwickler ebenfalls diesen Weg gehen wollten, würde mich das freuen. Ich könnte dann mit meinem bisherigen Wissen etwas Starthilfe geben und auch längerfristige Zusammenarbeit anbieten.
Zafnir
Podiumsleiter
Beiträge: 2342
Registriert: 22. Jun 2004, 09:25
Wohnort: Braunschweig
Kontaktdaten:

Re: Frage zum XML-Format und zu Schnittstellen

Beitrag von Zafnir »

der-eschenfurter hat geschrieben: Ich bin erst vor kurzem auf die Heldensoftware umgestiegen und wollte zum Einstieg ein kleines Plugin ergänzen, welches mir ein paar Berechnungen abnimmt.
Als ich dann schon mal einen Testknopf eingebaut, und mich etwas mit dem Datenmodell auseinandergesetzt hatte, fiel mir auf, dass das, was ich erzielen wollte, exakt mit den Ausrüstungssets abgedeckt wird. Na toll, erstmal losprogrammiert und dann geschaut, ob es das Feature vielleicht schon gibt. :kopfwand:

Nun bin ich schlauer aber auch gleich um eine Frage reicher. Ich konnte der Werkzeug-Klasse irgendwie nicht entlocken, wie ich denn an die verschiedenen Ausstattungssets kommen kann. Soweit ich das erinnere, sieht die Schnittstelle ungefähr so aus:

Code: Alles auswählen

wz.getAusruestung2().getNahkamfwaffen() 
Da getAusruestung2() keinen Parameter frisst, wundere ich mich also, wie ich an die anderen alternativen Sets kommen kann. Ist das erste Set per Konvention das, was man bekommt?
Über das interface gar nicht, weil es sehr alt ist und aus einer Zeit stammt in der es nur ein Set gab.
Wegen der zugesicherten Stabilität des interfaces muss ich eine entsprechende Erweiterung bauen oder wenn du Lust hast die neue Schnittstelle für dich fertig stellen.

MfG Maik
Macht uns das Leben einfacher und beachtet die Anmerkungen zum Fehler melden.
Antworten