【问题标题】:JAXB different datatypes parsing per namespace每个命名空间解析 JAXB 不同的数据类型
【发布时间】:2022-10-14 13:08:34
【问题描述】:

我有这样的 JAXB 绑定配置文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
               xmlns:xs="http://www.w3.org/2001/XMLSchema"
               version="2.1">
    <jaxb:globalBindings generateElementProperty="false">
        <jaxb:javaType name="java.util.Date" xmlType="xs:dateTime"
                       parseMethod="com.utils.EmptyDateTimeAdapter.parseDateTime"
                       printMethod="com.utils.EmptyDateTimeAdapter.printDateTimeWithZone"/>
        <xjc:serializable uid="-1"/>
    </jaxb:globalBindings>
</jaxb:bindings>

在上面的xml中我声明了每一个wsdl dateTime 元素将被这些方法解析。

我的问题是: 如何更改此 JAXB 配置文件以为每个包名称或每个 wsdl 的元素类型指定多个解析方法?

【问题讨论】:

    标签: java spring jaxb marshalling


    【解决方案1】:
    <jaxws:bindings wsdlLocation="SampleService.wsdl"          
        xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"          
        xmlns:xs="http://www.w3.org/2001/XMLSchema"          
        xmlns:jxb="http://java.sun.com/xml/ns/jaxb"          
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">  
        <jaxws:bindings  node="wsdl:definitions/wsdl:types/xs:schema[@targetNamespace='http://example.com/service/SampleService/']">      
            <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">        
            <jxb:javaType name="java.util.Date" xmlType="xs:date" 
                          parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
                          printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>                   
        </jxb:globalBindings>  
        </jaxws:bindings>
    </jaxws:bindings>
    

    参考 : JBoss Community Archive (Read Only)

    JAXB bindings and xs:date to java.util.Date

    Custom Jax-b bindings for xs:date to JAVA 8 java.time.LocalDate using Adapter

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 1970-01-01
      • 2019-12-23
      • 2015-04-13
      • 2012-09-28
      • 1970-01-01
      • 2018-01-17
      • 2022-12-31
      • 2023-03-03
      相关资源
      最近更新 更多