Как я могу десериализовать этот XML в полезную структуру данных? - PullRequest
1 голос
/ 15 сентября 2011

Я работаю с форматом квитанции, который возвращается мне как «утверждение saml».Это известный и хорошо определенный формат, но на моей текущей платформе у меня нет доступа к библиотекам, которые могут десериализовать xml в исходные классы.мои собственные классы, но учитывая формат xml, я действительно не знаю, как будут выглядеть классы C # или определения и приемы, необходимые для его десериализации.

Цель состоит в том, чтобы из получения,создать список объектов C #, которые я могу исследовать.Я хотел бы сохранить значение в формате, в узле имени, а также идентификатор.Кроме того, часть того, что делает это сложным, состоит в том, что Statement состоит из элементов subject и attribute.Один из вопросов, которые я хотел бы задать списку, состоит в том, содержит ли этот список утверждение с узлом атрибута, значение «Gamma» которого равно 999.

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Вы можете использовать Инструмент определения схемы XML (Xsd.exe) , чтобы запустить структуру вашего класса.

Вот отличная запись в блоге Йогеша Джоши, в которой описан весь процесс: http://blogs.msdn.com/b/yojoshi/archive/2011/05/14/xml-serialization-and-deserialization-entity-classes-with-xsd-exe.aspx

0 голосов
/ 15 сентября 2011

Как сказал Кон в комментарии, узлы атрибутов должны быть заключены в элемент контейнера. Я не нашел хорошего способа десериализации списка, в котором также есть другие элементы (или атрибуты). Вероятно, вам придется заставить ваш класс реализовать IXmlSerializable и писать больше, чем в противном случае.

...