Hallo,
ich möchte eine Komponente haben, die mit verschiedenen XSDs klar kommt und am Ende eine XML erzeugt. Zum Befüllen der XML wird JAXB verwendet.
Das setzen der Teilbäume soll meine Komponente übernehmen, dass Befüllen wird von anderen Komponenten vorgenommen denen der JAXB-Aufbau bekannt ist, die von mir aufgerufen werden und mir das Befüllte Objekt zurückgeben.
Nun möchte ich dieses Object, welches ich von den anderen Komponenten zurückbekomme, in den JAXB-Objecten setzen ohne das mir die genauen setter und getter bekannt sind.
Mir ist nur der "XPATH" bekannt.
Beispiel:
XPATH: dokument/ParentElement/KindElement (dokument ist das Root-Element)
fremde Komponente: Gibt befülltes KindElement zurück
Um das Kindelement zu setzen müsste ich aufrufen:
dokument.getParentElement().setKindElement(Kindelement)
Mir sind aber die genauen getter und setter unbekannt weil ich ja mit unterschiedlichen XSDs arbeiten möchte.
Um das zu lösen würde ich jetzt den XPATH aufteilen (dokument, ParentElement, KindElement)
und würde mir "ParentElemnt" schnappen und davor ein "get" setzen und über Reflaction die Methode auf der Class von dokument aufrufen. Beim "KindElement" würde ich das gleiche machen bis auf das ich "set" statt "get" davor setze. Mit Schleifen würde ich noch versuchen unterschiedliche String-Manipulationen vorzunehmen (für den Aufruf der Methode über Reflaction) um z. B. darauf reagieren zu können das im XPath "partenElement" steht. Hier würde ich dann noch das p in ein P ändern und dann das "get" davor. Also einfach verschiedene Möglichkeiten wie die Methode aussehen könnte.
Meine Frage ist nun, ob bereits etwas existiert, wo ich den "XPath" reinreiche und er mir das richtige Object aus den JAXB-Objecten wieder gibt? Damit ich den obigen Ablauf nicht programmieren muss.
Oder eine anderen Lösungsansatz.
Ich hoffe es kommt einiger Maßen rüber was ich möchte.
Danke schon mal für jede Hilfe.
ich möchte eine Komponente haben, die mit verschiedenen XSDs klar kommt und am Ende eine XML erzeugt. Zum Befüllen der XML wird JAXB verwendet.
Das setzen der Teilbäume soll meine Komponente übernehmen, dass Befüllen wird von anderen Komponenten vorgenommen denen der JAXB-Aufbau bekannt ist, die von mir aufgerufen werden und mir das Befüllte Objekt zurückgeben.
Nun möchte ich dieses Object, welches ich von den anderen Komponenten zurückbekomme, in den JAXB-Objecten setzen ohne das mir die genauen setter und getter bekannt sind.
Mir ist nur der "XPATH" bekannt.
Beispiel:
XPATH: dokument/ParentElement/KindElement (dokument ist das Root-Element)
fremde Komponente: Gibt befülltes KindElement zurück
Um das Kindelement zu setzen müsste ich aufrufen:
dokument.getParentElement().setKindElement(Kindelement)
Mir sind aber die genauen getter und setter unbekannt weil ich ja mit unterschiedlichen XSDs arbeiten möchte.
Um das zu lösen würde ich jetzt den XPATH aufteilen (dokument, ParentElement, KindElement)
und würde mir "ParentElemnt" schnappen und davor ein "get" setzen und über Reflaction die Methode auf der Class von dokument aufrufen. Beim "KindElement" würde ich das gleiche machen bis auf das ich "set" statt "get" davor setze. Mit Schleifen würde ich noch versuchen unterschiedliche String-Manipulationen vorzunehmen (für den Aufruf der Methode über Reflaction) um z. B. darauf reagieren zu können das im XPath "partenElement" steht. Hier würde ich dann noch das p in ein P ändern und dann das "get" davor. Also einfach verschiedene Möglichkeiten wie die Methode aussehen könnte.
Meine Frage ist nun, ob bereits etwas existiert, wo ich den "XPath" reinreiche und er mir das richtige Object aus den JAXB-Objecten wieder gibt? Damit ich den obigen Ablauf nicht programmieren muss.
Oder eine anderen Lösungsansatz.
Ich hoffe es kommt einiger Maßen rüber was ich möchte.
Danke schon mal für jede Hilfe.