【问题标题】:JAXB Custom Binding for Untyped Element?无类型元素的 JAXB 自定义绑定?
【发布时间】:2013-02-12 22:35:11
【问题描述】:

对于我无法控制的 SOAP 服务,我有一个非常大且复杂的 XSD。有几个元素总是包含未键入的字符串数据。通常,这些是非常嵌套的元素。

例如

...
  <xs:complexType>
      <xs:sequence>
          <xs:element name="foo"/>
          <xs:element name="bar"/>
      </xs:sequence>
  </xs:complexType>
...

有没有办法告诉 JAXB 始终将无类型元素(例如上面的 foobar)绑定到 java.lang.String

我知道我可以使用 XPath 查询字符串单独调用这些异常,但是是否有一个唯一的方法?

【问题讨论】:

  • 绑定文件使用的 XPath 实现有多完善?是否能够处理//xs:element[not(@type)][not(xs:simpleType)][not(xs:complexType)] 之类的表达式
  • 请把它写下来作为答案。我认为这适用于 XJB 自定义绑定节点路径。

标签: java xml soap xsd jaxb


【解决方案1】:

在外部绑定文件中的 XPath 表达式,如

//xs:element[not(@type)][not(xs:simpleType)][not(xs:complexType)]

将匹配任何此类元素(假设 XJC 具有完整的 XPath 支持,而不仅仅是语言的子集)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多