2008-09-16 4 views
6

Я работаю в .NET-приложении, где нам нужно генерировать XML-файлы «на лету» на основе набора данных, извлеченного из db. Схема XML должна основываться на предоставленном xsd. Я хотел бы знать, есть ли способ связать или связать набор данных или каждый datarow с xsd. Я не знаю, можно ли вообще это сделать, или я могу думать об использовании XSD с неправильной точки зрения. Если я ошибаюсь, исправьте меня и дайте мне знать о том, как наилучшим образом связать данные, полученные из db, до предопределенной схемы. Спасибо.Использование xsd для генерации XML в .net

Обновление: Если моя перспектива на xsd неверна, прошу пролить свет на то, как xsds используются (или, возможно, указать мне на некоторые полезные ссылки).

+0

Я искал такой код, не готовый один доступный .. не похоже, что это не так просто. Что ж. Если это для вашего тестирования, то для Altova XMLSpy, работает как камень для создания XML. – 2012-11-22 15:30:16

ответ

1

В дополнении к решению предложенного Joel Coehoorn - генерировать типизированные наборы данных или бизнес-объекты из XSD - позвольте мне добавить несколько других подходы:

  1. Если вы используете базу данных, которая поддерживает тип XML, как Oracle или MS SQL Server, вы можете построить XML прямо в ваших SQL-запросах и получить XML непосредственно из базы данных, минуя популяцию набора данных.
  2. В случае, если ваша схема базы данных непосредственно не отображается на данной XSD, то есть у вас уже есть типизированный набор данных или набор XML-сериализации бизнес-объектов, и эти объекты сериализуются в XML, который не соответствует XSD вы предоставляется с помощью XSLT, чтобы преобразовать XML в другой XML-документ, который будет соответствовать данному XSD.
3

Используйте документ схемы в качестве параметра для программы xsd.exe командной строки в комплекте с визуальной студии для создания класса файлов или типизированных наборов данных, которые вы можете включить в свой проект/решение. Эти классы или наборы данных могут быть сериализованы в xml и будут соответствовать документу схемы, который вы использовали для их создания.

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

Смежные вопросы