使用XPATH映射JAXB生成的对象

时间:2011-12-26 10:10:07

标签: java xml jaxb

我想使用Xpath映射值,而不是使用JAXB直接访问Classname.methodname

例如:

客户/姓名

理想的jaxb:new Customer()。setName(“XXXX”);

而不是上面:xxxx.setValue(“customer / name”,“XXXXX”)应该自动设置Xpath的值。并在XML中生成。

在JAXB中是否有这样的规定。 (我在使用FieldDescriptors和ClassDescriptors的castor中知道这一点。)

3 个答案:

答案 0 :(得分:0)

据我所知,JAXB中没有规定这样做。它的主要目的是

Marshall和Unmarshall与Java对象的XML文档。

答案 1 :(得分:0)

如果我理解正确,JAXB与你想做的事情无关;如果您可以处理不是XPATH的表达式,请查看Apache Beanutils:特别是BeanUtils.setProperty(object, "customer.name", "XXXX")

答案 2 :(得分:0)

如果您希望使用其他技术,可以使用JXPath通过类似于xpaths的方式导航javabeans。您还可以使用JXPath通过信息弹出javabeans http://commons.apache.org/proper/commons-jxpath/

具体而言,当您提供工厂时,您可以创建对象。有几种情况不能得到任何支持,但只需稍加思考就可以实现自己的createPathAndSetValue扩展,它可以处理特定的谓词逻辑。 http://commons.apache.org/proper/commons-jxpath/users-guide.html#Creating_Objects