в документе xml есть ошибка (2 2) xmlns='' не ожидалось

Ошибка, которую я получаю, снова и снова отвечает на stackoverflow, я пробовал несколько изменений в коде, но не смог удалить ошибку. вот класс, который я использую для сериализации и десериализации. Пожалуйста, взгляните на это.

Я не понимаю такие термины, как XMLroot, элемент XML и пространство имен. Поэтому, пожалуйста, ответьте соответствующим образом, например, какое пространство имен я должен указать, что может быть корнем XML.

Если бы вы могли отредактировать его, было бы здорово:

namespace tudumo9
{

  public class data
  {
    public string project_name;
    public string note_text;
    public string tag_text;
    public DateTime start_date;
    public DateTime due_date;
    public string action;

    public  data(){}

  }
}

Мой XML:

<?xml version="1.0"?>
<ArrayOfData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <data>
    <project_name>p1</project_name>
    <tag_text>tagged</tag_text>
    <start_date>0001-01-01T00:00:00</start_date>
    <due_date>0001-01-01T00:00:00</due_date>
    <action>Action</action>
  </data>
</ArrayOfData>

person Community    schedule 07.05.2015    source источник
comment
вот как это выглядит   -  person    schedule 07.05.2015
comment
Проверьте xml, пожалуйста   -  person    schedule 07.05.2015
comment
я пробовал с этой штукой   -  person    schedule 07.05.2015
comment
[Serializable,XmlRoot(ElementName=data,Namespace=w3.org/2001/XMLSchema- экземпляр/)]   -  person    schedule 07.05.2015
comment
Я могу десериализовать, если я сериализую только один объект, но когда я делаю это со списком, я получаю эту ошибку   -  person    schedule 07.05.2015
comment
Со списком? Что ты имеешь в виду? Несколько элементов <data> в xml?   -  person Herdo    schedule 07.05.2015
comment
Да несколько объектов класса "данные"   -  person    schedule 07.05.2015
comment
В примере XML я использую тип List‹data› для сериализации и десериализации, хотя я создал только один проект для примера и получаю сообщение об ошибке, но вместо этого, если я использую данные типа, ошибки нет   -  person    schedule 07.05.2015
comment
Если проблема возникает только при использовании более одного объекта, вам необходимо опубликовать пример с двумя объектами!   -  person John Saunders    schedule 09.05.2015


Ответы (1)


Попробуй это

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Xml;
using System.Xml.Serialization;


namespace ConsoleApplication25
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XmlSerializer xs = new XmlSerializer(typeof(ArrayOfData));
            XmlTextReader reader = new XmlTextReader(FILENAME);
            ArrayOfData newArrayOfData = (ArrayOfData)xs.Deserialize(reader);

        }

    }
    [XmlRoot("ArrayOfData")]
    public class ArrayOfData
    {
        [XmlElement("data")]
        public List<data> c_Data { get; set; }
    }

    [XmlRoot("data")]
    public class data
    {
        [XmlElement("project_name")]
        public string project_name { get; set; }
        [XmlElement("note_text")]
        public string note_text { get; set; }
        [XmlElement("tag_text")]
        public string tag_text { get; set; }
        [XmlElement("start_date")]
        public DateTime start_date { get; set; }
        [XmlElement("due_date")]
        public DateTime due_date { get; set; }
        [XmlElement("action")]
        public string action { get; set; }
    }
}
person jdweng    schedule 07.05.2015
comment
‹Arrayofdata xmlns=› не ожидается - person ; 07.05.2015
comment
Чем использование класса ArrayofData с элементом списка данных класса отличается от моего подхода к использованию только списка данных класса - person ; 07.05.2015
comment
Это функция десериализации, которую я забавляю - person ; 07.05.2015
comment
public static ArrayOfData load(string filename) { using (var stream = new FileStream(filename, FileMode.Open)) { var xml = new XmlSerializer(typeof(data)); вернуть (ArrayOfData)xml.Десериализовать (поток); } } - person ; 07.05.2015
comment
private void Form1_Load (отправитель объекта, EventArgs e) { all_data = load (data.xml); } - person ; 07.05.2015
comment
Добавил свой обычный код. Поток иногда вызывает проблемы, поэтому я обычно использую программу для чтения текстов. - person jdweng; 07.05.2015