Stellen Sie sich das folgende Szenario vor: Ich habe eine XML-Datei namens person.xml mit den folgenden Daten.Dynamisches Generieren von Java-Klassen aus einem XML-Dokument
<person>
<name>MrFoo</name>
<age>28</age>
</person>
Wenn ich diese XML in ein Java-Objekt lesen möchten, würde ich eine Java-Bean genannt PersonBean erschaffen (mit Getter/Setter für die Attribute) als:
class Person{
String name;
int age;
}
Und ich konnte verwenden alle APIs zum Lesen der XML und zum Füllen der Java Bean.
Aber die wirkliche Frage hier ist, angenommen, wenn die Struktur der XML-Datei ändert, dh wenn ein neues Attribut 'E-Mail' der XML-Datei hinzugefügt wird, dann muss ich die Java Bean auch ändern, um ein neues Attribut hinzuzufügen . Aber ich möchte vermeiden, den Java-Code zu ändern, selbst wenn sich die XML-Struktur ändert.
Also, was ich versuche zu tun, ich bin eine andere XML-Datei erstellen namens PersonStructure.xml mit dem Inhalt wie:
<class name="Person">
<attributes>
<attribute>
<name>personName</name>
<type>java.lang.String</type>
</attribute>
... and it goes like this...
</attribute>
</class>
Ist es möglich, die PersonStructure.XML-Datei zu lesen und konvertieren es in Person.Java Klassendatei? Der Ansatz, den ich versuche, ist richtig oder gibt es einen anderen Weg, das Gleiche zu tun?
eine kleine Frage, was würde Ihr Java-Code Ihr neues geändertes Objekt tun? Müssten Sie Ihren Geschäftscode nicht anpassen, um die neue Version der Beans zu verwenden? –
Ist der Titel Ihrer Frage korrekt? Es klingt, als ob Sie Java-Objekte und keine Java-Klassen generieren möchten. – skaffman
Ich möchte Java-Klassenstruktur aus der XML-Datei erstellen. :) – Veera