Архитектура смарт-документов
Смарт-документы позволяют разработчикам связывать определенные действия с XML-элементами в новых или уже существующих документах. Структура документа, размеченного XML-элементами, соответствует лежащей в его основе XML-схеме. Когда подготовка документа завершена, разработчики могут использовать интерфейс прикладного программирования Smart Document API, доступный в составе пакета разработчика Office 2003 Solution Developers Kit, для назначения XML-элементам действий, которые будут управлять приложением.
При работе со смарт-документами разработчики получают большую свободу действий. Документом можно управлять напрямую или через взаимодействие с процессами на стороне сервера (например, получая данные или переправляя их различным серверным системам для обработки). Разработчики могут также выбирать различные языки программирования для создания приложений – Visual Basic 6.0, Visual Basic .NET, C# или C++.
После завершения компиляции DLL-модуля разработчик должен создать файл манифеста, который описывает местоположение следующих компонентов:
- DLL-модуля, содержащего управляющий код.
- XML-схемы, описывающей разметку документа соответствующими XML-элементами.
- Манифеста XML, помогающего скрыть сложность решения от конечных пользователей.
Манифест выступает в качестве центрального хранилища информации обо всех составляющих смарт-документа. Следовательно, для установки решения на основе смарт-документа в шаблон документа достаточно просто сослаться в этот документе на файл манифеста. Обратите внимание, что URL-путь к решению, показанный на Рисунке 2, указывает на файл манифеста, содержащий имя решения, путь к DLL-модулям и т. д.
Рисунок 2 – Добавление файла манифеста смарт-документа
Когда файл манифеста добавлен в документ, путь к нему хранится локально (в метаданных документа). Такой подход приводит к тому, что если документ загружается на компьютере, на котором не установлено решение на основе смарт-документа, пользователь получает приглашение произвести обновление с доверенного сервера. Таким образом, обеспечивается целостность и работоспособность решения, а также загрузка и установка всех необходимых файлов. Этот процесс избавляет разработчиков от проблем, связанных с установкой и обновлением решений в больших сетях.