我想爲用戶提供一個類似於XML結構(這裏是一個完整的信息表單)的可視化DOM,並允許它們指定他們想要映射到的xml數據的哪些元素一個靜態編譯的對象。動態地將xml字段映射到一個靜態對象
作爲一個例子,用戶有一個infopath表單,允許他們輸入銷售交易,填寫並提交,應用程序應允許他們查看infopath表單中的數據結構(在友好,樹視圖方式),並指定它應該如何映射到銷售交易的靜態表示(考慮可能在「交易」表中出現的行)。
Infopath窗體(xml源代碼)不受我控制。
我在尋找關於如何顯示XML樹形視圖的建議,並允許與它交互以指定映射(可能是拖放?)。
這將在一個wpf應用程序(我知道我將不得不在一個表單主機中託管infopath控件,因爲它不是wpf),我們希望使用Microsoft提供的.Net元素或開源軟件。
編輯:作爲一個更詳盡的例子,假設有導致XML的InfoPath表單,看起來像:
<Deal id="1" dateBooked="2011-01-01" term="24" language="en-us">
<Salesman>Jim Flowers</Salesman>
<FinancedAmount>55000.00</FinancedAmount>
<Items>
<Item id="1" quantity="10" unitPrice="10000.00">Tractor</Item>
<Item id="2" quantity="1" unitPrice="5000.00">Spare Blade</Item>
</Items>
<Notes>
<Note dateAdded="2010-09-20">Customer needs a spare blade</Note>
<Note dateAdded="2010-12-31">Customer wants to sign the deal on new year's day, I find this odd...</Note>
</Deal>
我希望用戶,在運行時,並以直觀的方式(用戶將不會知道xpath ...)將本文檔樹視圖的特定節點映射到「Deal」對象上的字段。因此,Deal對象可能有一個ID,銷售員,金額,項目集合等需要填充,但註釋和一些其他數據被忽略,並且表單將不會相同(信息路徑提供了可配置的表單用戶可以根據需要將數據導入系統)或以任何一致的方式命名。用戶正在指定映射。
+1一個很好的答案,但不一定是我問的問題。我需要從文檔中任意命名的xml節點,我沒有指定映射到我指定的對象。映射是重要的部分。我會嘗試在編輯問題時更清楚地說明這一點。 – marr75
更新了答案...希望我能更好地理解這次的要求;-) – int32