kullanma JAXB/XJC JDK 1.7 (bin \ xjc.exe) İşteJAXB/XJC JAXBElement <String> ziyade üretir sadece dize (boş durumda idare)
benim XSD bir snipped oluyor sevk:
<xs:complexType name="NameType">
<xs:sequence>
<xs:element name="Surname" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1"/>
<xs:element name="Firstname" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1"/>
<xs:element name="Middlename" type="xs:string" nillable="true" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
sınıfı oluşturulan gösterir:
@XmlElementRef(name = "Surname", type = JAXBElement.class, required = false)
protected JAXBElement<String> surname;
public JAXBElement<String> getSurname() {
return surname;
}
public void setSurname(JAXBElement<String> value) {
this.surname = value;
}
JAXB boş sağlamak için JAXBElement kullanıyor anlıyorum ama bu bir dize null ayarlanabilir olarak şey ilan etmesinden bu yana hiçbir mantıklı.
Ve XSD'yi değiştirme seçeneğim yok, çünkü istemcim üretimde mevcut XSD'yi bırakmak istiyor.
Soru: oluşturmak için kod jeneratör değiştirebilir miyim:
@XmlElementRef(name = "Surname", type = String.class, required = false)
protected String surname;
public String getSurname() {
return surname;
}
public void setSurname(String value) {
this.surname = value;
}
Teşekkür Joel
teşekkür ederiz. Bu işe görünüyor. Başka sorunlar varsa cevap vereceğim. – joellucuik
Yorumunuz için çok teşekkürler, bir çözüm bulmaya çalışmaktan birkaç gün sonra sorunu gerçekten çözdüm! – Dmitriy