Это разумный подход к работе с сериализованным XML из стороннего объекта, который я не до конца понимаю? - PullRequest
0 голосов
/ 24 мая 2011

Я получил сериализованные данные экземпляра из стороннего приложения, они в формате XML, и я хочу загрузить их в объект и работать с ним.

Я сгенерировал XSD из XML, и он отлично работает,XML представляет состояние формы, которую заполнил пользователь.В первый раз, когда я сгенерировал XSD, я не заполнил всю форму - экземпляр формы - это то, что сериализовано.Я вернулся и заполнил всю форму, так что все необходимые мне элементы управления присутствовали, и создал новый XSD и использовал XSD2Code для генерации нового класса.

Вопрос в том, не знаю ли якак выглядит вся сериализация для самой формы - мой подход с самого начала несовершенен или это лучшее, что я могу сделать?

Хороший ли способ - прикрепление интерфейсов к элементам управления, которые мне нужны, для сгенерированных классов?чтобы смягчить изменения в характеристиках базовых данных экземпляра?

Теперь я знаю, что по крайней мере мне нужно иметь возможность работать с некоторыми вещами в форме, и все они присутствуют.Если в будущем в форму будет добавлено больше материала, я смогу восстановить XSD и использовать уже существующую реализацию.

Это разумный подход, в котором я создам частичный класс, который указывает на сгенерированные классычто они, по крайней мере, реализуют то, что мне нужно?

Есть ли что-нибудь, что вы можете предвидеть, которое бросит вызов написанному мною коду, который работает с этими интерфейсными типами в классе экземпляра?

Есть лиспособ иметь мои десериализационные методы, а не ломать, если есть вещи, которые он не ожидает?

1 Ответ

1 голос
/ 24 мая 2011

Невежество, как правило, не лучшая практика.

Если они отправляют вам XML, то неужели они не знают, в каком он виде? У них нет XSD?

По крайней мере, они не могут предоставить вам документ в формате?

В любом случае вам нужен XSD, представляющий то, что они на самом деле будут отправлять вам, чтобы вы могли генерировать классы, соответствующие тому, что вы фактически получите. Возможно даже, что вы обнаружите, что отправляемая им XML-структура не соответствует ни одному из возможных наборов классов, и вам придется десериализовать «вручную».

...