Я сгенерировал классы из схемы XML, используя xsd.Как мне записать их обратно в XML? - PullRequest
0 голосов
/ 19 ноября 2010

XML-схема указывает индекс файлов. Ниже приведен пример того, как должен выглядеть XML-файл.

<?xml version="1.0" encoding="utf-8"?>
<fIndex xsi:schemaLocation="http:address fIndex.xsd" xmlns="address" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <f>
    <foN>SomeDir</foN>
    <fiN>file1.txt</fiN>
  </f>
  <f>
    <foN>SomeDir</foN>
    <fiN>file2.txt</fiN>
  </f>
</fIndex>

Я использовал xsd для создания классов, необходимых для XML. Затем заполните образец кода, чтобы соответствовать приведенному выше примеру.

class Program
    {
        static void Main(string[] args)
        {
            fileIndexType table = new fileIndexType();

            fileIndexTypeF element1 = new fileIndexTypeF();
            fileIndexTypeF element2 = new fileIndexTypeF();

            element1.fiN = @"C:\SomeDir";
            element1.foN = @"file1.txt";
            element2.fiN = @"C:\SomeDir";
            element2.foN = @"file2.txt";

            fileIndexTypeF[] files = new fileIndexTypeF[2] { element1, element2 };
            table.f = files;
        }
    }

Как мне создать вышеуказанный файл XML?

1 Ответ

4 голосов
/ 19 ноября 2010

Вам необходимо сериализовать объекты.

Для этого можно использовать класс XmlSerializer:

XmlSerializer serializer = new XmlSerializer(typeof(fileIndexType));
using(Stream writer = new FileStream(filename, FileMode.Create))
{
  serializer.Serialize(writer, table );
  writer.Close();
}
...