2

Word 2007 允许将 XML 模式附加到文档(在 Developer 工具栏 | XML 组 | Schema 按钮下)。这个模式库信息存储在哪里?

我有我使用基于架构的自定义 XML 标记创建的文档,但是当我将文档和架构传递给其他人时,架构被标记为不可用,大概是因为架构的文件位置不同。

有没有办法编辑这些信息来改变给定模式的路径?

4

1 回答 1

3

它不与 docx 一起存储,只存储它的路径。因此,传递文档几乎总是会破坏链接。VSTO 可以通过将 XSD 作为资源嵌入到应用程序中来解决此问题。

但是对于 VBA,它就比较棘手了——你需要有一个可以依赖于每个用户计算机的路径,然后在那里部署你的 XSD。一种方法是同步Document_Open(或仅使用AutoOpen)事件,以便当用户打开文档时(警告:需要使用宏安全性),您可以简单地“写入”硬编码为字符串的 XSD在代码隐藏中,然后将其写入文件,然后使用如下例程附加该文件:

Dim objSchema As XMLNamespace
Set objSchema = Application.XMLNamespaces.Add("c:\something\mynewlycreated.xsd")
objSchema.AttachToDocument ActiveDocument

因此,由于您不会留下工件,因此您可以从用户计算机上删除该 XSDDocument_CloseAutoClose.

于 2010-07-03T18:43:41.050 回答