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


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

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

Применение. Сведения этого раздела применяются к проектам уровня документа для следующих приложений: Excel 2013 и Excel 2010; Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

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

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

ПримечаниеПримечание

Нельзя использовать составные XML-схемы в решениях Excel.

Создаваемые объекты при присоединении схем к книгам 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 в окне Свойства.

y36t3e16.collapse_all(ru-ru,VS.110).gifСопоставляемые схемы Office и окно Visual Studio "Источники данных"

Функциональность сопоставляемых схем и окно 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 и Элемент управления XMLNode.

Развертывание решений, содержащих XML-схемы

Для развертывания решения, которое использует сопоставленную с документом схему XML, необходимо создать программу установки.Программа установки должна зарегистрировать схему в библиотеке схем на компьютере конечного пользователя.Если схема не зарегистрирована, решение все же будет работать, потому что Word создает временную схему на основе элементов, которые находятся в документе, когда он открывается пользователем.Однако пользователь не сможет выполнить проверку или сохранение схемы, которая использовалась для создания проекта.Дополнительные сведения о программах установки см. в разделе Развертывание приложений и компонентов.

Также в проект можно добавить код, проверяющий, присутствует ли схема в библиотеке и зарегистрирована ли она.и предупреждающий пользователя, если это не так.

' Ensure that the schema is in the library and registered with the document.
Private Function CheckSchema() As Boolean

    Const namespaceUri As String = "http://schemas.contoso.com/projects"
    Dim namespaceFound As Boolean = False
    Dim namespaceRegistered As Boolean = False

    Dim n As Word.XMLNamespace
    For Each n In Application.XMLNamespaces
        If (n.URI = namespaceUri) Then
            namespaceFound = True
        End If
    Next

    If Not namespaceFound Then
        MessageBox.Show("XML Schema is not in library.")
        Return False
    End If

    Dim r As Word.XMLSchemaReference
    For Each r In Me.XMLSchemaReferences
        If (r.NamespaceURI = namespaceUri) Then
            namespaceRegistered = True
        End If
    Next

    If Not namespaceRegistered Then
        MessageBox.Show("XML Schema is not registered for this document.")
        Return False
    End If

    Return True
End Function
// 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;
}

См. также

Задачи

Практическое руководство. Сопоставление схем и документов Word в Visual Studio

Практическое руководство. Сопоставление схем и листов внутри Visual Studio