Mam problem z wykorzystaniem JAXB. Moje klasy Java zostały utworzone za pośrednictwem xjc (przy użyciu schematu xsd) i ma globalne powiązanie dla danych XML-Datatypes xs: date xs: dateTime i xs: time do java.util.Calendar z analizą składni i metodą drukowania.Java: JAXB: Marshelling z JAXBElement <Calendar> do xs: date not correct
Wszystko działa poprawnie, dopóki nie zaznaczyłem niektórych pól xs: data jako niepłatnych. Xjc tworzy wrappery JAXBElement dla tych właściwości. Jeśli te pola zostaną utracone, wydrukowana zostanie data, w tym informacja o czasie, która prowadzi do błędów sprawdzania poprawności.
Czy istnieje możliwość zmuszenia Marshalla do przekonwertowania go na xs: date zamiast xs: dateTime?
Czy mogę określić powiązanie dla tych pól, które otrzymują specjalną XMLAdapater ewhich konwertującą te pola?
Obiekt wewnątrz Java Klasy wygląda tak:
@XmlElementRef(name = "dateField", namespace = "namespace", type = JAXBElement.class)
protected JAXBElement<Calendar> dateField;
oraz odpowiadające im xsd-wygląda jak
<xs:element name="dateField" minOccurs="0" nillable="true" type="xs:date" />
Czy ktoś może mi pomóc proszę?
Dzięki i pozdrawiam,
Arne
Czy na pewno chcesz "nillable =" true "" w pierwszej kolejności? Czy nie możesz zamiast tego użyć elementu opcjonalnego? Nigdy nie widziałem takiej potrzeby ani nie czułem, że tęskniłem za tym. –