Word 2007允许将XML模式附加到文档(在“开发人员工具栏”|“XML组”|“模式”按钮下)。这个模式库信息存储在哪里?
我有基于模式使用自定义XML标记创建的文档,但是当我将文档和模式传递给其他人时,模式被标记为不可用,大概是因为模式的文件位置不同。 / p>
是否有某种方法可以编辑此信息以更改指定架构的路径?
答案 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_Close
或AutoClose
上从用户的计算机上删除该XSD。