2010-05-06 135 views
1

是否有可能通过读取xml文件(最好在java中)动态创建类?如果是,请提供关于如何去做的指示。我们可以从xml文件创建一个类吗?

在开发过程中,我们想出了一个具有5个属性的类,所有这些属性都对应于xml文件中的一个条目,现在如果用户添加/修改xml条目,则必须与其对应的对象自动更改,一种方法是在编译之前生成源代码。是否有其他方法?

有什么常见的模式来模拟系统中的这些变化吗?

感谢,

回答

4

如果您的XML具有XML Schema,则有许多工具包可供使用。从JAX-B开始。

+0

感谢您的信息,我正在通过它。在整个文档完成之前,我有一个简单的问题:目前,我已经有了一个在整个模块中使用的静态类声明,JAX-B会为我做什么?它会用运行时生成的静态编译时间类替换静态编译时间类吗? 谢谢 – panzerschreck 2010-05-06 14:14:13

+0

您可以告诉JAXB从XSD生成一个Java源文件,或者反过来,或者您可以使用@annotations,直到它们聚合。 – bmargulies 2010-05-06 15:42:22

0

过程通常工作周围的其他方法(即定义一个类的属性,和序列化的类XML的一个实例)

如果你真的需要那样的灵活性,脚本语言会为您节省很多麻烦。

0

我认为JAX-B可以提供这样的功能。

0

如果你正在寻找字节码的生成,看看cglib,它是在Hibernate中使用的。

但也许一些注释也可以满足您的要求,就像Google Guice的依赖注入一样。

1

如果您将属性存储在HashMap中,那么您可以简单地解析XML并相应地设置属性。

1

假设您有一个XML模式(xsd),您可以将该模式提供给JAXB的xjc命令以生成Java类。 xjc包含在Java 6 JDK中。

相关问题