Чтение онлайн

ЖАНРЫ

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:

<title_id>PC1035</title_id>

 </Sales>

 <Stores>

<stor_id>6380</stor_id>

<stor_name>Eric the Read Books</stor_name>

<stor_address>788 Catamaugus Ave.</stor_address>

<city>Seattle</city>

<state>WA</state>

<zip>98056</zip>

 </Stores>

 <Stores>

<stor_id>7066</stor_id>

<stor_name>Barnum's</stor_name>

<stor_address>567 Pasadena Ave.</stor_address>

<state>CA</state>

<zip>92789</zip>

 </Stores>

 <Stores>

<stor_id>7067</stor_id>

<stor_name>News & Brews</stor_name>

<stor_address>577 First St.</stor_address>

<city>Los Gatos</city>

<state>CA</state>

<zip>96745</zip>

 </Stores>

 <Stores>

<stor_id>7131</stor_id>

<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

<?xml version="1.0" standalone="yes"?>

<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

 <xs:element name="NewDataSet" msdata:lsDataSet="true">

<xs:complexType>

<xs:choice maxOccurs="unbounded">

<xs:element name="Sales">

<xs:complexType>

<xs:sequence>

<xs:element name="stor_id" type="xs:string" minOccurs="0" />

<xs:element name="ord_num" type="xs:string" minOccurs="0" />

<xs:element name="ord_date" type="xs:dateTime" minOccurs="0" />

<xs:element name="qty" type="xs:short" minOccurs="0" />

<xs:element name="payterms" type="xs:string" minOccurs="0" />

<xs:element name="title_id" type="xs:string" minOccurs="0" />

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="Stores">

<xs:complexType>

Поделиться с друзьями: