Поделиться через


XML-схемы и данные в настройках уровня документа

Важные сведения, приведенные в этом разделе, касающиеся Microsoft Word, предоставляются исключительно для преимуществ и использования отдельных лиц и организаций, расположенных за пределами США и ее территорий или использующих, или разработки программ, работающих в microsoft Word, продуктов Microsoft Word, лицензированных корпорацией Майкрософт до января 2010 года, когда корпорация Майкрософт удалила реализацию конкретных функций, связанных с пользовательским XML из Microsoft Word. Эта информация о Microsoft Word не может быть прочитана или использована отдельными лицами или организациями в США или ее территориях, использующих или разрабатывающих программы, которые выполняются, продукты Microsoft Word, лицензированные корпорацией Майкрософт после 10 января 2010 г.; эти продукты не будут вести себя так же, как продукты, лицензированные до этой даты или приобретенных и лицензированных для использования за пределами США.

Область применения. Сведения в этом разделе относятся к проектам уровня документа для Excel и Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Microsoft Office Excel и Microsoft Office Word предоставляют возможность сопоставления схем с документами. Эта функция может упростить импорт и экспорт XML-данных в документе и их выходе.

Visual Studio предоставляет сопоставленные элементы схемы в настройках уровня документа в качестве элементов управления в модели программирования. Для Excel Visual Studio добавляет поддержку привязки элементов управления к данным в базах данных, веб-службах и объектах. Для Word и Excel Visual Studio добавляет поддержку областей действий, которые можно использовать с документом, сопоставленным с схемой, для создания расширенного пользовательского интерфейса для решений. Дополнительные сведения см. в обзоре области действий.

Примечание.

В решениях Excel нельзя использовать многопартийные xml-схемы.

Объекты, созданные при присоединении схем к книгам Excel

При присоединении схемы к книге Visual Studio автоматически создает несколько объектов и добавляет их в проект. Эти объекты не следует удалять с помощью средств Visual Studio, так как они управляются Excel. Чтобы удалить их, удалите сопоставленные элементы из листа или отсоедините схему с помощью средств Excel.

Существует два основных объекта:

  • XML-схема (XSD-файл). Для каждой схемы в книге Visual Studio добавляет схему в проект. Это отображается как элемент проекта с расширением XSD в Обозреватель решений.

  • Типизированный класс DataSet. Этот класс создается на основе схемы. Этот класс набора данных отображается в представлении классов.

Объекты, созданные при сопоставлении элементов схемы с листами Excel

При сопоставлении элемента схемы из области задач источника XML с листом Visual Studio автоматически создает несколько объектов и добавляет их в проект:

  • Элементы управления. Для каждого сопоставленного объекта в книге элемент XmlMappedRange управления (для элементов схемы, не повторяющихся) или ListObject элемента управления (для повторяющихся элементов схемы) создается в модели программирования. Элемент ListObject управления можно удалить только путем удаления сопоставлений и сопоставленных объектов из книги. Дополнительные сведения об элементах управления см. в обзоре элементов узла и элементов управления узлами.

  • Bindingsource. При создании XmlMappedRange путем сопоставления не повторяющегося элемента схемы с листом BindingSource создается XmlMappedRange и элемент управления привязан к элементу BindingSourceуправления. Необходимо привязать BindingSource экземпляр источника данных, который соответствует схеме, сопоставленной с документом, например экземпляр созданного типа DataSet класса. Создайте привязку, задав DataSource DataMember свойства, предоставляемые в окне "Свойства ".

    Примечание.

    Объект BindingSource не создается для ListObject объектов. Необходимо вручную привязать ListObject источник данных, задав DataSource DataMember свойства в окне свойств .

Сопоставленные схемы Office и окно источников данных Visual Studio

Функции сопоставленной схемы Office и окна источников данных Visual Studio помогут вам представить данные на листе Excel для создания отчетов или редактирования. В обоих случаях можно перетащить элементы данных на лист Excel. Оба метода создают элементы управления, связанные с данными через BindingSource источник данных, например веб-службу DataSet или веб-службу.

Примечание.

При сопоставлении повторяющегося элемента схемы с листом Visual Studio создает элемент ListObject. Данные ListObject не привязаны к данным автоматически.BindingSource Необходимо вручную привязать ListObject источник данных, задав DataSource DataMember свойства в окне свойств .

В следующей таблице показаны некоторые различия между двумя методами.

XML-схема Источники данных - окно
Использует интерфейс Office. Использует окно источников данных в Visual Studio.
Включает встроенные функции Office для импорта и экспорта данных из XML-файлов. Необходимо программно предоставлять функции импорта и экспорта.
Для заполнения созданных элементов управления данными необходимо написать код. Элементы управления, добавленные из окна источников данных, автоматически создают код для их заполнения, а также необходимые строка подключения при использовании серверов баз данных.

Поведение при присоединении схем к документам Word

Объекты данных не создаются при присоединении схемы к документу Word, который используется в проекте Office на уровне документа. Однако при сопоставлении элемента схемы с документом создаются элементы управления. Тип элемента управления зависит от типа сопоставленного элемента; повторяющиеся элементы создают XMLNodes элементы управления и не повторяющиеся элементы создают XMLNode элементы управления. Дополнительные сведения см. в разделе XMLNodes Control и XMLNode Control.

Развертывание решений, включающих XML-схемы

Необходимо создать установщик для развертывания решения, использующего xml-схему, сопоставленную с документом. Установщик должен зарегистрировать схему в библиотеке схем на компьютере пользователя. Если схема не зарегистрирована, решение по-прежнему будет работать, так как Word создает временную схему на основе элементов документа, которые находятся в документе при его открытии. Однако пользователь не сможет выполнить проверку или сохранить схему, которая использовалась для создания проекта. Дополнительные сведения о установщиках см. в разделе "Развертывание приложений, служб и компонентов".

Вы также можете добавить код в проект, чтобы проверка, находится ли схема в библиотеке и зарегистрирована. Если это не так, можно предупредить пользователя.

// Ensure that the schema is in the library and registered with the document.
private bool CheckSchema()
{
    const string namespaceUri = "http://schemas.contoso.com/projects";
    bool namespaceFound = false;
    bool namespaceRegistered = false;

    foreach (Word.XMLNamespace n in Application.XMLNamespaces)
    {
        if (n.URI == namespaceUri)
        {
            namespaceFound = true;
        }
    }

    if (!namespaceFound)
    {
        MessageBox.Show("XML Schema is not in library.");
        return false;
    }

    foreach (Word.XMLSchemaReference r in this.XMLSchemaReferences) 
    {
        if (r.NamespaceURI == namespaceUri)
        {
            namespaceRegistered = true;
        }
    }

    if (!namespaceRegistered)
    {
        MessageBox.Show("XML Schema is not registered for this document.");
        return false;
    }
    
    return true;
}