存储Word 2007架构库的位置在哪里?

时间:2010-06-29 10:22:02

标签: ms-word word-2007 xsd

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

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

是否有某种方法可以编辑此信息以更改指定架构的路径?

1 个答案:

答案 0 :(得分: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

因此,当您不留下工件时,可以在Document_CloseAutoClose上从用户的计算机上删除该XSD。