Я пытаюсь преобразовать xml в Java объекты, но получаю нулевые значения для
TelephoneNumberId и Native. Значения в xml показывают 2144844199 и «Y» соответственно. Но после получения java объектов я могу получить индекс, но не значение.
<TelephoneNumberList index="134">
<TelephoneNumber index="135">
<TelephoneNumberId index="136">2144844199</TelephoneNumberId>
<Native index="137">Y</Native>
<PortedType index="138">NONE</PortedType>
<Transfer index="139"/>
</TelephoneNumber>
</TelephoneNumberList>
@Getter
@Setter
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class TelephoneNumberList {
@XmlAttribute
protected String index;
@XmlElement(name="TelephoneNumber")
protected List<TelephoneNumber> telephoneNumber;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class TelephoneNumber {
@XmlAttribute
protected String index;
@XmlElement(name="TelephoneNumberId")
protected TelephoneNumberId telephoneNumberId;
@XmlElement(name="Native")
protected Native nativeValue;
@XmlElement(name="PortedType")
protected PortedType portedType;
@XmlElement(name="Transfer")
protected Transfer transfer;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class TelephoneNumberId {
@XmlAttribute
protected String index;
protected String value;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class Native {
@XmlAttribute
protected String index;
protected String value;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class PortedType {
@XmlAttribute
protected String index;
protected String value;
}
@Getter
@Setter
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
public class Transfer {
@XmlAttribute
protected String index;
}
TelephoneNumberList telephoneNumberList = OrderUtil.convertXmlStringToJavaObj(telephoneNumberListStr);
List<TelephoneNumber> telephoneNumbers = telephoneNumberList.getTelephoneNumber();
for (TelephoneNumber telephoneNumber : telephoneNumbers ) {
log.info(" telephoneNumber.getTelephoneNumberId() = " + telephoneNumber.getTelephoneNumberId().getValue() );
log.info(" telephoneNumber.native = " + telephoneNumber.getNativeValue().getValue() );
log.info("force = " + force);
}
При отладке я получаю нулевое значение или элемент Xml после демаршаллинга на java объекты.
Спасибо, Бандита Прадхан