【发布时间】:2009-05-08 09:04:10
【问题描述】:
考虑这种情况:我有一个名为 person.xml 的 XML 文件,其中包含以下数据。
<person>
<name>MrFoo</name>
<age>28</age>
</person>
如果我想将此 XML 读入 Java 对象,我将创建一个名为 PersonBean(带有属性的 getter/setter)的 Java bean:
class Person{
String name;
int age;
}
我可以使用任何 API 来读取 XML 并填充 Java Bean。
但这里真正的问题是,假设如果 XML 文件的结构发生变化,即如果向 XML 文件添加了新属性“电子邮件”,那么我还必须修改 Java Bean 以添加新属性。但是,即使 XML 结构发生变化,我也想避免更改 Java 代码。
所以,我要做的是,我正在创建另一个名为 PersonStructure.xml 的 XML 文件,其内容为:
<class name="Person">
<attributes>
<attribute>
<name>personName</name>
<type>java.lang.String</type>
</attribute>
... and it goes like this...
</attribute>
</class>
是否可以读取 PersonStructure.XML 文件并将其转换为 Person.Java 类文件?我正在尝试做的方法是正确的还是有其他方法可以做到这一点?
【问题讨论】:
-
一个小问题,您的 java 代码将如何处理新更改的对象?无论如何,您不必调整您的业务代码以使用新版本的 bean 吗?
-
您的问题标题正确吗?听起来您想生成 java 对象,而不是 java 类。
-
我想从 XML 文件创建 Java 类结构。 :)
-
@Nuno 此 XML 解析将成为大型 Web 应用程序的一部分,并且 XML 结构将来可能会发生变化。因此,为了避免重新部署整个 Web 应用程序,即使是很小的更改,我也在尝试这种方法。
标签: java xml reflection