Проблемы с сопоставлением XmlPath с использованием eclipselink MOXy

Я не понимаю, почему сопоставления XmlPath, которые я сделал ниже, получаются нулевыми. Что-то не так с моим синтаксисом? Я без проблем использовал аналогичный синтаксис в другом месте.

Спасибо за любые подсказки .. Джон

<clip lane="-1" offset="2591065664/720000s" name="Music" duration="22304160/240000s" start="176794/48000s" enabled="0" format="r5">
    <adjust-volume amount="1dB">
      <param name="amount">
        <fadeIn type="easeIn" duration="1220/262144s"/>
      </param>
    </adjust-volume>
    <audio ref="r9" name="VoiceOver-26 - audio" duration="4639346/48000s" role="dialogue"/>
</clip>

@XmlRootElement(name = "clip")
@XmlAccessorType(XmlAccessType.FIELD)
public class Clip extends StoryElement {

@XmlPath("adjust-volume/@amount")
@XmlJavaTypeAdapter(DecibelValueAdapter.class)
private Double adjustVolume;

@XmlPath("adjust-volume/param[@name='amount']/fadeIn/@duration")
@XmlJavaTypeAdapter(TimeValueAdapter.class)
private TimeValue fadeIn;

@XmlPath("adjust-volume/param[@name='amount']/fadeOut/@duration")
@XmlJavaTypeAdapter(TimeValueAdapter.class)
private TimeValue fadeOut;

person John Baker    schedule 13.08.2012    source источник


Ответы (1)


person    schedule
comment
Спасибо за столь быстрый ответ и тестирование. Я попытался переназначить по-другому, используя новый класс для AdjustVolume, и теперь он подхватывает этот элемент. Оказывается, мой DecibelValueAdapter вызывает проблемы, но молча терпит неудачу. Когда это простое строковое значение, оно появляется. Я подозреваю, что синтаксический анализатор предполагает, что сбои означают, что значение вообще отсутствует. Это поведение по умолчанию? Я не видел никаких предупреждений. - person John Baker; 14.08.2012
comment
@JohnBaker - по умолчанию включен солдат. Основываясь на опыте группы пользователей JSR-222, мы решили, что сбой в документе всего, что не соответствует сопоставлениям, сделает JAXB непригодным для использования. Вы можете установить экземпляр ValidationEventHandler как на Marshaller, так и на Unmarshaller, чтобы обрабатывать возникающие сбои. - person bdoughan; 14.08.2012
comment
Если я обновлю версию выше 2.4.1, следующее сопоставление перестанет работать - будет нулевым. Любые идеи? @XmlPath (параметр [имя = 'количество']) - person John Baker; 14.04.2015