请任何人帮帮我。如何使用JAXB注释为该xml编写Pojo类。以下是示例代码:
`<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ERRORFILE xmlns="http://www.corelogic.com/fps/Returned_error">
<ERROR_LIST listCount="2">
<ERROR>
<ERROR_CODE>11</ERROR_CODE>
<ERROR_MSG>sad</ERROR_MSG>
<ACTUAL_HEADER_COUNT>2</ACTUAL_HEADER_COUNT>
<EXPECTED_HEADER_COUNT>3</EXPECTED_HEADER_COUNT>
<REC_NUMBERS totalCount="3">
<REC_NUMBER>4</REC_NUMBER>
<REC_NUMBER>5</REC_NUMBER>
<REC_NUMBER>6</REC_NUMBER>
</REC_NUMBERS>
</ERROR>
<ERROR>
<ERROR_CODE>22</ERROR_CODE>
<ERROR_MSG>bad</ERROR_MSG>
<ACTUAL_HEADER_COUNT>4</ACTUAL_HEADER_COUNT>
<EXPECTED_HEADER_COUNT>3</EXPECTED_HEADER_COUNT>
<REC_NUMBERS totalCount="2">
<REC_NUMBER>4</REC_NUMBER>
<REC_NUMBER>5</REC_NUMBER>
</REC_NUMBERS>
</ERROR>
</ERROR_LIST>
</ERRORFILE>`
发布于 2014-06-19 20:50:12
以下内容将对您有所帮助:
班级数
在JAXB中,Java类对应于XML Schema中的复杂类型。对于每种类型的复杂元素,通常都需要一个类。根据您的文档,您将需要用于:ErrorFile
、ErrorList
、Error
、RecNumbers
等的类。
映射元数据
默认情况下,JAXB不需要任何映射元数据。节点名称派生自相应的Java名称。由于所有元素都是大写的,因此需要使用@XmlRootElement
和@XmlElement
注释指定名称。
@XmlRootElement(name="ERRORFILE")
public class ErrorFile {
}
XML属性
缺省情况下,JAXB将所有内容表示为XML元素。要将某些内容映射到XML属性,需要使用@XmlAttribute
注释。
命名空间
因为您的XML文档是名称空间限定的,所以您将需要利用包级@XmlSchema
注释来映射:
对元素进行分组
如果您的ERROR_LIST
和REC_NUMBERS
元素是包装集合数据的简单分组元素,则可以执行以下操作:
@XmlElementWrapper(name="ERROR_LIST")
@XmlElement(name="ERROR")
public List<Error> getErrorList() {
return errorList;
}
但由于在该级别上有额外的数据映射为XML属性,因此需要将其表示为一个类:
@XmlElement(name="ERROR_LIST")
public ErrorList getErrorList() {
return errorList;
}
有关详细信息,请访问:
https://stackoverflow.com/questions/24301705
复制相似问题