【问题标题】:EclipseLink MOXy @XmlPath support for predicate inequalityEclipseLink MOXy @XmlPath 支持谓词不等式
【发布时间】:2012-02-02 11:56:01
【问题描述】:

之前发过EclipseLink MOXy @XmlPath support for axes/parent

我仍在使用 @XmlPath 注释,但在我看来,不支持谓词不等式?

@XmlPath("node[@attr != 'a']")

对我来说也有效的是检查属性的存在

@XmlPath("node[@x]")

或者更好的是,它不存在

@XmlPath("node[not(@x)]")

引入这些功能需要付出高昂的代价吗?我习惯于使用整个 XPath 特性数组。 MOXy 为我提供了一些很棒的功能,我非常感谢,但在这方面它似乎有点不灵活。

【问题讨论】:

    标签: xpath jaxb eclipselink moxy


    【解决方案1】:

    注意:我是EclipseLink JAXB (MOXy) 的负责人,也是JAXB 2 (JSR-222) 专家组的成员。

    MOXy 目前支持:

    • @XmlPath("node[@x='foo']")

    但不是:

    • @XmlPath("node[@x!='foo']")
    • @XmlPath("node[@x]")
    • @XmlPath("node[not(@x)]")

    背景

    MOXy 目前对编组和解组使用相同的 XPath。每个不受支持的 XPath 在解组方面的含义是 100% 清楚的,在编组方面则不太清楚(但可能并非无法解决)。

    行动项目

    请输入此功能的增强请求(指定 MOXy 作为组件)。外部用户输入的错误在我们的积压工作中优先考虑。

    更多信息

    【讨论】:

    • 关于编组,我明白你的意思,这些谓词不能用于创建 XML,我看到的唯一选择是忽略那些用于编组的谓词。我确定 node[(@a='1') and (@b!='2')] 现在不支持,但如果支持,编组需要了解 (@b!='2') 谓词不可逆,因此应使用 node[@a='1']
    • 还有一件事,我使用 MOXy 允许更灵活地解析架构不受我控制的 XML。我会说它是需要基于 XPath 的映射的最常见用例,而不是更常见的 JAXB 编组和解组对象的用例。不确定我是否代表大多数人,但需要考虑:)
    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多