Использование файла XSD в VS2005 - PullRequest
1 голос
/ 18 мая 2010

Я хочу написать файл XML. Я создал файл XSD с именем XMLSchema.xsd и запустил команду «xsd / c XMLSchema.xsd», которая сгенерировала файл класса c #. Теперь, как мне использовать этот файл для генерации файлов XML?

Часть моего кода:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema" targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" >
<xs:element name="root">
   <xs:complexType>
      <xs:sequence>
         <xs:element name="Audit">
            <xs:complexType>
               ...

, который генерирует корень класса c #.

Как мне вызвать «root» из моей веб-программы на C #?

Спасибо

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Вам нужно включить файл root.cs в ваш проект, тогда он будет доступен.

Для чтения и записи файлов XML с использованием этого класса необходимо использовать сериализация .

0 голосов
/ 18 мая 2010

Как сказал Одед, вы просто включаете сгенерированный файл в свой проект. Что касается загрузки / сохранения, вы просто создаете новый XmlSerializer для вашего сгенерированного класса, то есть root. В коде:

Загрузка:

using (var fileStream = File.OpenRead(xmlFilePath))
{
    using (var reader = new StreamReader(fileStream))
    {
        Root data;
        var serializer = new XmlSerializer(typeof(Root));

        try
        {
            data = serializer.Deserialize(reader) as T;
        }
        catch (InvalidOperationException exception)
        {
            // XML is invalid
            return null;
        }

        return data;
    }
}

Сохранение:

using (var fs = File.Create(targetPath))
{
    using (var writer = new StreamWriter(fs))
    {
        var serializer = new XmlSerializer(typeof(Root));
        serializer.Serialize(writer, value);
    }
}
...