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 в окне Свойства.
Сопоставляемые схемы 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