Где хранится библиотека схем Word 2007? - PullRequest
2 голосов
/ 29 июня 2010

Word 2007 позволяет XML-схемам присоединяться к документу (под панелью инструментов разработчика | группа XML | кнопка схемы). Где хранится информация этой библиотеки схем?

У меня есть документы, которые я создал с помощью пользовательских тегов XML на основе схемы, но когда я передаю документ и схему кому-то другому, схема помечается как недоступная, предположительно потому, что расположение файла схемы отличается.

Есть ли способ отредактировать эту информацию, чтобы изменить путь к данной схеме?

1 Ответ

3 голосов
/ 03 июля 2010

Он не хранится в 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

Так как вы не оставляете после себя артефакты, вы можете затем удалить этот XSD с компьютера пользователя на Document_Close или AutoClose.

...