2013-11-09 66 views
3

我必須在使用jaxb(JAXB 2.1.10 - JDK 6)進行編組時動態地傳遞根元素的名稱空間。我將使用genrated xml來調用不同的名稱空間限定的不同的webservices,但輸入xml相同。 這裏是我的示例jaxb註釋類.....引導我與您的寶貴意見。JAXB動態地爲根元素提供名稱空間

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { 
    "taskName", 
    "taskType" 
}) 
@XmlRootElement(name = "TaskRequest", namespace = "ABC") 
public class TaskRequest { 

@XmlElement(name = "TaskName", required = true, namespace = "XYZ") 
protected String taskName; 
@XmlElement(name = "TaskType", required = true, namespace = "XYZ") 
protected String taskType; 

public String getTaskName() { 
    return taskName; 
} 

public void setTaskName(String value) { 
    this.taskName = value; 
} 

public String getTaskType() { 
    return taskType; 
} 

public void setTaskType(String value) { 
    this.taskType = value; 
} 

}

命名空間 「ABC」 需要用不同的值動態傳遞。

回答

2

您可以將根對象包裝在JAXBElement的實例中以提供備用名稱和命名空間信息。

+1

感謝您的輸入。現在我可以在jaxb中的QName元素的幫助下動態地傳遞名稱空間。 (新的JAXBElement(新的QName(ns,「TaskRequest」),TaskRequest.class,request),System.out);示例代碼更新爲相同的marshaller.marshal – Venkat

相關問題