Похоже, что есть известная проблема. Однако я попытался сгенерировать в соответствии с вашей XML-структурой. Найдите ниже код. Существует небольшая проблема, вы можете узнать больше об этом.
import com.fasterxml.jackson.xml.annotate.JacksonXmlProperty;
import com.fasterxml.jackson.xml.annotate.JacksonXmlRootElement;
@JacksonXmlRootElement(localName = "NewStatus")
public class NewStatus {
@JacksonXmlProperty(isAttribute = true)
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
import com.fasterxml.jackson.xml.annotate.JacksonXmlProperty;
import org.codehaus.jackson.annotate.JsonIgnore;
public class Test {
@JacksonXmlProperty(isAttribute = true, localName = "NewStatus")
private String statusAttribute;
@JacksonXmlProperty(localName = "NewStatus")
@JsonIgnore
private NewStatus newStatus;
public String getStatusAttribute() {
return statusAttribute;
}
public void setStatusAttribute(String statusAttribute) {
this.statusAttribute = statusAttribute;
}
public NewStatus getNewStatus() {
return newStatus;
}
public void setNewStatus(NewStatus newStatus) {
this.newStatus = newStatus;
}
}
Тестовый код для проверки.
import com.fasterxml.jackson.xml.XmlMapper;
import java.io.IOException;
public class Test1 {
public static void main(String[] args) throws IOException {
final XmlMapper xmlMapper = new XmlMapper();
NewStatus newStatus = new NewStatus();
newStatus.setDescription("TestDesc");
Test test = new Test();
test.setNewStatus(newStatus);
test.setStatusAttribute("1111111");
String xmlStr = xmlMapper.writeValueAsString(test);
System.out.println(xmlStr);
}
}
Сгенерированный xml выглядит следующим образом.
<Test NewStatus="1111111"><newStatus description="TestDesc"/></Test>
Если вы посмотрите внимательно, <newStatus ...>
идет по-другому, несмотря на некоторые усилия. Это небольшая проблема. Либо вы можете изменить имя тега и имя переменной соответственно.
Кроме того, я добавил следующие зависимости в мой файл maven pom.xml.
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>jackson-xml-databind</artifactId>
<version>0.6.2</version>
</dependency>
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>woodstox-core-asl</artifactId>
<version>4.1.4</version>
</dependency>
Надеюсь, этот пост будет вам полезен.