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>
Поделиться:
Популярные книги
Зацепить 13-го
1. Парни из школы Томмен
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Хозяйка старой усадьбы
Любовные романы:
любовно-фантастические романы
8.07
рейтинг книги
На границе империй. Том 10. Часть 6
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 12
12. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Начальник милиции. Книга 5
5. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Возвращение
5. Real-Rpg
Фантастика:
боевая фантастика
рпг
альтернативная история
6.80
рейтинг книги
Белые погоны
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Шайтан Иван 4
4. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
8.00
рейтинг книги
Штуцер и тесак
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Первый среди равных. Книга X
10. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Барон Дубов 4
4. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Архил…? Книга 3
3. Архил...?
Фантастика:
фэнтези
попаданцы
альтернативная история
7.00
рейтинг книги
На границе империй. Том 4
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
Тринадцатый
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
6.80