我想为用户提供一个类似于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