首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用外部绑定文件(XJB)更改XMLGregorianCalendar日期

使用外部绑定文件(XJB)更改XMLGregorianCalendar日期
EN

Stack Overflow用户
提问于 2017-03-28 15:40:34
回答 1查看 2K关注 0票数 1

在我的maven项目中,我希望所有的datetime条目都应该以java.util.date而不是XMLGregorianCalendar的形式生成。您可能知道,默认情况下会生成XMLGregorianCalendar

我们可以以提供这里的项目为例。

在CustomersOrders.xsd中,您可以看到attriute ShippedDatedateTime类型的。

代码语言:javascript
复制
<xs:attribute name='ShippedDate' type='xs:dateTime' />

要将其数据类型转换为java.util.date,我将遵循文档这里中提供的方法。例如,通过使用外部绑定文件,例如:

Customer.xjb

代码语言:javascript
复制
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <globalBindings>
    <javaType name="java.util.date" xmlType="xs:datetime"
      parseMethod="javax.xml.bind.DatatypeConverter.parseDate"
      printMethod="javax.xml.bind.DatatypeConverter.printDate"
    />
  </globalBindings>
</bindings>

然后我将Customer.xjb文件映射到pom.xml中,如下所示:

代码语言:javascript
复制
<executions>
    <execution>
        <goals>
            <goal>generate</goal>
        </goals>
        <configuration>
            <!-- the package for the generated java classes -->
            <generatePackage>com.dimitrisli.jaxb.producedClasses</generatePackage>
            <!-- If the following not specified all xsd in resources are included -->
            <schemaIncludes>
                <include>sampleJaxb/CustomersOrders.xsd</include>
            </schemaIncludes>
            <!-- if you don't want old output -->
            <removeOldOutput>true</removeOldOutput>
            <!-- if you want verbosity -->
            <!-- verbose>true</verbose -->

            <xjbSources>
                <xjbSource>sampleJaxb/Customers.xjb</xjbSource>
            </xjbSources>

        </configuration>


    </execution>
</executions>

但是,当我执行mvn clean install时,我仍然无法看到ShippedDate中的任何不同之处,它仍然是作为XMLGregorianCalendar生成的。

请给我建议一下我遗漏了什么。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 16:36:51

  1. 如果您使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin,那么您应该使用bindingIncludes而不是xjbSources (用于org.codehaus.mojo:jaxb2-maven-plugin)。 sampleJaxb/Customers.xjb `
  2. 此外,您还必须为java.util.Date实现一个自定义适配器,就像在本教程中看到的那样,或者转换为java.util.Calendar

希望能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43073978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档