Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 XML-СУБД и обратно  [new]
юморист
Guest
Продублирую свой вопрос

Товарищи, подскажите плиз варианты решения задачи:
Есть БД.
Есть xsd-схема
Требуется с использованием данных из БД создавать xml документы по этой схеме.
Также требуется сохранять в БД данные, поступающие в других xml-документах, которые также соответствуют этой xsd-схеме.

Всякие детали:
Схема чужая, периодически будет меняться. Схем, по сути, две, одна импортирует из другой пространство имён.
СУБД MSSQL. Желательно максимум работы выполнить на стороне сервера БД, но можно прикрутить и .Net клиента.
3 мар 14, 13:20    [15662332]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
Glory
Member

Откуда:
Сообщений: 104751
юморист
Требуется с использованием данных из БД создавать xml документы по этой схеме.

xml создаются командой FOR XML со множеством опций

юморист
Также требуется сохранять в БД данные, поступающие в других xml-документах, которые также соответствуют этой xsd-схеме.

XML Bulk Load
3 мар 14, 13:31    [15662448]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
юморист
Guest
Glory, спасибо. То, что Вы написали мне известно, но это не совсем то, что хотелось бы.
С точки зрения сопровождения C# сборка, которая делала бы необходимые преобразования перед сохранением XML смотрелась бы получше. Да и сопровождать это дело (как мне кажется) поудобней, чем много скриптового кода.
Мне интересно, кто какие инструменты для подобных задач использовал. Помимо тех, что Вы назвали
3 мар 14, 15:23    [15663505]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
Glory
Member

Откуда:
Сообщений: 104751
юморист
С точки зрения сопровождения C# сборка, которая делала бы необходимые преобразования перед сохранением XML смотрелась бы получше.

Для сопровождения MSSQL какая то сборка лучше нативного TSQL ?

юморист
Да и сопровождать это дело (как мне кажется) поудобней, чем много скриптового кода.

Огласите критерии удобства
3 мар 14, 15:25    [15663528]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
юморист
Guest
Glory
Для сопровождения MSSQL какая то сборка лучше нативного TSQL ?

Ну, моё мнение тут такое, что it depends. Например, метод класса, который выполняет маппинг перечисляемого типа схемы значениям таблиц в БД мне нравится больше, чем новая t-sql функция, которая нигде, кроме как этого маппинга использоваться не будет. Если хотите, то она просто лишняя в списке функций на сервере. Её место больше в сборке, тем более, что в C# инструментов для xml видится побольше.

Glory
Огласите критерии удобства

У меня схема на 10 типов документов, имеющая 50 complex type. И при изменении одного complex type я бы хотел поправить только один, соответствующий этому типу класс. Потом отладится на тестовом xml, используя для этого возможности студии по дебагу. На t-sql мне для этого придётся ломать голову с многоуровневыми select for xml, альясами столбцов для получения атрибутов, порядком join и т.д.

Вообще, Glory, мой опыт в большей степени связан с DB-разработкой, а не .Net и я бы с удовольствием сделал бы всё на транзакте. Но работать с XML, все таки, более удобно из C# (пмсм)
3 мар 14, 16:15    [15663979]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
Glory
Member

Откуда:
Сообщений: 104751
Т.е. вопрос о том, как сделать универсальный конвертор XML-СУБД-XML на стороне MSSQL ?
3 мар 14, 16:26    [15664080]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
юморист
Guest
Glory
Т.е. вопрос о том, как сделать универсальный конвертор XML-СУБД-XML на стороне MSSQL ?
Нет. Вопрос в том, что общественность использует для решения задачи "данные из xml преобразовать и сохранить в БД -> данные из БД преобразовать и сохранить в xml".
И желательно помимо SSIS, for xml и XMLBulk. Не потому, что это плохо, а потому, что я это худо-бедно знаю и хотелось бы поискать другие пути решения, поспрашивать детали реализации таких других путей
3 мар 14, 16:33    [15664132]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3685
юморист
Glory
Т.е. вопрос о том, как сделать универсальный конвертор XML-СУБД-XML на стороне MSSQL ?
Нет. Вопрос в том, что общественность использует для решения задачи "данные из xml преобразовать и сохранить в БД -> данные из БД преобразовать и сохранить в xml".
И желательно помимо SSIS, for xml и XMLBulk. Не потому, что это плохо, а потому, что я это худо-бедно знаю и хотелось бы поискать другие пути решения, поспрашивать детали реализации таких других путей

готовой автогенерилки нет. или пиши свою или юзай простые пути - SSIS, for xml и XMLBulk.
3 мар 14, 16:35    [15664149]     Ответить | Цитировать Сообщить модератору
 Re: XML-СУБД и обратно  [new]
юморист
Guest
Нечто похожее на правду мне сгенерила xsd.exe
Однако если в одной схеме пространство имён импортируется из другой схеме - xsd.exe падает (или у меня не получается заставить его не падать).
Нет ли у кого опыта по работе с этим чудо-продуктом?
3 мар 14, 16:56    [15664303]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить