gpt4 book ai didi

Android SimpleFramework 命名空间前缀

转载 作者:行者123 更新时间:2023-12-04 16:58:07 27 4
gpt4 key购买 nike

在 Android 上,我使用 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;
...
}

解析完成后,集合包含与标签 <a:guid> 一样多的项目。出现在 XML 中。但是,属性 Guid 始终为 NULL。

我尝试使用 Namespace/Prefix 属性,但结果始终相同 - Guid 属性中的 NULL 值。

有任何想法吗?

最佳答案

这与@Namespace 注释无关。由于以下原因之一,此处 Guid 为空。

a) 写成

b) 写成一行

c) 在您完成解析后,某些东西将其设置为 null。

尝试使用构造函数注入(inject)并将值设置为 final,然后您知道在创建对象后没有其他任何事情将其设置为 null。

关于Android SimpleFramework 命名空间前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com