从XML文档动态生成Java类

考虑这种情况:我有一个名为person.xml的 XML文件,其中包含以下数据.

<person>
    <name>MrFoo</name>
    <age>28</age>
</person>

如果我想将这个XML读入Java对象,我将创建一个名为PersonBean的Java bean(使用属性的getter / setter):

class Person{
    String name;
    int age;
}

我可以使用任何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>

是否可以读取PersonStructure.XML文件并将其转换为Person.java类文件?我正在尝试做的方法是正确的还是还有其他方法可以做同样的事情吗?

解决方法

虽然这不是您想要做的,但您应该看一下JAXB.它可以从Schema定义生成一组java类.您的PersonStructure.xml文件看起来有点像具有不同语法的XSD,因此您可以重用JAXB.

https://jaxb.dev.java.net/

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念