<stor_name>Doc-U-Mat: Quality Laundry and Books</stor_name>
<stor_address>24-A Avogadro Way</stor_address>
<city>Remulade</city>
<state>WA</state>
<zip>98014</zip>
</Stores>
<Stores>
<stor_id>7896</stor_id>
<stor_name>Fricative Bookshop</stor_name>
<stor_address>89 Madison St.</stor_address>
<city>Fremont</city>
<state>CA</state>
<zip>90019</zip>
</Stores>
<Stores>
<stor_id>8042</stor_id>
<stor_name>Bookbeat</stor_name>
<stor_address>679 Carson St.</stor_address>
<city>Portland</city>
<state>OR</state>
<zip>89076</zip>
</Stores>
</NewDataSet>
В
приведенном примере демонстрируется простейший способ записи данных из объекта DataSet в XML-файл. Помимо этого способа существуют другие варианты записи данных и схемы с помощью перегруженных версий метода WriteXML. Соответствующие им перегруженные версии метода ReadXML содержат второй параметр со значением XmlWriteMode.
В табл. 10.2 приведено краткое описание членов перечисления XmlWriteMode.
Таблица 10.2. Перечисление XmlWriteMode
Имя члена перечисления
Описание
DiffGram
Записывает данные из объекта DataSet в виде объекта DiffGram с текущими исходными значениями всех записей
WriteSchema
Записывает данные из объекта DataSet в XML-формате вместе с их схемой. Если объект DataSet содержит только схему, то записывается только схема. Если в объекте DataSet не определена схема, то ничего не записывается
IgnoreSchema
Этот режим используется по умолчанию для записи содержимого объекта DataSet в XML-формате без схемы
НА ЗАМЕТКУ
Объект DataSet имеет методGetXml, который возвращает XML-строку с данными из объекта DataSet. Точно такой же результат можно получить, используя метод со вторым параметром XmlWriteMode, который имеет значение IgnoreSchema. Извлечение данных в виде одной строки иногда позволяет более гибко программировать доступ к данным, но требует больших усилий, особенно если вам нужно всего лишь записать данные в файл.
Для записи схемы данных из объекта DataSet в отдельном XSD-файле (вместо встраивания ее в данные) предусмотрен метод WriteXmlSchema, который используется так, как показано ниже.
dsSales.WriteXmlSchema
В листинге 10.5 приведено содержимое файла StoreSales.xsd, полученного в результате выполнения этого метода.
Листинг 10.5. Содержимое файла StoreSales.xsd, который является схемой из объекта dsSales