2012-11-13 34 views
1

我使用SimpleFramework解析傳入的XML,並創建適當的對象(這是後來保存到DB ...)的Android SimpleFramework命名空間前綴在Android

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..1

我的元素註釋是這樣的:

@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。

我試着命名空間播放/前綴屬性,但結果都是一樣的 - 在GUID屬性NULL值。

任何想法?

回答

0

這有什麼好做的@Namespace註解。由於以下原因之一,此處Guid爲空。

一個)它是這樣寫<一個:GUID/>

b)中這是寫線<一個:GUID > < /一個:GUID >

c)中的東西是設置它爲空完成解析後。

嘗試使用構造注入和設置的值作爲最終的,那麼你知道沒有其他設置創建對象後爲null。

+0

元素看起來像這樣: 00300001-0000-0000-0000-000000000000 但是,它仍然總是空,我確信,沒有什麼解析完成後重寫值。我甚至去調試SimpleFramework如何進行解析,它自動識別名稱空間,前綴和guid元素,但它將元素的值設置爲null。不知道爲什麼:( – Frankie