当前位置: 首页 > 知识库问答 >
问题:

jaxb bindingx。xml“导致目标节点过多”

邰建业
2023-03-14

我正试图从wsdl生成java类,但出现错误:

“//xs:element[@name='RZECZ_REJESTRACJA']\xs:complexType/xs:choice\xs:sequencexs:element[@ref='NUMER_oznakowana']的XPath计算会导致太多(2)个目标节点

我的文件XSD-kcik_rejestracja_przedmiotu.xsd

<xs:element name="RZECZ_REJESTRACJA">
<xs:complexType>
  <xs:choice>
    <xs:sequence>
      <xs:element ref="NUMER_FABRYCZNY"/>
      <xs:element minOccurs="0" ref="NUMER_OZNAKOWANIA"/>
      <xs:element ref="MARKA_RZECZY"/>
      <xs:element minOccurs="0" ref="TYP_RZECZY"/>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>
    <xs:sequence>
      <xs:element ref="NUMER_OZNAKOWANIA"/>
      <xs:element ref="MARKA_RZECZY"/>
      <xs:element minOccurs="0" ref="TYP_RZECZY"/>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>
  </xs:choice>
</xs:complexType>

和我的jaxb-bindings.xml不工作。:

  <bindings schemaLocation="wsdl/SOAComponents/ApplicationObjectLibrary/KCIK/Service/schemas/kcik_rejestracja_przedmiotu.xsd">
  <bindings node="//xs:element[@name='RZECZ_REJESTRACJA']/xs:complexType/xs:choice/xs:sequence">
      <bindings node=".//xs:element[@ref='NUMER_OZNAKOWANIA']">
            <property name="NumerOznakowaniaAttr"/>
      </bindings>
  </bindings>

共有2个答案

毋修为
2023-03-14

你的XSD应该重写如下

 <xs:element name="RZECZ_REJESTRACJA">
<xs:complexType>
  <xs:choice>
    <xs:sequence>
      <xs:element ref="NUMER_FABRYCZNY"/>
      <xs:sequence minOccurs="0">
         <xs:element  ref="NUMER_OZNAKOWANIA"/>
      </xs:sequence/
      <xs:element ref="MARKA_RZECZY"/>
      <xs:sequence minOccurs="0">
         <xs:element ref="TYP_RZECZY"/>
      </xs:sequence>
      <xs:element ref="RODZAJ_RZECZY"/>
    </xs:sequence>     
  </xs:choice>
</xs:complexType>
张毅
2023-03-14

您可以使用这个绑定文件

<bindings node="//xs:element[@name='RZECZ_REJESTRACJA']/xs:complexType/xs:choice/xs:sequence[1]">
      <bindings node=".//xs:element[@ref='NUMER_OZNAKOWANIA']">
            <property name="NumerOznakowaniaAttr"/>
      </bindings>
</bindings>
 类似资料:
  • 我试图为每种类型的元素制作一个适配器,所以我创建了一个bindings.xml文件: 所以,我的意图是解决“id”类型的每个属性。问题是xjc告诉我“太多的目标节点(3)”...但这正是我想要的!!

  • 我试图通过外部jaxb绑定文件更改xsd元素名,但由于某些原因,全局绑定无法工作,Xpath无法找到该元素 我想更改的架构: Jaxb绑定文件: 我在尝试编译时得到“//xs:schema//xs:element[@name='BaseDictionary']”的XPath计算结果,结果是空的目标节点

  • 在本章中,我们将学习XML DOM节点。 每个XML DOM都包含称为节点的分层单元信息,DOM描述了这些节点以及它们之间的关系。 节点类型 以下图显示了所有节点类型 - XML中最常见的节点类型是 - 文档节点(Document Node) - 完整的XML文档结构是文档节点。 元素节点(Element Node) - 每个XML元素都是一个元素节点,它也是唯一可以拥有属性的节点类型。 属性节点

  • 我的XML 我所拥有的。。 //移动到父节点以遍历其余项} 我想要的是到达“cd”节点。 在一些示例中,我看到了VTDNav。下一个_子节点似乎不可用。有人能建议如何到达我需要的节点吗?目前,我正在设法通过到达第一个_子节点,然后移动到下一个兄弟节点来实现这一点 谢谢你的帮助 当做

  • 在本章中,我们将学习XML DOM节点树。 在XML文档中,信息以层次结构组织和维护; 这种分层结构称为节点树。 此层次结构允许开发人员在树周围导航以查找特定信息,从而允许节点访问。 然后可以更新这些节点的内容。 节点树的结构以根元素开始,并扩展到子元素,直到最低级别。 示例 下面的示例演示了一个简单的XML文档,结构树的结构如下图所示 - 从以上示例中可以看出,用图形表示(DOM)如下所示 -

  • 给定以下代码: 但是,上面的方法有效,并允许我遍历我的列: