当前位置: 首页 > 面试题库 >

JAXB绑定文件:XmlAdapters和包名称

劳豪
2023-03-14
问题内容

我有一个这样的绑定文件

<jxb:bindings version="2.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <jxb:bindings schemaLocation="example.xsd" node="/xs:schema">
    <jxb:schemaBindings>
        <jxb:package name="example" />
    </jxb:schemaBindings>
    <jxb:globalBindings>
        <jxb:javaType name="java.util.Calendar" xmlType="xs:dateTime"
            parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
            printMethod="javax.xml.bind.DatatypeConverter.printDateTime" />
        <jxb:javaType name="java.util.Calendar" xmlType="xs:date"
            parseMethod="javax.xml.bind.DatatypeConverter.parseDate"
            printMethod="javax.xml.bind.DatatypeConverter.printDate" />
        <jxb:javaType name="java.util.Calendar" xmlType="xs:time"
            parseMethod="javax.xml.bind.DatatypeConverter.parseTime"
            printMethod="javax.xml.bind.DatatypeConverter.printTime" />
    </jxb:globalBindings>

  </jxb:bindings>
</jxb:bindings>

模式类在“示例”(正确)中生成,而XmlAdapters在“ org.w3._2001.xmlschema”中(错误)。我怎样才能解决这个问题?


问题答案:

我也有这个问题,使用this解决了。

基本前提是您在XJC编译中包括一个具有以下内容的模式:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.w3.org/2001/XMLSchema"
  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
  jaxb:version="2.0">
  <annotation><appinfo>
    <jaxb:schemaBindings>
      <jaxb:package name="org.acme.foo"/>
    </jaxb:schemaBindings>
  </appinfo></annotation>
</schema>

然后,将软件包名称调整为要放置生成的适配器的位置。XJC会相信此模式是W3C XML Schema本身的模式集的一部分,并将遵守其中的绑定。



 类似资料:
  • 问题内容: 我有一个这样的架构层次结构: 一个文件夹中的所有文件都具有相同的命名空间。 现在,我想将名称空间映射到特定的Java包(我不能更改名称空间)。 我找到了将架构绑定到程序包的解决方案。但是然后我必须为每个xsd文件创建一个条目: 有没有一种方法可以直接定义名称空间和程序包名称之间的绑定? 另一种方法是在maven中定义包: 但是然后我必须为每个文件夹创建一个执行,这并不是我真正想要的。

  • 问题内容: 我有一个Json响应,如下所示: 我不知道参数的名称和数量。因此,我需要并且想要将所有这些参数绑定到由<“ paramX”,“ valueX”>元组组成的java.util.Map字段。为此,我尝试了以下代码,但“ parametersMap”字段返回null。 如何使用JAXB批注实现这种绑定? 提前致谢。 问题答案: 基本上,您需要一个xml适配器。您可以摆弄KeyValue类上的

  • 我正在使用来自第三方系统的一组DTD。我们的目标是将XML请求(符合这些DTD的请求映射到java中,然后将XML响应发送回系统)。 DTD是一成不变的(我无法控制更改它们)。 因此,为了进行映射,我使用XMLSpy将dtd转换为XML Schemas (xsd ),然后使用XJC编译器创建Jaxb绑定类。我用的是Java 7。 问题是,DTD 实际上没有命名空间。我有20个不同的DTD。10 表

  • 我将IntelliJ IDEA作为jar文件构建在javaFX应用程序中。使用“Project Structure>>Artifacts>>>+JavaFX Application”,我可以构建。app、.dmg、.pkg、.exe,并包含JRE。但我需要构建相同的文件没有JRE捆绑。当然,我可以使用JAR,但我想做我自己的图标,也许安装程序。 我还尝试从jar创建.app文件夹,以手动执行它“j

  • 问题内容: 我对JAXB为XML模式生成绑定类的方式有疑问(为了精确起见,我无法对其进行修改)。我想将xsd:date类型映射到Joda-time LocalDate对象,并在此处,阅读,我创建了以下DateAdapter类: 然后将以下内容添加到我的全局绑定文件中: 问题是,当我尝试进行项目编译时,它失败并显示以下错误: …这就是事情变得奇怪的地方。JAXB生成一个包含以下内容的类Adapter

  • 问题内容: 我有以下xml格式,我想通过POJO并使用JAXB批注将其绑定。XML格式如下: 我正在尝试通过以下POJO绑定数据: 我也尝试和这个POJO: // 在第一种情况下,它仅检索第一个数据:apple。在第二种情况下,不会检索任何内容。有人可以帮助我提供适当的POJO和注释以绑定所有数据吗? 问题答案: 您可以执行以下选项之一: 选项1 资料 想要查询更多的信息 http://blog.