3 / 3 / 0
Регистрация: 23.12.2016
Сообщений: 273

Как правильно создавать xml по xsd - схеме

15.03.2025, 18:08. Показов 2086. Ответов 8

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть XML сформированной сторонней программой. Есть другая система, которая принимает XML по определенной xsd-схеме. Схема есть на руках.
Как правильно считать данные из одной XML и преобразовать в другую по нужной схеме?
Нужно ли делать объектную модель? (как мне кажется можно обойтись как-то без нее, потому что при внесении каких-либо изменений в xml или схему придется каждый раз менять код, и перекомпилировать приложение)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.03.2025, 18:08
Ответы с готовыми решениями:

Загрузку данных из xml по схеме xsd в бд MS SQL
Имеется данные бд записанные в файл xml, схема БД описана в файле xsd. Требуется создать БД mysql по схеме и записать туда данные. Знаю,...

Как правильно создавать дочерние окна?
Всем доброе время суток. Может кто подсказать как правильно создавать дочерние окна. Например есть окно Form1 и при нажатии на кнопку нужно...

Как сделать правильнее, чтобы не создавать лишние соединения к БД и не оставлять их надолго открытыми
Подскажите пожалуйста, чтобы не создавать лишние соединения к БД и не оставлять их на долго открытыми, как правельнее делать: 1) public...

8
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18311 / 14235 / 5368
Регистрация: 17.03.2014
Сообщений: 28,905
Записей в блоге: 1
15.03.2025, 19:19
IIIIIIIIIgor, в общем случае и автоматически никак.

Цитата Сообщение от IIIIIIIIIgor Посмотреть сообщение
Как правильно считать данные из одной XML и преобразовать в другую по нужной схеме?
Что вы вкладываете в понятие "правильно" в данном случае?

Цитата Сообщение от IIIIIIIIIgor Посмотреть сообщение
Нужно ли делать объектную модель?
Можно, но необязательно. Можно с помощью XSLT шаблонов делать преобразование.
0
3 / 3 / 0
Регистрация: 23.12.2016
Сообщений: 273
15.03.2025, 19:44  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Что вы вкладываете в понятие "правильно" в данном случае?
правильный подход (что-то типо сделай объектную модель сериализуй 1 xml сравни со схемой и тд. не представляю пока как сравнивать со схемой) или вот надо через такую библиотеку, потому что велосипед уже изобрели.

Цитата Сообщение от OwenGlendower Посмотреть сообщение
Можно, но необязательно. Можно с помощью XSLT шаблонов делать преобразование.
можете подробнее рассказать, или посоветовать какие статьи почитать.
пока что нет ни малейшего представления как это все организовать и где найти информацию
0
16.03.2025, 17:46

Не по теме:

Довольно странное ожидание что xsd схема из определенного приложения автоматически преобразует документ с другой структурой о которой приложение знать не знает, не находите?

0
3 / 3 / 0
Регистрация: 23.12.2016
Сообщений: 273
16.03.2025, 18:08  [ТС]
Цитата Сообщение от nicolas2008 Посмотреть сообщение
Довольно странное ожидание что xsd схема из определенного приложения автоматически преобразует документ с другой структурой о которой приложение знать не знает, не находите?
Я и не говорю что схема должна что-то преобразовать. у меня вопрос как мне взять 1 xml взять схему и преобразовать xml в новый уже по схеме. Что для этого нужно какие инструменты применить, я в целом не особо понимаю что нужно делать
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3439 / 2759 / 575
Регистрация: 04.09.2018
Сообщений: 8,687
Записей в блоге: 3
16.03.2025, 19:32
Цитата Сообщение от IIIIIIIIIgor Посмотреть сообщение
я в целом не особо понимаю что нужно делать
Тебе же дали уже намек на XSLT. Не изучается?
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
16.03.2025, 23:47
Цитата Сообщение от IIIIIIIIIgor Посмотреть сообщение
у меня вопрос как мне взять 1 xml взять схему и преобразовать xml в новый уже по схеме. Что для этого нужно какие инструменты применить, я в целом не особо понимаю что нужно делать
Схема тебе в этом вряд ли поможет, с помощью схемы ты сможешь уже готовый документ проверить на предмет соответствия требованиям. Схемы бывают разные, некоторые определяют формат достаточно жестко, другие позволяют такие вольности, что документы, которые им соответствуют могут вообще ничего общего не иметь по крайней мере внешне. Тут нужно понимать, что именно от тебя ожидает та самая "другая система" и именно на это и нужно ориентироваться.
По поводу того, что нужно делать, здесь все достаточно просто: нужно сформировать документ нужного формата и вставить в него данные, полученные из исходного документа. По поводу инструментов, они могут быть любыми, в частности если ты понимаешь в принципе как работать с XML в C#, то можно именно эти знания и применить. Понятно, что строить дерево документа в коде не очень удобно, особенно если документ немаленький. Тут есть несколько вариантов упростить задачу. Об одном тебе уже написали, это XSLT - язык предназначенный именно для таких задач (преобразование XML-данных в другую форму). Несмотря на то, что этот формат имеет некоторые преимущества, я бы не стал его советовать для всех случаев, если ты решаешь разовую задачу, то изучение языка XSLT возможно будет, мягко говоря, не самым коротким путем ее решения, поскольку потребует значительных усилий, хотя он и дает некоторые преимущества, например, если использовать его, то не потребуется хардкодить логику преобразования и если в форматах что-то изменится, то можно будет изменить код XSLT-документа, а не переписывать программу. Но, как я уже сказал, усилия, затраченные на изучение языка могут оказаться чрезмерными.
Можно использовать шаблоны T4 или какой-то другой шаблонизатор подтянуть. Если знаешь язык VB.Net, то в нем есть очень удобная штука XML-литералы. Ну или в конце концов можно использовать $ - интерполяция строк — выходные данные строки форматирования - C# reference | Microsoft Learn.
Так что вариантов тут много, выбирай на вкус.
0
3 / 3 / 0
Регистрация: 23.12.2016
Сообщений: 273
17.03.2025, 14:39  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
это XSLT - язык предназначенный именно для таких задач
если я правильно понял, я смотрю на схему по которой должен быть сформирован документ, пишу этот шаблон и потом преобразую по нему в новый док. в случае изменений в схеме, меняю только шаблон , который будет где-то храниться?

Цитата Сообщение от diadiavova Посмотреть сообщение
удобная штука XML-литералы
а тут почти тоже самое только все прописывается в коде и в случае изменений надо менять код?
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
17.03.2025, 17:31
Цитата Сообщение от IIIIIIIIIgor Посмотреть сообщение
если я правильно понял, я смотрю на схему по которой должен быть сформирован документ, пишу этот шаблон и потом преобразую по нему в новый док. в случае изменений в схеме, меняю только шаблон , который будет где-то храниться?
Ну, в общем и целом да. В схему можно не смотреть ))) Но измениться может не только выходной формат, но и входной и в этом случае тоже придется что-то менять.
Цитата Сообщение от IIIIIIIIIgor Посмотреть сообщение
а тут почти тоже самое только все прописывается в коде и в случае изменений надо менять код?
XML-литералы - это часть языка, так что да.
Общее между этими двумя вариантами то, что они позволяют по сути дела вставить готовых документ или его фрагмент в код и это будет работать. После этого можно динамические части заменить выражениями языка, а статические оставить как есть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.03.2025, 17:31
Помогаю со студенческими работами здесь

Как правильно составить блок-схему работы процедуры?
Здравствуйте форумчани!Как правильно составить блок схему работы на следующющей процедуры: private void CreateNewImage() ...

Как научиться писать правильные блок-схемы для программ?
Как научиться писать правильные блок-схемы для программ?

Как правильно перевести блок схему
https://www.cyberforum.ru/attachments/389359d1397819639 Проверьте, пожалуйста, правильность работы моей программы. Есть сомнения, что...

ListView - Как создавать правильно элементы
ListView - Как создавать правильно элементы! Как правильно создавать элемент "ListView". Вопрос! 1). Как указывать папку для...

Как правильно создавать иконки?
Такая проблема. Посмотрел темы.. ответов не нашел. Есть у меня иконка. Я ее нарисовал, но когда хочу присвоить окну вместо нее какая-то там...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru