OpenXML:使用绑定创建可重用的内容控件

时间:2010-08-06 12:47:22

标签: data-binding ms-word openxml word-contentcontrol

我需要将特定的XML附加到word文档,以便元素显示在正确的位置。我可以使用OpenXML SDK。

问题是我也希望能够定义已经存在于某种模板中的内容控件,以便其他人可以创建xml将附加到的真实文档模板。好吧,不确定人们会不会理解我的意思所以我会进一步解释。

可能有许多不同的文档模板将使用相同的XML数据,因此使用相同的内容控件。由其他人来创建文档。

场景:一些不是程序员的家伙需要为常规信息创建新表单,因为有些更改(新布局或某些内容)。这与XML信息无关,它保持不变。

“some dude”的最佳解决方案是在Word中创建文档并将内容控件拖到适当位置(或某些解决方案类似)。然后,当XML被添加到文档中时没有问题,因为内容控件是预绑定的。

现在这里有几点:

1)内容控制可以预先绑定吗?如果路径上没有XML,那么它不会没有问题吗?

2)由于i4i的诉讼,将内容控件绑定到CustomXML会是否仍适用于未来版本的Word?

3)是否还有其他最佳解决方案呢?

提前致谢。

编辑:

更清楚。我不想创建内容控件,它们有一些名称来识别它们和数据绑定xpath。然而在那一刻,路上什么都没有。

另一位用户进入并创建表单,依此决定布局,然后将内容控件添加到他想要信息的位置。

稍后,使用新表单请求项目X的信息。因此,将获取该表单的副本,并将CustomXML添加到Docx文件中。现在因为XML shchema事先是已知的并且在决定CC的路径时使用,所以这个XML数据将被绑定到内容控件。

2 个答案:

答案 0 :(得分:2)

一个很好的选择是使用VSTOVisual Studio for Office)来构建一组附加了预绑定代码的文档模板。这两篇文章为寻找这种解决方案提供了良好的开端:

有两个主题讨论了一些细节:12

使用VSTO的一个好处是可以挂钩Content Control eventsContent Control Event Model in Word 2007

如果VSTO不是一个选项,您可以随时查看Add Custom XML Parts to Documents Without Starting Microsoft Office

答案 1 :(得分:1)

这应该非常简单。自定义控件不受i4i诉讼的影响,您可以使用每个控件中的标签属性命名它们(警告 - 限制为64个字符)。