XmlSerializer и схемы

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

XmlSerializer и схемы

Сообщение tyomitch » 29.08.2005 (Пн) 20:14

Имеется XML-файл и класс. Структуры файла и класса несколько отличаются.
Вопрос 1: можно ли создать схему, с помощью которой файл прочитался бы в класс? Можно ли в XSD использовать что-нибудь наподобие XSLT? Или нужно сначала явно трансформировать схему, а потом запихивать в XmlSerializer?
Вопрос 2: можно ли создать схему, с помощью которой половина файла прочиталась бы в класс, а другая проигнорировалась? (цель - иметь в одном файле несколько несвязанных классов и, меняя только схемы, загружать их по одному)

Знакомство с XSD у меня нулевое, может кто-нибудь подскажет нормальный туториал? Линки на w3c.org не считаются, там я уже был и ничего не понял.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 29.08.2005 (Пн) 22:56

Нашёл пару классных статей про XmlSerializer - может, пригодятся кому-нибудь, чтобы не повторять моих ошибок.
Поменьше: http://pluralsight.com/blogs/tewald/arc ... 8/428.aspx
Побольше: http://www.topxml.com/xmlserializer/default.asp

Вопросы 1 и 2 остаются открытыми.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.08.2005 (Вт) 0:08

Оказалось, что прочитать XML-файл в класс с середины можно и без XSD:
Код: Выделить всё
XmlDocument foo = new XmlDocument(); foo.Load ("foo.xml");
XmlNode bar = foo.SelectSingleNode ("/foo/bar");
XmlSerializer s_bar = new XmlSerializer(typeof(CBar));
CBar Bar = (CBar)s_bar.Deserialize (new XmlNodeReader(bar));

В принципе, это меня полностью устраивает. Однако хотелось бы услышать мнения XSD-экспертов о том, насколько к этому применимы схемы.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 31.08.2005 (Ср) 1:04

Продолжаю конструктивный диалог с самим собой :-)
Неужели на всём форуме один я юзаю XmlSerializer? :-?

Получить полный контроль над процессом сериализации в XML можно, реализовав IXmlSerializable, документированный начиная с .net 2.0 (http://msdn2.microsoft.com/library/fhd7bk0a(en-us,vs.80).aspx)
При этом собственную реализацию сериализации можно задать не для всего объекта, а только для отдельных его частей.
Дополнительная информация: http://www.codeproject.com/csharp/XmlSe ... nknown.asp
Изображение


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList