如何用JAXB绑定重写xs:element类型?

时间:2019-05-28 10:42:46

标签: java xml xsd jaxb

我正在从Web服务接收xsd文件。对于一个元素,xsd定义了一个xs:date,但实际上Web服务返回的时间戳类似于2019-10-19 12:00:00

由于我无法控制xsd,因此我想编写一个jaxb映射文件,该文件将元素类型转换为String而不是Date。这样我就不必修改xsd(就像在下一个Web服务更新中一样,否则我必须记住我的手动修改)。

但是如何?

xsd:

<xs:complexType name="Person">
    <xs:element name="TicketTime" type=xs:date"/>
</xs:complexType>

jaxbbinding.xml:

<jaxb:bindings    
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    jaxb:version="2.1">

    <jaxb:bindings schemaLocation="xsd/my.xsd">
        <jaxb:bindings node="//xs:complexType[@name='Person']//xs:element[@name='TicketTime']">
           <!-- TOOD how to rewrite xs:date to xs:string? -->
        </jaxb:bindings>
    </jaxb:bindings>
</jaxb:bindings>

0 个答案:

没有答案