XML資料存取分做三個方面來討論
我們嘗試過XML對Control的Mapping,但顯然地還是比較屬於自創的作法
並沒有相當好的泛用性
參考了Java的Castor,瞭解了Mapping其實只是一種簡單的關係
問題範圍:
Mapping的XML描述,其範圍及方式
使用者開發流程
====================================================================
將XML至Control的資料路徑詳列,大概是像這樣
所以說,剩下的問題就是處理其中的對應
Object對Control的Mapping在.Net裡已經有很完整的方案
這個方案是用寫程式的方式
而Mapping比較需要以XML的描述完成
描述 XML Description 實做 Binding Reflection 路徑 Control <-> Object <-> XML
====================================================================
XO Mapping問題
0. 觀念
Mapping指的是兩個Key之間的Value有著相等的關係
例如
表示SomeKey1的Value通過路徑(轉換)後應該是SomeKey2的Value
1. 一般結構對應
Object是一種循序結構
XML是一種樹狀結構(當然也是循序),但可以使用xpath轉換成循序結構
如此便能形成循序結構互相對應
例如:
b/@c">
相對關係:
這兩個值的尋找方式都是相對的
Field的上層是Class(in assembly)
Element的上層是Element
如果沒有定義上層,就尋找這一層
相對模式:
物件間對應模式
表示物件之間要進行Binding,這裡會使用BindingSource完成
XML對Object進行Reflection的讀取與寫入
2. 一般型態對應
無論SOAP,XS(xml-schema),CLR Type都應該有個對應表可以互相轉換型態
例如:
3. 複雜型態對應
複雜型態對應是為了讓Mapping裡能夠還有Mapping
例如:
b/@c">
相對模式:
這裡表示支援複雜資料集的Class與任何作為資料來源的Class
支援的有ListView,ListBox,DataGrid,ComboBox
4. 複雜結構對應
沒有留言 :
張貼留言