MS Word插件中有意义的XML

MS Word插件中有意义的XML,xml,ms-word,semantics,Xml,Ms Word,Semantics,我需要构建一个MS Word 2007插件,该插件提供一个按钮,当单击该按钮时,会将Word文档作为XML上传到Web服务 到目前为止,这似乎没有什么问题,但客户还有一个额外的要求,即他们希望XML有意义。他们正在录制格式化文本,但希望文档的某些区域包含在某些标记中,例如: <WordDocument> <TagArea1> *word style xml for this bit of the document here* </Ta

我需要构建一个MS Word 2007插件,该插件提供一个按钮,当单击该按钮时,会将Word文档作为XML上传到Web服务

到目前为止,这似乎没有什么问题,但客户还有一个额外的要求,即他们希望XML有意义。他们正在录制格式化文本,但希望文档的某些区域包含在某些标记中,例如:

<WordDocument>
    <TagArea1>
        *word style xml for this bit of the document here*
    </TagArea1>
    <TagArea2>
        *word style xml for this bit of the document here*
    </TagArea2>
</WordDocument>

*本文中这部分文档的word样式xml*
*本文中这部分文档的word样式xml*
他们的理想是拥有模板,可以在上传时定义这些模板的部分,从而创建这种样式的XML

之所以使用Word而不是基于表单的技术,是因为保持格式的一致性很重要,能够选择分页符出现的位置等对他们来说至关重要

我担心这种类型的功能可能不可能实现,但我对开发内部Office应用程序还很陌生,因此非常希望能提供一些提示。

我会将其作为docx(包含xml+资源的zip文件)上传,并使用System.IO.Packaging对其进行操作。我知道可以在Word中创建表单,但我不确定它在DocXXML中是如何表示的。我首先在Word中创建一个表单,使用它,将其保存为docx,然后拆分XML以查看其中的内容

换句话说,我会使用现有的工具,而不是试图拼凑一些东西。

我会将其作为docx(包含xml+资源的zip文件)上传,并使用System.IO.Packaging对其进行操作。我知道可以在Word中创建表单,但我不确定它在DocXXML中是如何表示的。我首先在Word中创建一个表单,使用它,将其保存为docx,然后拆分XML以查看其中的内容


换句话说,我会使用现有的工具,而不是尝试拼凑一些东西。

您可以尝试使用链接到您自己的XML部分的内容控件(SDT)。但要避免i4i专利的混乱。请参阅

您可以尝试使用链接到自己的XML部件的内容控件(SDT)。但要避免i4i专利的混乱。请参见

要么您的解释不清楚,要么您的任务不可能完成。(尽管您可以通过使用样式表将文档从Word转换为某种内部XML格式,然后再转换回来)您认为我的问题在哪里还不清楚?让我知道,我会补充一些细节。要么你的解释不清楚,要么你的任务不可能完成。(尽管您可以通过使用样式表将文档从Word转换为某种内部XML格式,然后再转换回来)您认为我的问题在哪里还不清楚?让我知道,我会添加更多细节。另一个替代保存的docx包的选项是使用所谓的平面OPC格式(请参阅)。例如,可从
ActiveDocument.WordOpenXML
属性中获取,以及开发自定义文件导出筛选器时使用的格式(请参阅)。扁平OPC格式的优点是,在将文档上传到web服务之前,您不必保存文档的本地副本,并且可以更轻松地进行修改,例如,通过应用XSLT。这听起来可能是一个简单得多的解决方案。另一种替代保存的docx包的方法是使用所谓的平面OPC格式(请参阅)。例如,可从
ActiveDocument.WordOpenXML
属性中获取,以及开发自定义文件导出筛选器时使用的格式(请参阅)。扁平OPC格式的优点是,在将文档上传到web服务之前,您不必保存文档的本地副本,并且可以更轻松地进行修改,例如,通过应用XSLT。这听起来可能是一个简单得多的解决方案。+1内容控件是在考虑到这个特定场景的情况下构建的,可能是最佳选择。+1内容控件是在考虑到这个特定场景的情况下构建的,可能是最佳选择。