我正在使用SimpleFramework来解析传入的XML并创建适当的对象(之后保存到DB中......)
XML的一部分如下所示:
<CheckId xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<a:guid>00300001-0000-0000-0000-000000000000</a:guid>
</CheckId>
<a:guid>
可以重复1..N
我的元素注释看起来像这样:
@ElementList(required = false, name="CheckId")
@Namespace(reference="http://schemas.microsoft.com/2003/10/Serialization/Arrays")
@ForeignCollectionField(eager = true, orderColumnName = "Guid", columnName = TABLE_CHECK_ID_LIST_COLUMN)
public Collection<TableCheck> TableCheckIdList;
并且在TableCheck类中是:
@Root(name = "CheckId")
@Order(elements = { "guid" })
public static class TableCheck implements XMLParseable {
@Element(required = false, name="guid")
@DatabaseField
public String Guid;
...
}
解析完成后,Collection包含与XML中出现的标记<a:guid>
一样多的项目。但是,属性Guid始终为NULL。
我尝试使用Namespace / Prefix属性,但结果始终相同 - Guid属性中的NULL值。
有什么想法吗?
答案 0 :(得分:0)
这与@Namespace注释无关。由于以下原因之一,Guid为空。
a)它写成&lt; a:guid /&gt;
b)写成行&lt; a:guid&gt;&lt; / a:guid&gt;
c)完成解析后,有些事情将它设置为null。
尝试使用构造函数注入并将值设置为final,然后您知道在创建对象后没有其他任何设置为null。