Vee*_*era 4 java xml reflection
考虑这种情况:我有一个名为person.xml的XML文件,其中包含以下数据.
<person>
<name>MrFoo</name>
<age>28</age>
</person>
Run Code Online (Sandbox Code Playgroud)
如果我想将这个XML读入Java对象,我将创建一个名为PersonBean的Java bean(使用属性的getter/setter):
class Person{
String name;
int age;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用任何API来读取XML并填充Java Bean.
但真正的问题是,假设XML文件的结构发生了变化,即如果将新属性"email"添加到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>
Run Code Online (Sandbox Code Playgroud)
是否可以读取PersonStructure.XML文件并将其转换为Person.Java类文件?我正在尝试做的方法是正确的还是还有其他方法可以做同样的事情吗?
虽然这不是您想要做的,但您应该看一下JAXB.它可以从Schema定义生成一组Java类.您的PersonStructure.xml文件看起来有点像具有不同语法的XSD,因此您可以重用JAXB.