Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
DataSet ADO.NET предоставляет реляционное представление данных. Для иерархического доступа к данным можно использовать классы XML, доступные в .NET Framework. Исторически эти два представления данных использовались отдельно. Однако платформа .NET Framework обеспечивает синхронный доступ как к реляционным, так и иерархическим представлениям данных через DataSet объект и XmlDataDocument объект соответственно.
DataSet При синхронизации с XmlDataDocument оба объекта работают с одним набором данных. Это означает, что если в набор данных внесены изменения, это изменение будет отражено в XmlDataDocument и наоборот. Связь между DataSet и XmlDataDocument создает большую гибкость, позволяя одному приложению, используя один набор данных, получить доступ ко всему набору служб, построенных вокруг DataSet (таких как элементы управления Web Forms и Windows Forms, и конструкторы Visual Studio .NET), а также к набору XML-служб, включая расширяемый язык стилей (XSL), преобразования XSL (XSLT) и язык XML-путей (XPath). Вам не обязательно выбирать, для какого набора сервисов использовать приложение; оба доступны.
Существует несколько способов синхронизации DataSet с XmlDataDocument. Вы можете:
Заполните
DataSetсхемой (то есть реляционной структурой) и данными, а затем синхронизируйте его с новым XmlDataDocument. Это обеспечивает иерархическое представление существующих реляционных данных. Рассмотрим пример.Dim dataSet As DataSet = New DataSet ' Add code here to populate the DataSet with schema and data. Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet)DataSet dataSet = new DataSet(); // Add code here to populate the DataSet with schema and data. XmlDataDocument xmlDoc = new XmlDataDocument(dataSet);Заполните только схему
DataSet(например, строго типизированный набор данных), синхронизируйте ее с XmlDataDocument, а затем загрузитеXmlDataDocumentиз XML-документа. Это обеспечивает реляционное представление существующих иерархических данных. Имена таблиц и имена столбцов в схемеDataSetдолжны совпадать с именами XML-элементов, с которыми они синхронизируются. Это сопоставление учитывает регистр.Обратите внимание, что схема
DataSetтолько должна соответствовать XML-элементам, которые необходимо предоставить в реляционном представлении. Таким образом, вы можете иметь очень большой XML-документ и очень небольшое реляционное "окно" на этот документ. СохраняетXmlDataDocumentвесь XML-документ, несмотря на то, чтоDataSetтолько предоставляет небольшую часть документа. (Подробный пример этого см. в разделе Синхронизация набора данных с xmlDataDocument.)В следующем примере кода показаны шаги по созданию
DataSetи заполнению схемы, а затем синхронизации ее с xmlDataDocument. Обратите внимание, что схемаDataSetдолжна соответствовать только тем элементам изXmlDataDocument, которые необходимо предоставить с помощью набора данных.Dim dataSet As DataSet = New DataSet ' Add code here to populate the DataSet with schema, but not data. Dim xmlDoc As XmlDataDocument = New XmlDataDocument(dataSet) xmlDoc.Load("XMLDocument.xml")DataSet dataSet = new DataSet(); // Add code here to populate the DataSet with schema, but not data. XmlDataDocument xmlDoc = new XmlDataDocument(dataSet); xmlDoc.Load("XMLDocument.xml");Невозможно загрузить объект
XmlDataDocument, если он синхронизирован сDataSet, содержащим данные. Исключение будет создано.Создайте новый
XmlDataDocumentдокумент и загрузите его из XML-документа, а затем получите доступ к реляционному представлению данных с помощьюDataSetсвойства XmlDataDocument. Перед просмотром любых данных вXmlDataDocumentнужно задать схемуDataSetс помощью DataSet. Опять же, имена таблиц и столбцов в схемеDataSetдолжны совпадать с именами XML-элементов, с которыми они синхронизированы. Это сопоставление учитывает регистр.В следующем примере кода показано, как получить доступ к реляционному представлению данных в XmlDataDocument.
Dim xmlDoc As XmlDataDocument = New XmlDataDocument Dim dataSet As DataSet = xmlDoc.DataSet ' Add code here to create the schema of the DataSet to view the data. xmlDoc.Load("XMLDocument.xml")XmlDataDocument xmlDoc = new XmlDataDocument(); DataSet dataSet = xmlDoc.DataSet; // Add code here to create the schema of the DataSet to view the data. xmlDoc.Load("XMLDocument.xml");
Еще одним преимуществом синхронизации XmlDataDocument с a DataSet является сохранение точности XML-документа. Если DataSet заполняется из XML-документа с помощью ReadXml, то при записи данных обратно как XML-документ с помощью WriteXml они могут существенно отличаться от исходного XML-документа. Это связано с тем, что DataSet не поддерживает форматирование, такое как пробелы, или иерархические данные, такие как порядок элементов, из XML-документа. Он DataSet также не содержит элементы из XML-документа, которые были проигнорированы, так как они не соответствовали схеме набора данных. Синхронизация XmlDataDocument с DataSet позволяет сохранить форматирование и структуру иерархических элементов исходного XML-документа в XmlDataDocument, в то время как DataSet содержит только данные и информацию о схеме, соответствующую DataSet.
При синхронизации DataSet с XmlDataDocument результаты могут отличаться в зависимости от того, вложены ли ваши объекты DataRelation. Для получения дополнительной информации см. раздел «Вложенные отношения данных».
В этом разделе
Синхронизация набора данных с xmlDataDocument Демонстрирует синхронизацию строго типизированного набора данных с минимальной схемой с XmlDataDocument.
Выполнение запроса XPath в наборе данных Демонстрирует выполнение запроса XPath на содержимое набора данных.
Применение преобразования XSLT к набору данных Демонстрирует применение преобразования XSLT к содержимому набора данных.
Связанные разделы
Использование XML в наборе данных Описывает, как DataSet взаимодействует с XML в качестве источника данных, включая загрузку и сохранение содержимого DataSet в виде XML-данных.
Вложенные данные Описывает важность вложенных DataRelation объектов при представлении содержимого DataSet данных XML и описывает, как создать эти отношения.
DataSets, DataTables и DataViews Описывает DataSet и как использовать их для управления данными приложений и взаимодействия с источниками данных, включая реляционные базы данных и XML.
XmlDataDocument Содержит справочные сведения о XmlDataDocument классе.