使用XPath进行MOXy JAXB动态绑定

时间:2014-11-25 12:27:49

标签: java xml xpath jaxb moxy

由于@XmlPath注释,我一直在寻找MOXy JAXB实现。基本上我有一个大的XML模式,我实际上需要通过XPath获得20/30的值。使用实际的XPath非常慢(我在大量数据管道上实时高度线程化)因此MOXy非常适合这种情况。 但这确实意味着需要编码来修改我在解析时提取的XPath。

我知道MOXy会进行动态绑定,但我无法找到有关是否可以使用这些绑定复制相同XPath功能的任何信息。任何人都知道这是否可行,或者我是否需要坚持使用带注释的类?

例如,我可能会有几个这样的类:

public class Request {

  @XmlPath("a/b/c/@id")
  String id;

  @XmlPath("a/b/c/listitems")
  Listitem[] listitems;
  //getters, setters, etc...

}

public class Listitem {

  @XmlPath("x/y/z/@id")
  String id;

  @XmlPath("x/y/z/text()")
  String text;
  //getters, setters, etc...

}

理想情况下,我喜欢我的系统用户,他们对Java一无所知但知道XML和XPath在配置文件中配置这些XPath,并且能够提取新字段x / y / z / @例如newAttribute,无需更改任何代码。

我可以解释如何编辑Java版本并添加类等...但是如果有一种方法可以在配置文件中使用XPath而不是创建动态的属性映射,那么这将是非常有用的,因此问题。

0 个答案:

没有答案