JAXB tarafından oluşturulan bir grup dersim var ve bazı sınıflar parametre olarak "Object" kabul eden setter yöntemlerine sahiptir. Örneğin:Nasıl xmlns kaldırılır: xsi ve xsi: JAXB'den türetilmiş XML dosyası
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name="Car", propOrder = {
"defaultCar"
}
public class Car {
@XmlElement(name = "DefaultCar")
protected Object defaultcar;
public void setDefaultCar(Object value) {
this.defaultCar = value;
}
benim kodunda bu sınıfların örneklerini oluşturduktan sonra, ben gerekli değeri geçen setter yöntemleri çağırmak. Yöntemin parametresi Object olsa da, değerler büyük olasılıkla dizgilerdir (nasıl tanımlandığı konusunda hiçbir kontrole sahip değilim). Ancak, işleri tutarlı tutmak için dizeyi Object'e gönderirim, böylece yöntemin parametre türüyle eşleşir. Kod şöyle görünür:
Object value = "Old Banger";
Method method = aCar.getClass().getMethod("setDefaultCar", Object.class);
method.invoke(aCar, value);
Ben Marshall Java nesneleri, sadece dizesinin değeri önünde çıkan XML Aşağıdaki olsun: Ben ettik
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string"
Yöntemin parametre türü ile ona geçirilen veriler arasında eşleşmeyen veri türleri hakkında bir şeyler okuyun. Benim durumumda, yöntem parametresi "Object" olmakla birlikte, ona bir dize iletiyorum (Object'e yazdığım halde). Ben de bu yazıyı gördüm ve bu benim soruna benzer:
"xsi:type" and "xmlns:xsi" in generated xml by JAXB
Ancak, benim sorunun üstesinden gelmek yardımcı olmuyor. Xmlns: xsi ve xsi: type için bu referansları kaldırmanın bir yolu var mı?
Thx
'Car' sınıfı neye benziyor. – lexicore
Lütfen sorunuzunuzu düzenleyin. – lexicore