Использование xsd для генерации XML в .net - PullRequest
6 голосов
/ 16 сентября 2008

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

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

Ответы [ 2 ]

3 голосов
/ 16 сентября 2008

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

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

1 голос
/ 17 сентября 2008

В дополнение к решению, предложенному Джоэлем Кохорном (Geneel Coehoorn), - генерируйте типизированные наборы данных или бизнес-объекты из XSD - позвольте мне добавить пару других подходов:

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