Каков наилучший способ чтения и записи документов cXML в C#?
Я знаю, что это неопределенный открытый вопрос. Я надеюсь получить общее руководство.
Мне нужно добавить cXML punchout на сайт / приложение 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 подойдет для этого. Я мог бы начать с "шаблонного" документа по умолчанию и манипулировать им перед сохранением.
Спасибо за любые указатели...
1 ответ
Если вам нужно сгенерировать произвольный XML в точном формате, вы должны сгенерировать его вручную, используя LINQ-to-XML.