Java 非类型化元素的JAXB自定义绑定?

Java 非类型化元素的JAXB自定义绑定?,java,xml,soap,xsd,jaxb,Java,Xml,Soap,Xsd,Jaxb,对于SOAP服务,我有一个非常大和复杂的XSD,我不控制它。有几个元素始终包含未键入的字符串数据。通常,这些是嵌套非常深的元素 比如说 ... <xs:complexType> <xs:sequence> <xs:element name="foo"/> <xs:element name="bar"/> </xs:sequence> </xs:complexT

对于SOAP服务,我有一个非常大和复杂的XSD,我不控制它。有几个元素始终包含未键入的字符串数据。通常,这些是嵌套非常深的元素

比如说

...
  <xs:complexType>
      <xs:sequence>
          <xs:element name="foo"/>
          <xs:element name="bar"/>
      </xs:sequence>
  </xs:complexType>
...
。。。
...
有没有办法告诉JAXB总是将非类型化元素(如上面的
foo
bar
)绑定到
java.lang.String


我知道我可以使用XPath查询字符串单独调用这些异常,但是否有一行代码可以实现这一点?

在外部绑定文件中使用类似XPath的表达式

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

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

绑定文件使用的XPath实现有多完整?它能处理像
//xs:element[not(@type)][not(xs:simpleType)][not(xs:complexType)]这样的表达式吗?
请写下来作为答案。我认为这对于XJB自定义绑定节点路径是可行的。