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

на главную - закладки

Жанры

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>

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

Имя нам Легион. Том 9

Дорничев Дмитрий
9. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 9

Переиграть войну! Пенталогия

Рыбаков Артем Олегович
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
Переиграть войну! Пенталогия

Наследник хочет в отпуск

Тарс Элиан
5. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник хочет в отпуск

Офицер

Земляной Андрей Борисович
1. Офицер
Фантастика:
боевая фантастика
7.21
рейтинг книги
Офицер

Темный Лекарь 2

Токсик Саша
2. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Темный Лекарь 2

Академия проклятий. Книги 1 - 7

Звездная Елена
Академия Проклятий
Фантастика:
фэнтези
8.98
рейтинг книги
Академия проклятий. Книги 1 - 7

Неудержимый. Книга XVI

Боярский Андрей
16. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XVI

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая

Ваше Сиятельство 9

Моури Эрли
9. Ваше Сиятельство
Фантастика:
боевая фантастика
попаданцы
стимпанк
аниме
фэнтези
5.00
рейтинг книги
Ваше Сиятельство 9

Мастер Разума IV

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV

Калибр Личности 1

Голд Джон
1. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 1

Измена. Тайный наследник. Том 2

Лаврова Алиса
2. Тайный наследник
Фантастика:
фэнтези
5.00
рейтинг книги
Измена. Тайный наследник. Том 2

Искатель 1

Шиленко Сергей
1. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Искатель 1

Трактир «Разбитые надежды»

Свержин Владимир Игоревич
1. Трактир "Разбитые надежды"
Фантастика:
боевая фантастика
7.69
рейтинг книги
Трактир «Разбитые надежды»