由于@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而不是创建动态的属性映射,那么这将是非常有用的,因此问题。