Я знаю, что это неопределенный открытый вопрос. Я надеюсь получить общее руководство.
Мне нужно добавить пункт cXML на сайт / приложение ASP.NET C #. Это заменяет то, что я написал несколько лет назад в ColdFusion.
Я достаточно опытный разработчик C #, но я мало что сделал с XML. Кажется, есть много разных вариантов обработки XML в .NET.
Вот открытый вопрос: Предполагая, что у меня есть XML-документ в некоторой форме, например, файл или строка, каков наилучший способ вставить его в мой код? Я хочу получить данные, а затем запросить базы данных и т. Д. Размер документа cXML и объемы нашего трафика достаточно малы, так что загрузка документа cXML в память не является проблемой.
Должен ли я:
1) Вручную создавать классы на основе dtd и использовать XML Serializer?
2) Используйте инструмент для генерации классов. Есть примеры файлов cXML, которые можно загрузить с Ariba.com.
Я попытался xsd.exe для генерации xsd, а затем xsd.exe / c для генерации классов. Когда я пытаюсь десериализовать, я получаю ошибки, потому что, кажется, существует «путаница» в отношении того, должны ли некоторые элементы иметь отдельные значения или массивы.
Я попробовал онлайн-инструмент CodeXS, но он выдает ошибки в журнале и ошибки, если я пытаюсь десериализовать образец документа.
2) Создать набор данных и ReadXml ()?
3) Создать типизированный набор данных и ReadXml ()?
4) Используйте Linq to XML. Я часто использую Linq для Objects, поэтому я знаком с Linq в целом, но я изо всех сил пытаюсь понять, что это дает мне в этой ситуации.
5) Некоторые другие средства.
Я думаю, мне нужно улучшить мое понимание XML в целом, но даже в этом случае ... я упускаю какой-то очевидный способ сделать это? На старом сайте ColdFusion я обнаружил бесплатный компонент («тег»), который в основном игнорировал любую схему и считывал XML в «структуру», которая по сути представляет собой серию вложенных хеш-таблиц, которые затем легко читались в коде. Это было, вероятно, довольно небрежно, но это сработало.
Мне также нужно генерировать файлы XML из моих объектов C #. Возможно, Linq to XML подойдет для этого. Я мог бы начать со стандартного «шаблона» документа и манипулировать им перед сохранением.
Спасибо за любые указатели ...