Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В ADO.NET можно написать XML-представление объекта DataSet, с его схемой или без нее. Если сведения о схеме включены в код XML, он записывается с помощью языка определения схемы XML (XSD). Схема содержит определения DataSet таблиц, а также определения отношений и ограничений.
При записи DataSet в виде XML-данных строки в DataSet записываются в их текущих версиях. Однако, DataSet можно также записать в формате DiffGram, чтобы были включены как текущие, так и исходные значения строк.
XML-представление DataSet может быть записано в файл, поток, XmlWriter или строку. Эти варианты обеспечивают большую гибкость при транспортировке XML-представления DataSet объекта. Чтобы получить XML-представление DataSet строки, используйте метод GetXml , как показано в следующем примере.
Dim xmlDS As String = custDS.GetXml()
string xmlDS = custDS.GetXml();
GetXml возвращает XML-представление элемента DataSet без сведений о схеме. Чтобы записать сведения о схеме из DataSet (как XML-схему) в строку, используйте GetXmlSchema.
Чтобы записать DataSet файл, поток или XmlWriter, используйте метод WriteXml . Первый параметр, который передается в WriteXml , является назначением выходных данных XML. Например, передайте строку, содержащую имя файла, объект System.IO.TextWriter и т. д. Можно передать необязательный второй параметр XmlWriteMode , чтобы указать способ записи выходных данных XML.
В следующей таблице показаны параметры XmlWriteMode.
Параметр XmlWriteMode | Описание |
---|---|
ИгнорироватьСхему | Записывает текущее содержимое DataSet как XML-данные, без схемы XML. Это значение по умолчанию. |
WriteSchema | Записывает текущее содержимое DataSet как XML-данные с реляционной структурой в виде встроенной XML-схемы. |
DiffGram | Записывает все DataSet данные в виде DiffGram, включая исходные и текущие значения. Дополнительные сведения см. в разделе DiffGrams. |
При написании XML-представления объекта DataSet , содержащего объекты DataRelation , скорее всего, требуется, чтобы результирующий XML-код содержал дочерние строки каждого отношения, вложенные в связанные с ними родительские элементы. Для этого задайте для свойства DataRelation значение true, при добавлении DataRelation в . Для получения дополнительной информации см. раздел «Вложенные отношения данных».
Далее приведены два примера записи XML-представления DataSet в файл. Первый пример передает имя файла для результирующего XML-файла в виде строки в WriteXml. Второй пример передает объект System.IO.StreamWriter .
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema)
custDS.WriteXml("Customers.xml", XmlWriteMode.WriteSchema);
Dim xmlSW As System.IO.StreamWriter = New System.IO.StreamWriter("Customers.xml")
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema)
xmlSW.Close()
System.IO.StreamWriter xmlSW = new System.IO.StreamWriter("Customers.xml");
custDS.WriteXml(xmlSW, XmlWriteMode.WriteSchema);
xmlSW.Close();
Сопоставление столбцов с XML-элементами, атрибутами и текстом
Можно указать, как столбец таблицы представлен в XML с помощью свойства ColumnMapping объекта DataColumn . В следующей таблице показаны различные значения MappingType для свойства ColumnMapping столбца таблицы и результирующего XML.
Значение MappingType | Описание |
---|---|
Элемент | Это значение по умолчанию. Столбец записывается как XML-элемент, в котором Имя столбца — имя элемента, а содержимое столбца записывается в виде текста элемента. Рассмотрим пример.<ColumnName>Column Contents</ColumnName> |
Атрибут | Столбец записывается в виде XML-атрибута XML-элемента для текущей строки, где ColumnName — имя атрибута, а содержимое столбца записывается в качестве значения атрибута. Рассмотрим пример.<RowElement ColumnName="Column Contents" /> |
SimpleContent | Содержимое столбца записывается как текст в XML-элементе текущей строки. Рассмотрим пример.<RowElement>Column Contents</RowElement> Обратите внимание, что SimpleContent нельзя задать для столбца таблицы с столбцами элементов или вложенными отношениями. |
скрытое | Столбец не записывается в выходные данные XML. |