Как переписать тип элемента xs: с привязками JAXB? - PullRequest
0 голосов
/ 28 мая 2019

Я получаю файл xsd от веб-службы.Для одного элемента xsd определяет xs:date, но на самом деле веб-служба возвращает временную метку, такую ​​как 2019-10-19 12:00:00.

. Поскольку я не могу контролировать xsd, я хотел бы написать файл отображения jaxbкоторый преобразует тип элемента в String вместо даты.Чтобы мне не нужно было изменять xsd (как и при следующем обновлении веб-службы, в противном случае мне пришлось бы помнить мою ручную модификацию).

Но как ??

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>
...