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

на главную

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

 //Записать Xml в файл, чтобы можно было просмотреть его позже

 ds.WriteXml("..\\..\\..\\SuppProd.xml", XmlWriteMode.WriteSchema);

 //загрузить данные в таблицу

 dataGrid1.DataSource=ds;

 dataGrid1.DataMember="suppliers";

 //создать XmlDataDocument

 doc=new XmlDataDocument(ds);

 //Выбрать элементы productname и загрузить
их в таблицу

 XmlNodeList nodeLst=doc.SelectNodes("//ProductName");

 foreach(XmlNode nd in nodeLst) listBox1.Items.Add(nd.InnerXml);

}

В этом примере создаются два объекта

DataTables
в
DataSet
из
XMLProducts
:
Products
и
Suppliers
. Отношение состоит в том, что
Suppliers
(Поставщики) поставляют
Products
(Продукты). Мы создаем новое отношение на столбце
SupplierId
в обоих таблицах. Вот как выглядит
DataSet
:

Делая такой же вызов метода

WriteXml
, как в предыдущем примере, мы получим следующий файл XML (
SuppProd.xml
):

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

<XMLProducts>

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

<xsd:element name="XMLProducts" msdata:IsDataSet="true">

<xsd:complexType>

<xsd:choice maxOccurs="unbounded">

<xsd:element name="products">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="Product ID" type="xsd:int" minOccurs="0" />

<xsd:element name="ProductName" type="xsd:string" minOccurs="0" />

<xsd:element name="SupplierID" type="xsd:int" minOccurs="0" />

<xsd:element name="CategoryID" type="xsd:int" minOccurs="0" />

<xsd:element name="QuantityPerUnit" type="xsd:string" minOccurs="0" />

<xsd:element name="UnitPrice" type="xsd:decimal" minOccurs="0" />

<xsd:element name="UnitsInStock" type="xsd:short" minOccurs="0" />

<xsd:element name="UnitsOnOrder" type="xsd:short" minOccurs="0" />

<xsd:element name="ReorderLevel" type="xsd:short" minOccurs="0" />

<xsd:element name="Discontinued" type="xsd:boolean" minOccurs="0" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="suppliers">

<xsd:complexType>

<xsd:sequence>

<xsd:element name="SupplierID" type="xsd:int" minOccurs="0" />

<xsd:element name="CompanyName" type="xsd:string" minOccurs="0" />

<xsd:element name="ContactName" type="xsd:string" minOccurs="0" />

<xsd:element name="ContactTitle" type="xsd:string" minOccurs="0" />

<xsd:element name="Address" type="xsd:string" minOccurs="0" />

<xsd:element name="City" type="xsd:string" minOccurs="0" />

<xsd:element name="Region" type="xsd:string" minOccurs="0" />

<xsd:element name="PostalCode" type="xsd:string" minOccurs="0" />

<xsd:element name="Country" type="xsd:string" minOccurs="0" />

<xsd:element name="Phone" type="xsd:string" minOccurs="0" />

<xsd:element name="Fax" type="xsd:string" minOccurs="0" />

<xsd:element name="HomePage" type="xsd:string" minOccurs="0" />

</xsd:sequence>

</xsd:complexType>

</xsd:element>

</xsd:choice>

</xsd:complexType>

<xsd:unique name="Constraint1">

<xsd:selector xpath=".//suppliers" />

<xsd:field xpath="SupplierID" />

</xsd:unique>

<xsd:keyref name="Relation1" refer="Constraint1">

<xsd:selector xpath=".//products" />

<xsd:field xpath="SupplierID" />

</xsd:keyref>

</xsd:elements>

 </xsd:schema>

 <products>

<ProductID>1</ProductID>

<ProductName>Chai</ProductName>

<SupplierID>1</SupplierID>

<CategoryID>1</CategoryID>

Поделиться:
Популярные книги

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6

Сердце Дракона. Предпоследний том. Часть 1

Клеванский Кирилл Сергеевич
Сердце дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Сердце Дракона. Предпоследний том. Часть 1

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Под маской, или Страшилка в академии магии

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.78
рейтинг книги
Под маской, или Страшилка в академии магии

Мой любимый (не) медведь

Юнина Наталья
Любовные романы:
современные любовные романы
7.90
рейтинг книги
Мой любимый (не) медведь

Академия

Кондакова Анна
2. Клан Волка
Фантастика:
боевая фантастика
5.40
рейтинг книги
Академия

Играть, чтобы жить. Книга 3. Долг

Рус Дмитрий
3. Играть, чтобы жить
Фантастика:
фэнтези
киберпанк
рпг
9.36
рейтинг книги
Играть, чтобы жить. Книга 3. Долг

Виконт. Книга 4. Колонист

Юллем Евгений
Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.50
рейтинг книги
Виконт. Книга 4. Колонист

Вечный Данж. Трилогия

Матисов Павел
Фантастика:
фэнтези
юмористическая фантастика
6.77
рейтинг книги
Вечный Данж. Трилогия

Мужчина не моей мечты

Ардова Алиса
1. Мужчина не моей мечты
Любовные романы:
любовно-фантастические романы
8.30
рейтинг книги
Мужчина не моей мечты

Последний Паладин. Том 7

Саваровский Роман
7. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 7

Истинная со скидкой для дракона

Жарова Анита
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Истинная со скидкой для дракона

Волк 7: Лихие 90-е

Киров Никита
7. Волков
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волк 7: Лихие 90-е

Кровь Василиска

Тайниковский
1. Кровь Василиска
Фантастика:
фэнтези
попаданцы
аниме
4.25
рейтинг книги
Кровь Василиска