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

JAXB绑定文件中的XPath求值导致目标节点为空

费凯康
2023-03-14

我试图通过外部jaxb绑定文件更改xsd元素名,但由于某些原因,全局绑定无法工作,Xpath无法找到该元素

我想更改的架构:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.sitels.ru/FORIS/IL/DomainModel" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.sitels.ru/FORIS/IL/DomainModel">
  <xs:complexType name="BaseDictionary">
    <xs:sequence>
      <xs:element minOccurs="0" name="Code" nillable="true" type="xs:string"/>
      <xs:element minOccurs="0" name="DateFrom" nillable="true" type="xs:dateTime"/>
      <xs:element minOccurs="0" name="DateTo" nillable="true" type="xs:dateTime"/>
      <xs:element minOccurs="0" name="Id" nillable="true" type="tns:UniqueIdentifier"/>
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="BaseDictionary" nillable="true" type="tns:BaseDictionary"/>
  <xs:complexType name="UniqueIdentifier">
    <xs:sequence>
      <xs:element minOccurs="0" name="EntityId" type="xs:long"/>
      <xs:element minOccurs="0" name="ForisId" type="xs:int"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="UniqueIdentifier" nillable="true" type="tns:UniqueIdentifier"/>
</xs:schema>

Jaxb绑定文件:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
               xmlns:xs="http://www.w3.org/2000/10/XMLSchema-instance"
               xs:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
               jaxb:version="2.1">

    <jaxb:bindings schemaLocation="DomainModel.xsd" node="//xs:schema//xs:element[@name='BaseDictionary']">
        <jaxb:class name="DomainBaseDictionary" />
    </jaxb:bindings>
</jaxb:bindings>

我在尝试编译时得到“//xs:schema//xs:element[@name='BaseDictionary']”的XPath计算结果,结果是空的目标节点

共有1个答案

贺季同
2023-03-14

xs:namespace前缀指的是两个文档中的不同名称空间。在xsd中,您有:

xmlns:xs="http://www.w3.org/2001/XMLSchema"

在绑定文件中,您有:

xmlns:xs="http://www.w3.org/2000/10/XMLSchema-instance"

所以xs:schema!=xs:schema。修复名称空间,或者编写xpath名称空间中性(/*[local-name()='schema']/*[local-name()='element'和@name='BaseDirectory']

 类似资料:
  • 我正试图从生成java类,但出现错误: “//xs:element[@name='RZECZ_REJESTRACJA']\xs:complexType/xs:choice\xs:sequencexs:element[@ref='NUMER_oznakowana']的XPath计算会导致太多(2)个目标节点 我的文件XSD-: 和我的不工作。:

  • 我试图为每种类型的元素制作一个适配器,所以我创建了一个bindings.xml文件: 所以,我的意图是解决“id”类型的每个属性。问题是xjc告诉我“太多的目标节点(3)”...但这正是我想要的!!

  • 我正在尝试创建一个通用的绑定文件,在多个项目中从WSDLs/XSD生成一致的Java类。我们通过(由@lexicore制作)生成代码。 问题在于多项目部分。如果特定的绑定指令与提供的XSD或WSDL中的任何内容都不匹配,则类生成失败 对“

  • 问题内容: 是否可以将JavaFX Slider的Double-Value绑定到Label?我想得到这样的东西: 谢谢您的帮助。 问题答案: 假设您有一个返回a 的属性访问器方法,则可以执行 如果要使用Formatting String格式化字符串 ,请执行以下操作

  • 我是Xpath的新手。 假设我有一个xml目录可以将商品导入电子商店: 目录的第一部分是商品类别列表,第二部分是商品列表。每种商品都有一个<代码> 从上面的代码中,我需要得到这样一个好的描述:类别:夹克;标签:D 标签、颜色和尺寸可直接从<代码> 所以我的目标是选择

  • 在本章中,我们将详细介绍XPath表达式,其中包括常见的节点类型,XPath定义和句柄。 序号 节点类型 描述 1 Root XML文档的根元素节点。 2 Element 元素节点。 3 Text 元素节点的文本。 4 Attribute 元素节点的属性。 5 Comment 注释