2011-11-05 20 views
6

Bir XML öğesinin adını ayarlamak için şu gibi ek açıklamalar kullanın:JAXB: Java kodundan XML Elementinin ismini değiştirir misiniz?

@XmlElement(name = "customer_id") 
public String getId(){} 

İki farklı web servisiyle iletişim kurmam gerekiyor. Biri customer_id adında bir id öğesi çıkarır, ancak diğeri id olarak adlandırılacak id öğesini çıkarır. Aynı özniteliklere sahip ikinci bir Customer sınıfı oluşturarak sorunu çözdüm. Farklı olan tek şey şu

@XmlElement(name = "id") 
public String getId(){} 

ek açıklamalarını kullanmasıdır ve Customer1'den Customer2'ye tüm nitelikleri kopyalayan bir kopya kurucusuna sahiptir. İlk web servisiyle iletişim kurduğumda bir Customer1 nesnesi gönderirim ve diğer webservis bir Customer2 nesnesini alır.

Sadece bir Customer nesnesini kullanmanın bir yolu var mı, ancak xsx26 özniteliğini web servisinin ne beklediği konusunda yeniden adlandırmak mümkün mü?

cevap

5

Not: Ben EclipseLink JAXB (MOXy) kurşun ve JAXB 2 (JSR-222) uzman grubunun bir üyesiyim.

Nesne modelinize ikinci bir eşleme uygulamak için dış eşleme belge uzantısını MOXy JAXB'de kullanabilirsiniz. Bu eşleme belgesi, ek açıklamalar yoluyla sağlanan meta verileri değiştirmek veya tamamen değiştirmek için kullanılabilir.