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



, которое поддерживает типы данных XDR, и другое значение www.w3.org/1999/XMLSchema-data-types, которое является схемой W3C типов данных XSD. Чтобы использовать, например, тип данных >TimeSpan, необходимо будет задать это свойство для типов данных XSD.

Приведем простой пример, чтобы увидеть, как может использоваться класс >TextWriter(пример находится в папке >XMLWriterSample1):

>private void button1_Click(object sender, System.EventArgs e) {

> // измените в соответствии с используемой структурой путей доступа

> string fileName="..\\..\\..\\booknew.xml";

> //создайте XmlTextWriter

> XmlTextWriter tw=new XmlTextWriter(fileName, null);

> // задайте форматирование с отступом

> tw.Formatting=Formatting.Indented;

> tw.WriteStartDocument();

> //Начать создание элементов и атрибутов

> tw.WriteStartElement("book");

> tw.WriteAttributeString("genre", "Mystery");

> tw.WriteAttributeString("publicationdate", "2001");

> tw.WriteAttributeString("ISBN", "123456789");

> tw.WriteElementString("title", "Case of the Missing Cookie");

> tw.WriteStartElement("author");

> tw.WriteElementString("name", "Cookie Monster");

> tw.WriteEndElement();

> tw.WriteElementString("price", "9.99");

> tw.WriteEndElement();

> tw.WriteEndDocument();

> // очистить

> tw.Flush();

> tw.Close();

>}

Создадим новый файл >booknew.xml и добавим новую книгу. Объект >XmlTextWriter заменит существующий файл. Вставку нового элемента или узла в существующий документ рассмотрим позже. Экземпляр объекта >XmlTextWriter создается с помощью объекта >FileStream в качестве параметра. Можно также передать строку с именем файла и путем доступа или объект на основе >TextWriter. При задании свойства >Indenting узлы-потомки будут автоматически делать отступ от предка. Метод >WriteStartDocument() помещает объявление документа. Начинаем запись данных. Сначала идет элемент >book. Затем добавляем атрибуты >genre, >publicationdate и >ISBN. После чего записываем элементы >title, >author, и price. Отметим, что элемент >author имеет элемент-потомок >name.

После нажатия на кнопку будет создан следующий файл >booknew.xml:

>

>

Case of the Missing Cookie

Cookie Monster

9,99

>

Так же как в документе XML, здесь имеются начальный метод и конечный метод (>WriteStartElement и >WriteEndElement). Вложенность контролируется отслеживанием начала и окончания записи элементов и атрибутов. Это можно видеть при добавлении элемента потомка