|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
||||||
Создание XML на основании схемы XSD26.03.2020, 17:31. Показов 16963. Ответов 25
Здравствуйте, коллеги.
Заранее сообщу, что перерыла множество информации в просторах интернета, но задача так и осталась не решенной. Коротко о задаче: Есть XSD схема. Есть массив, с информацией (полученной из БД), на основании которой необходимо создать ХМL файл. Написан код, который создает визуально (в тхт редакторе) правильный хмl файл, но полученный xml файл не проходит валидацию в системе. Думаю проблема в невидимой части (в структуре) файла. Пожалуйста, подскажите, в чем проблема. Почему файл созданный в коде, не соответствует xsd схеме?
1
|
||||||
| 26.03.2020, 17:31 | |
|
Ответы с готовыми решениями:
25
Создать XML файл из текстового и схемы xsd Создать XML-документ из схемы XSD Проверить правильность построения xsd схемы и создания для нее xml |
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
||||||
| 26.03.2020, 21:40 [ТС] | ||||||
|
Немного продвинулась. При помощи командной строки и инструментария xsd создала файл классов для C#.
Буду грызть этот гранит далее. В прикрепленном архиве полный код. Если кто желает помочь, не стесняйтесь, пишите. Кликните здесь для просмотра всего текста
0
|
||||||
|
|
||
| 27.03.2020, 09:17 | ||
|
Чем конкретным сейчас помочь? У вас уже есть CS файл. Просто заполняете модель, через какой-нибудь http клиент (rest, soap) генерируете и отправляете запрос.
1
|
||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
|||
| 27.03.2020, 11:07 [ТС] | |||
|
На сейчас я имею массив с входящей информацией, и код, сгенерированый в xsd.exe (генерила в командной строке). Теперь моя задача: создать хмл файл имея массив и сгенерированый код (прикрепила в предыдущем сообщении) и массив с данными. Какие блоки сгенерированного кода допилить или стоит его вообще трогать? Как имея массив, конкретную XSD и сгенерированный для нее класс создать хмл, который пройдет проверку по этой xsd. Вот с этим, если есть возможность, помогите мне, пожалуйста. В хмл и хсд я новичок ![]() Добавлено через 25 минут Немного дрожат ручки
0
|
|||
|
|
||
| 27.03.2020, 19:04 | ||
|
Заполнить модель - это и значит. Если есть класс User, то создаёте объект, наполняете данными. Всё как обычно. ![]() А теперь видимо то что вы не поняли - как запрос сделать. Вот же вы сами это сказали: "Есть массив, с информацией (полученной из БД), на основании которой необходимо создать ХМL файл". Это оно и есть. Ответ прост - сериализовать! Это надеюсь вы уже слышали, видели и надеюсь делали. Имеете объект (класс, коллекция, хоть что..) сериализуете и... отправляете через веб-клиент. Ну или если очень надо - XML можете ещё посмотреть, сохранить. Насчёт отправки - точный ответ зависит от того - какой апи на который вы собираетесь отправить, клиент которым вы хотите/можете воспользоваться. Добавлено через 10 минут В гугле можно искать "C# serialize send post xml" Примеры: https://stackoverflow.com/ques... -sharp-xml https://stackoverflow.com/ques... in-c-sharp
1
|
||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
|||||||||||||||||||||||||||
| 28.03.2020, 22:40 [ТС] | |||||||||||||||||||||||||||
|
Структура файла по схеме, должна получиться такой (это правильный вариант):
В общем, вот такая ситуация, хожу вокруг и не знаю с какой стороны подойти. Помогите, если можете.
0
|
|||||||||||||||||||||||||||
|
|
|||
| 28.03.2020, 22:46 | |||
![]() У вас корневой элемент NBUSTATREPORT, а вы один только свойство-массив NBUSTATREPORTDATA заполняете и сериализуете. Добавлено через 52 секунды
0
|
|||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
|
| 28.03.2020, 22:48 [ТС] | |
|
0
|
|
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
||||||||||||||||||||||||||||
| 29.03.2020, 01:55 [ТС] | ||||||||||||||||||||||||||||
|
Быть может при работе с XML необходимо соблюдать последовательность? Скажите, пожалуйста, что мне следует сделать? Добавлено через 16 минут
Кроме того, в самом начале чата, я слелала визуально правильный файл без сериализации, но он не проходил валидацию по схеме (причем с файлом, который проходит валидацию, отличий в блокноте между "правильным" и "неправильным" файлом нет). Неужели даже при сериализации необходимо использовать инструменты
Добавлено через 2 часа 23 минуты Такс, похоже начинаю въезжать. Написала конструктор:
ПС. Я не могу до сих пор понять,как мне сделать тоже самое но, с использованием файла CS сгенерированого из XSD схемы. Ведь прравильный конструктор находится как раз в том файле (или я ошибаюсь?) Подскажите, пожалуйста (если можно, то с коротким примером)
0
|
||||||||||||||||||||||||||||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
||||||||
| 29.03.2020, 17:51 [ТС] | ||||||||
|
Я понимаю что NBUSTATREPORTDATA должен быть массив классов, но как его сериализовать согласно схеме - ответа не нахожу. Вот код, ткните меня носиком, в чем ошибка ![]()
0
|
||||||||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
|||||||||||
| 29.03.2020, 18:34 [ТС] | |||||||||||
|
NBUSTATREPORTDATA в xsd схеме - это массив Класов, соответственно, предварительно я пытаюсь и его заполнить вот так:
0
|
|||||||||||
|
|
|||
| 29.03.2020, 18:57 | |||
|
Так что последнее сообщение - помоему уже вы уже в конце пути. Чуть-чуть осталось.
1
|
|||
|
Модератор
|
|||||||||||||||||||
| 29.03.2020, 20:26 | |||||||||||||||||||
|
Это коллекция. Просто используемый вами инструмент объявил самую простую коллекцию - массив. Замените её на лист - вам станет много удобнее
Надо сначала по вашей строке получить значение соответствующего значения перечисления. А свойство T100 денежное (decimal). Тоже надо строку преобразовать к этому типу.
1
|
|||||||||||||||||||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
|||||||||||||||||||||||||||||||||
| 30.03.2020, 00:07 [ТС] | |||||||||||||||||||||||||||||||||
В итоге: два вопроса: как теперь быть со строкой сериализации (имею ввиду этот кусок, DATA = new List <NBUSTATREPORTDATA> { }, а именно, отсутствие свойств в фигурных скобках):
П.С. За перечисления - Большущее спасибо. Насколько я поняла, таким образом реализован некий контроль на соответствие значений, значениям в xsd схеме (а в нашем случае, с файлом CS).
0
|
|||||||||||||||||||||||||||||||||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
||
| 30.03.2020, 00:11 [ТС] | ||
|
Мне еще грызть и грызть этот гранит. Я с xml дружу всего неделю
0
|
||
|
Модератор
|
|||||||||||||||||||||||||
| 30.03.2020, 01:52 | |||||||||||||||||||||||||
|
До дружбы ещё далеко. Добавлено через 6 минут Замените все обычные свойства на автосвойство. И очень часто бывает удобным сразу задать им значение. То есть вместо
Вы вызываете конструктор списка, так же как конструктор любого другого типа. Добавлено через 7 минут
Возможно свойство NBUSTATREPORTHEAD.REPORTDATE должно быть не string типа, а DateTime.
1
|
|||||||||||||||||||||||||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
||||||||||||||||||||||
| 30.03.2020, 12:00 [ТС] | ||||||||||||||||||||||
При заполнении списка (свойств R030) я получаю ошибку в этой строке:
подскажите, пожалуйста.П.С. Хотелось бы еще понять, как заполнить вместо списка массив (в этом случае):
0
|
||||||||||||||||||||||
|
4 / 1 / 0
Регистрация: 07.11.2018
Сообщений: 33
|
|
| 30.03.2020, 12:43 [ТС] | |
|
Ошибка возникает при заполнении списка data.DATA.Add(new NBUSTATREPORTDATA(), поля R030, в момент, когда из стрингового массива извлекается "#". На этой итерации вылетает ошибка.
В каком направлении копать, ума не приложу
0
|
|
| 30.03.2020, 12:43 | |
|
Помогаю со студенческими работами здесь
20
Нужен совет по анализу массива XML файлов при отсутствии XSD схемы Как узнать имя элемента схемы XSD при построчном чтении файла xml
Создание XML документ на основе XSD шаблона? Проверка XML с XSD которой ссылается на другой XML файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|