Задать вопрос

Как работать с XML-файлом в приложении C#?

Добрый вечер. Имеется папка с XML-файлами со множеством элементов, вложенностей и сложной структурой, которые необходимо записать в несколько связанных таблиц. Но перед записью необходимо проверить XML-ки на корректность структуры, соответствие типов данных, содержащихся элементов, наличие обязат. элементов и т.д.
Эта задача решается с помощью проверки xml-файлов по xsd-схеме.
Но слышал есть еще способ реализовать такую проверку путем написания C# классов с соответствующими элементам xml переменными, что-то наподобие:
<xml>
    <name>Samir</name>
    <dr>1996-09-16</dr>
    <okato>82000</okato>
</xml>

C# класс этой xml-ки:
using System;
using System.Xml.Serialization;
using System.Collections.Generic;
namespace Xml2CSharp
{
	[XmlRoot(ElementName="xml")]
	public class Xml {
		[XmlElement(ElementName="name")]
		public string Name { get; set; }
		[XmlElement(ElementName="dr")]
		public DateTime Dr { get; set; }
		[XmlElement(ElementName="okato")]
		public string Okato { get; set; }
	}
}

Вопрос, можно ли вторым способом проверить наличие обязательных/лишних элементов в проверяемом xml-файле?
Как можно сверить xml-элемент с выше описанным классом?
Является ли проверка по XSD-схеме более производительным или удобным вариантом?
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy
Android developer at Yandex
Предположим, ты проверишь xml с помощью схемы.. и что дальше? Чтобы разложить его в бд, тебе всё равно нужно будет его распарсить.
Ответ написан
Комментировать
kurbanov_samir
@kurbanov_samir Автор вопроса
@agayevskiy, Нет, далее xml-ку ждут еще более углубленные проверки на соответствие НСИ (справочникам), проверки существования определенных элементов в базе и т.д. А проводиться будет эта проверка на уровне хранимых процедур (T-SQL), в которые файл будет передаваться как параметр ХП.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы