Visual Xml в .net объект сопоставления - PullRequest
2 голосов
/ 09 февраля 2009

Привет, ребята: мне нужно экспортировать мои данные, практически всю структуру модели домена, в формальный XML-файл. Кто-нибудь знает визуальный инструмент, который я могу использовать для сопоставления схемы XML с моей объектной моделью .NET?

Ответы [ 4 ]

1 голос
/ 11 февраля 2009

Самый простой способ экспортировать ваши объекты в xml - пометить каждый класс атрибутом <Serializalbe>. Затем позвоните XmlSerializer.Serialize().

Вы также можете импортировать XML обратно в ваши объекты, используя XmlSerializer.Deserialize().

Если вам нужна схема, вы можете использовать xsd.exe для ее генерации, используя:

  1. Сама библиотека классов: xsd.exe myClassLibrary.dll
  2. XML-файл, созданный при вызове XmlSerializer.Deserialize (): xsd.exe myFile.xml

Дополнительные сведения см. В документации по xsd.exe и XmlSerializer .

0 голосов
/ 13 марта 2009

Другие отмечают поддержку XSD в visual studio. У него есть визуальный дизайнер, но он не будет отображаться на ваши классы - он может создавать строго типизированные объекты.

XMLSerialization хорош в нескольких случаях: 1) передача данных (веб-сервисы) 2) для экономии времени в прототипах. Я настоятельно рекомендую против прямой XML-сериализации объектов в качестве механизма персистентности (постоянное хранилище). Когда вам нужно изменить схему, это будет больно. Да, есть теоретические решения, я никогда не видел, чтобы они легко работали на практике. Я чувствовал большую боль в поддержании (и реорганизации) решений для быстрой сериализации и очень уверен в этом:)

Вопрос в том, почему вы экспортируете модель домена? Это просто функция экспорта? Если так, сериализация, вероятно, отличная. Вы можете не найти визуальный инструмент для этого. Но обычно легко создать формальный, даже симпатичный XML с атрибутами в классах.

0 голосов
/ 11 февраля 2009

Я не знаю поддержки такого сценария в .NET Framework.

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

0 голосов
/ 09 февраля 2009

Другой способ прост: вы можете использовать xsd.exe для генерации моделей классов с привязкой к данным .Net из схем XSD.

Но взять произвольную объектную модель в .Net и сериализовать ее в XML - я даже не уверен, что это возможно. Некоторые из ваших типов обязательно будут более сложными, чем те, которые вы можете представить в XML. Так что начинать со стороны XML, похоже, необходимо.

...