Ошибка при работе с XML - C#

Узнай цену своей работы

Формулировка задачи:

Нужно данные с XML файла переместить в коллекцию. Вот сам XML файл
Листинг программы
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <User xmlns="urn:task-manager">
  3. <users>
  4. <Login>Superuser</Login>
  5. <FirstName>Максим</FirstName>
  6. <LastName>Аверкин</LastName>
  7. <Locale>ru</Locale>
  8. <TimeZone>E. Europe Standard Time</TimeZone>
  9. <RegistrationDate>2014-10-03T00:00:00</RegistrationDate>
  10. <FullName>Максим Аверкин</FullName>
  11. <Password>5f4dcc3b5aa765d61d8327deb882cf99</Password>
  12. <Role>User</Role>
  13. <Id>0d2da234-6b23-41db-b25a-3310add1d89a</Id>
  14. </users>
  15. <users>
  16. <Login>LittlePonny</Login>
  17. <FirstName>Ольга</FirstName>
  18. <LastName>Нефедова</LastName>
  19. <Locale>ru</Locale>
  20. <TimeZone>E. Europe Standard Time</TimeZone>
  21. <RegistrationDate>2014-11-06T00:00:00</RegistrationDate>
  22. <FullName>Ольга Нефедова</FullName>
  23. <Password>25f9e794323b453885f5181f1b624d0b</Password>
  24. <Role>User</Role>
  25. <Id>c2b0bd56-65f9-4c26-a972-a17e52b7a461</Id>
  26. </users>
  27. <users>
  28. <Login>Smuzy</Login>
  29. <FirstName>Олег</FirstName>
  30. <LastName>Смойлов</LastName>
  31. <Locale>ru</Locale>
  32. <TimeZone>E. Europe Standard Time</TimeZone>
  33. <RegistrationDate>2014-05-10T00:00:00</RegistrationDate>
  34. <FullName>Олег Смойлов</FullName>
  35. <Password>ee95a16d763ab0d26ee62c53056df928</Password>
  36. <Role>User</Role>
  37. <Id>3b411036-af57-413c-812c-6bee5c39ddac</Id>
  38. </users>
  39. <users>
  40. <Login>Ragana</Login>
  41. <FirstName>Кристина</FirstName>
  42. <LastName>Вершинина</LastName>
  43. <Locale>ru</Locale>
  44. <TimeZone>E. Europe Standard Time</TimeZone>
  45. <RegistrationDate>2015-10-01T00:00:00</RegistrationDate>
  46. <FullName>Кристина Вершинина</FullName>
  47. <Password>673eb027e9c056f57140322807351dd5</Password>
  48. <Role>User</Role>
  49. <Id>0244be75-fc0e-456e-9471-2846ed05736d</Id>
  50. </users>
  51. <users>
  52. <Login>Akakiy</Login>
  53. <FirstName>Игорь</FirstName>
  54. <LastName>Кривицкий</LastName>
  55. <Locale>ru</Locale>
  56. <TimeZone>E. Europe Standard Time</TimeZone>
  57. <RegistrationDate>2015-02-20T00:00:00</RegistrationDate>
  58. <FullName>Игорь Кривицкий</FullName>
  59. <Password>cb1d3a6249c2d223c620393fa6420868</Password>
  60. <Role>User</Role>
  61. <Id>dd073703-68ef-4b3a-bd70-d4a19a87e8e1</Id>
  62. </users>
  63. <users>
  64. <Login>Lary</Login>
  65. <FirstName>Сергей</FirstName>
  66. <LastName>Микулич</LastName>
  67. <Locale>ru</Locale>
  68. <TimeZone>E. Europe Standard Time</TimeZone>
  69. <RegistrationDate>2015-01-03T00:00:00</RegistrationDate>
  70. <FullName>Сергей Микулич</FullName>
  71. <Password>6ab3d0526bb1d023ab7c4fee4fb684df</Password>
  72. <Role>User</Role>
  73. <Id>10f387d8-3671-40dd-a4f8-999ff3975ddb</Id>
  74. </users>
  75. <users>
  76. <Login>Grazyy</Login>
  77. <FirstName>Виталий</FirstName>
  78. <LastName>Евтухов</LastName>
  79. <Locale>ru</Locale>
  80. <TimeZone>E. Europe Standard Time</TimeZone>
  81. <RegistrationDate>2015-04-24T00:00:00</RegistrationDate>
  82. <FullName>Виталий Евтухов</FullName>
  83. <Password>a77224c90dc6867f603a3afd92767598</Password>
  84. <Role>User</Role>
  85. <Id>07eb366f-3918-4e52-8ebb-2407a1f96390</Id>
  86. </users>
  87. <users>
  88. <Login>Bigboss</Login>
  89. <FirstName>Валерий</FirstName>
  90. <LastName>Маковецкий</LastName>
  91. <Locale>ru</Locale>
  92. <TimeZone>E. Europe Standard Time</TimeZone>
  93. <RegistrationDate>2014-03-08T00:00:00</RegistrationDate>
  94. <FullName>Валерий Маковецкий</FullName>
  95. <Password>d8578edf8458ce06fbc5bb76a58c5ca4</Password>
  96. <Role>User</Role>
  97. <Id>51c2844b-938c-4ba1-b50a-af6dea8a765d</Id>
  98. </users>
  99. <users>
  100. <Login>Administrator</Login>
  101. <FirstName>Константин</FirstName>
  102. <LastName>Горбачёв</LastName>
  103. <Locale>ru</Locale>
  104. <TimeZone>E. Europe Standard Time</TimeZone>
  105. <RegistrationDate>2014-01-02T00:00:00</RegistrationDate>
  106. <FullName>Константин Горбачёв</FullName>
  107. <Password>21232f297a57a5a743894a0e4a801fc3</Password>
  108. <Role>Admin</Role>
  109. <Id>5fca13d8-91d6-4023-b60a-d9334ec5c983</Id>
  110. </users>
  111. <users>
  112. <Login>Login</Login>
  113. <FirstName>FirstName</FirstName>
  114. <LastName>LastName</LastName>
  115. <Locale>ru</Locale>
  116. <TimeZone>Paraguay Standard Time</TimeZone>
  117. <RegistrationDate>2015-05-19T14:35:33</RegistrationDate>
  118. <FullName>FirstName LastName</FullName>
  119. <Password>50f3fca4c6134bd001fdfe3159686be9</Password>
  120. <Role>User</Role>
  121. <Id>36fb1c67-7363-4cae-a8f9-7b0a9bcdfb3e</Id>
  122. </users>
  123. <users>
  124. <Login>Vinny</Login>
  125. <FirstName>Владимир</FirstName>
  126. <LastName>Некрасов</LastName>
  127. <Locale>en</Locale>
  128. <TimeZone>E. Europe Standard Time</TimeZone>
  129. <RegistrationDate>2014-12-15T00:00:00</RegistrationDate>
  130. <FullName>Владимир Некрасов</FullName>
  131. <Password>1897a69ef451f0991bb85c6e7c35aa31</Password>
  132. <Role>User</Role>
  133. <Id>0ee509d6-8c7d-4070-98dd-9003cb266496</Id>
  134. </users>
  135. </User>
Вот класс сущности:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using TaskManager.DAL;
  8. namespace TaskManager.DAL.Entities
  9. {
  10. [Serializable]
  11. public class User : IEntity
  12. {
  13. public string Login { get; set; }
  14. public string FirstName { get; set; }
  15. public string LastName { get; set; }
  16. public string Locale { get; set; }
  17. public string TimeZone { get; set; }
  18. public DateTime RegistrationDate { get; set; }
  19. //public string FullName
  20. //{
  21. // get { return string.Format("{0} {1}", FirstName, LastName); }
  22. //}
  23. public string Password { get; set; }
  24. public string Role { get; set; }
  25. }
  26. }
А вот метод для десериализации:
Листинг программы
  1. public List<T> GetAll<T>(string path, string pathxsd)
  2. {
  3. logger.Trace("Sample trace message");
  4. logger.Debug("Sample debug message");
  5. logger.Info("Sample informational message");
  6. logger.Warn("Sample warning message");
  7. logger.Error("Sample error message");
  8. logger.Fatal("Sample fatal error message");
  9. // bool result = DtdValidation(path);
  10. bool resultxsd = XsdValidation(path, pathxsd);
  11. XmlSerializer serializer = new XmlSerializer(typeof(T));
  12. List<T> list = new List<T>();
  13. object locker = new object();
  14. if (resultxsd == true)
  15.  
  16. {
  17. using (FileStream stream = File.OpenRead(path))
  18. {
  19. list = (List<T>) serializer.Deserialize(stream);
  20. }
  21. }
  22. return list;
  23. }
При запуске в строке
Листинг программы
  1. list = (List<T>) serializer.Deserialize(stream);
выскакивает исключение:
Исключение типа "System.InvalidOperationException" возникло в System.Xml.dll, но не было обработано в коде пользователя Дополнительные сведения: В документе XML (2, 2) присутствует ошибка.
Подскажите в чём может быть дело?

Решение задачи: «Ошибка при работе с XML»

textual
Листинг программы
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Users xmlns="urn:task-manager">
  3.   <User>
  4.     <Login>Superuser</Login>
  5.     <FirstName>Максим</FirstName>
  6.     <LastName>Аверкин</LastName>
  7.     <Locale>ru</Locale>
  8.     <TimeZone>E. Europe Standard Time</TimeZone>
  9.     <RegistrationDate>2014-10-03T00:00:00</RegistrationDate>
  10.     <FullName>Максим Аверкин</FullName>
  11.     <Password>5f4dcc3b5aa765d61d8327deb882cf99</Password>
  12.     <Role>User</Role>
  13.     <Id>0d2da234-6b23-41db-b25a-3310add1d89a</Id>
  14.   </User>
  15.   <User>
  16.     <Login>LittlePonny</Login>
  17.     <FirstName>Ольга</FirstName>
  18.     <LastName>Нефедова</LastName>
  19.     <Locale>ru</Locale>
  20.     <TimeZone>E. Europe Standard Time</TimeZone>
  21.     <RegistrationDate>2014-11-06T00:00:00</RegistrationDate>
  22.     <FullName>Ольга Нефедова</FullName>
  23.     <Password>25f9e794323b453885f5181f1b624d0b</Password>
  24.     <Role>User</Role>
  25.     <Id>c2b0bd56-65f9-4c26-a972-a17e52b7a461</Id>
  26.   </User>
  27.   <User>
  28.     <Login>Smuzy</Login>
  29.     <FirstName>Олег</FirstName>
  30.     <LastName>Смойлов</LastName>
  31.     <Locale>ru</Locale>
  32.     <TimeZone>E. Europe Standard Time</TimeZone>
  33.     <RegistrationDate>2014-05-10T00:00:00</RegistrationDate>
  34.     <FullName>Олег Смойлов</FullName>
  35.     <Password>ee95a16d763ab0d26ee62c53056df928</Password>
  36.     <Role>User</Role>
  37.     <Id>3b411036-af57-413c-812c-6bee5c39ddac</Id>
  38.   </User>
  39.   <User>
  40.     <Login>Ragana</Login>
  41.     <FirstName>Кристина</FirstName>
  42.     <LastName>Вершинина</LastName>
  43.     <Locale>ru</Locale>
  44.     <TimeZone>E. Europe Standard Time</TimeZone>
  45.     <RegistrationDate>2015-10-01T00:00:00</RegistrationDate>
  46.     <FullName>Кристина Вершинина</FullName>
  47.     <Password>673eb027e9c056f57140322807351dd5</Password>
  48.     <Role>User</Role>
  49.     <Id>0244be75-fc0e-456e-9471-2846ed05736d</Id>
  50.   </User>
  51.   <User>
  52.     <Login>Akakiy</Login>
  53.     <FirstName>Игорь</FirstName>
  54.     <LastName>Кривицкий</LastName>
  55.     <Locale>ru</Locale>
  56.     <TimeZone>E. Europe Standard Time</TimeZone>
  57.     <RegistrationDate>2015-02-20T00:00:00</RegistrationDate>
  58.     <FullName>Игорь Кривицкий</FullName>
  59.     <Password>cb1d3a6249c2d223c620393fa6420868</Password>
  60.     <Role>User</Role>
  61.     <Id>dd073703-68ef-4b3a-bd70-d4a19a87e8e1</Id>
  62.   </User>
  63.   <User>
  64.     <Login>Lary</Login>
  65.     <FirstName>Сергей</FirstName>
  66.     <LastName>Микулич</LastName>
  67.     <Locale>ru</Locale>
  68.     <TimeZone>E. Europe Standard Time</TimeZone>
  69.     <RegistrationDate>2015-01-03T00:00:00</RegistrationDate>
  70.     <FullName>Сергей Микулич</FullName>
  71.     <Password>6ab3d0526bb1d023ab7c4fee4fb684df</Password>
  72.     <Role>User</Role>
  73.     <Id>10f387d8-3671-40dd-a4f8-999ff3975ddb</Id>
  74.   </User>
  75.   <User>
  76.     <Login>Grazyy</Login>
  77.     <FirstName>Виталий</FirstName>
  78.     <LastName>Евтухов</LastName>
  79.     <Locale>ru</Locale>
  80.     <TimeZone>E. Europe Standard Time</TimeZone>
  81.     <RegistrationDate>2015-04-24T00:00:00</RegistrationDate>
  82.     <FullName>Виталий Евтухов</FullName>
  83.     <Password>a77224c90dc6867f603a3afd92767598</Password>
  84.     <Role>User</Role>
  85.     <Id>07eb366f-3918-4e52-8ebb-2407a1f96390</Id>
  86.   </User>
  87.   <User>
  88.     <Login>Bigboss</Login>
  89.     <FirstName>Валерий</FirstName>
  90.     <LastName>Маковецкий</LastName>
  91.     <Locale>ru</Locale>
  92.     <TimeZone>E. Europe Standard Time</TimeZone>
  93.     <RegistrationDate>2014-03-08T00:00:00</RegistrationDate>
  94.     <FullName>Валерий Маковецкий</FullName>
  95.     <Password>d8578edf8458ce06fbc5bb76a58c5ca4</Password>
  96.     <Role>User</Role>
  97.     <Id>51c2844b-938c-4ba1-b50a-af6dea8a765d</Id>
  98.   </User>
  99.   <User>
  100.     <Login>Administrator</Login>
  101.     <FirstName>Константин</FirstName>
  102.     <LastName>Горбачёв</LastName>
  103.     <Locale>ru</Locale>
  104.     <TimeZone>E. Europe Standard Time</TimeZone>
  105.     <RegistrationDate>2014-01-02T00:00:00</RegistrationDate>
  106.     <FullName>Константин Горбачёв</FullName>
  107.     <Password>21232f297a57a5a743894a0e4a801fc3</Password>
  108.     <Role>Admin</Role>
  109.     <Id>5fca13d8-91d6-4023-b60a-d9334ec5c983</Id>
  110.   </User>
  111.   <User>
  112.     <Login>Login</Login>
  113.     <FirstName>FirstName</FirstName>
  114.     <LastName>LastName</LastName>
  115.     <Locale>ru</Locale>
  116.     <TimeZone>Paraguay Standard Time</TimeZone>
  117.     <RegistrationDate>2015-05-19T14:35:33</RegistrationDate>
  118.     <FullName>FirstName LastName</FullName>
  119.     <Password>50f3fca4c6134bd001fdfe3159686be9</Password>
  120.     <Role>User</Role>
  121.     <Id>36fb1c67-7363-4cae-a8f9-7b0a9bcdfb3e</Id>
  122.   </User>
  123.   <User>
  124.     <Login>Vinny</Login>
  125.     <FirstName>Владимир</FirstName>
  126.     <LastName>Некрасов</LastName>
  127.     <Locale>en</Locale>
  128.     <TimeZone>E. Europe Standard Time</TimeZone>
  129.     <RegistrationDate>2014-12-15T00:00:00</RegistrationDate>
  130.     <FullName>Владимир Некрасов</FullName>
  131.     <Password>1897a69ef451f0991bb85c6e7c35aa31</Password>
  132.     <Role>User</Role>
  133.     <Id>0ee509d6-8c7d-4070-98dd-9003cb266496</Id>
  134.   </User>
  135. </Users>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут