3
jaxb (JAXB 2.1.10 - JDK 6)를 사용하여 마샬링하는 동안 루트 요소의 네임 스페이스를 동적으로 전달해야합니다. 나는 다른 네임 스페이스이지만 동일한 입력 XML로 정규화 된 다른 webservices를 호출하기 위해 genrated xml을 사용할 것이다. 여기 내 샘플 jaxb annotated class ..... 귀중한 정보를 안내해줍니다.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"는 다른 값으로 동적으로 전달해야한다.
입력 해 주셔서 감사합니다. 이제 jaxb의 QName 요소를 사용하여 동적으로 네임 스페이스를 전달할 수 있습니다. 동일한 marshaller.marshal (새로운 JAXBElement (새로운 QName (ns, "TaskRequest"), TaskRequest.class, 요청), System.out)에 대한 샘플 코드로 업데이트하면된다. – Venkat