UPDATE
Проблема, с которой вы сталкиваетесь, связана с вложением содержимого в элемент NameAndAddress
. Вы можете ввести класс NameAndAddress
, в котором PackageLabel
содержит экземпляр этого класса.
PackageLabel
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="PackageLabel")
@XmlAccessorType(XmlAccessType.FIELD)
public class PackageLabel implements Serializable {
@XmlElement(name="NameAndAddress")
private NameAndAddress nameAndAddress;
}
NameAndAddress
import javax.xml.bind.annotation.XmlElement;
public class NameAndAddress {
@XmlElement(name="Name")
private String name;
@XmlElement(name="Address1")
private String address1;
@XmlElement(name="Address2")
private String address2;
@XmlElement(name="City")
private String city;
@XmlElement(name="State")
private String state;
@XmlElement(name="ZipCode")
private String zipCode;
}
Расширение @XmlPath EclipseLink JAXB (MOXy)
В качестве альтернативы вы можете использовать расширение @XmlPath
в EclipseLink JAXB (MOXy) :
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement(name="PackageLabel")
@XmlAccessorType(XmlAccessType.FIELD)
public class PackageLabel implements Serializable {
@XmlPath("NameAndAddress/Name/text()")
private String name;
@XmlPath("NameAndAddress/Address1/text()")
private String address1;
@XmlPath("NameAndAddress/Address2/text()")
private String address2;
@XmlPath("NameAndAddress/City/text()")
private String city;
@XmlPath("NameAndAddress/State/text()")
private String state;
@XmlPath("NameAndAddress/ZipCode/text()")
private String zipCode;
}
Для получения дополнительной информации
<Ч />
Вы можете установить схему XML для экземпляра Unmarshaller. Это заставит JAXB проверять ввод, в то время как он преобразовывает XML в объекты:
Если вы хотите сгенерировать объектную модель из схемы XML, вы также можете использовать JAXB для этого: