Выгрузка XML фала по схеме XSD.

1. KolBbl4 22.02.22 10:28 Сейчас в теме
Всем доброго времени суток.
Подскажите такая проблема: предоставили схему XSD и попросили по ней выгрузить файл с данными формата XML. Из данных XSD получаю ФабрикуXDTO , но не могу понять как мне сформировать XML файл с данными выгрузки, подскажите в каком направлении копать?
Найденные решения
11. starik-2005 3033 22.02.22 19:43 Сейчас в теме
(10)
А можно это как-то точно определить?)
Схема - это просто описание файла касаемо типов, элементов, атрибутов и т.д. Схема только указывает, какой может быть файл, но ничего не говорит о том, какой точно он должен быть. Обычно есть корневой контейнер, в который выгружаются все остальные контейнеры, И обычно он идет в схеме первым (корневым) элементом. Остальные элементы в этот корневой контейнер выгружаются. Но корневых контейнеров может быть сколько угодно. Тем более в схеме этой определено, что все элементы класса shop - это anyType, что говорит о том, что в них могут содержаться вообще любые данные, так что это добавляет неопределенности и сильно повышает вариативность.

Но если открыть файл, то вполне можно предположить (он документирован), что все ровно так, как я сказал. Ответить на вопрос о том, на сколько правильно выгружен файл, может только наличие примера правильного файла.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. koln 22.02.22 11:12 Сейчас в теме
(1)Из фабрики, по нужному типу создаете объектXDTO и заполняете его.
4. KolBbl4 22.02.22 11:35 Сейчас в теме
(2)Подскажите а как найти эти типы?
Правильно ли всё делаю
Сайт = "https://zakupki.mos.ru/Content/Pub/YmlExchange/v1_0/Xsd/schema.xsd";
	
	// Создать фабрику XDTO на основе схемы XML,
	// содержащейся в файле XML
	// Создать объект чтения XML по умолчанию
	НовоеЧтениеXML = Новый ЧтениеXML;
	// Открыть файл XML
	НовоеЧтениеXML.ОткрытьФайл(Сайт);  
	
	// Создать построитель документа DOM по умолчанию
	НовыйПостроительDOM = Новый ПостроительDOM;   
	
	// Прочитать файл XML в документ DOM
	НовыйДокументDOM = НовыйПостроительDOM.Прочитать(НовоеЧтениеXML);
	
	// Создать построитель схемы XML по умолчанию
	НовыйПостроительСхемыXML = Новый ПостроительСхемXML;
	
	// Получить схему XML из документа DOM
	НоваяСхемаXML = НовыйПостроительСхемыXML. СоздатьСхемуXML(НовыйДокументDOM); 
	
	// Создать набор схем XML по умолчанию
	НовыйНаборСхемXML = Новый НаборСхемXML;
	
	// Добавить схему XML в набор схем XML
	НовыйНаборСхемXML.Добавить(НоваяСхемаXML);
	
	// Создать фабрику XDTO на основе набора схем XML
	НоваяФабрикаXDTO = Новый ФабрикаXDTO(НовыйНаборСхемXML);  
	Для каждого Пакет Из НоваяФабрикаXDTO.Пакеты Цикл
		
		Для каждого КорневоеСвойство Из Пакет.КорневыеСвойства Цикл
		
			
		
		КонецЦикла;
		
	
	КонецЦикла;	
	
Показать
Прикрепленные файлы:
7. koln 22.02.22 12:54 Сейчас в теме
(4)Согласно схеме, есть различные объекты. Какой из них Вам нужен, зависит от конкретного запроса. Нужно уточнять у разработчиков сервиса.
Прикрепленные файлы:
8. KolBbl4 22.02.22 13:16 Сейчас в теме
(7)Подскажите, а как вы его в конфигурацию добавили?)
9. koln 22.02.22 14:04 Сейчас в теме
(8)По ссылке https://zakupki.mos.ru/Content/Pub/YmlExchange/v1_0/Xsd/schema.xsd в окне браузера правой кнопкой "Сохранить как", сохраняете в формате .xsd
Данный файл откройте блокнотом и удалите строки секции xsd:import
<xsd:import namespace="http://market.zakupki.mos.ru/spIntegration/Yml/1.0/common"
schemaLocation="schema.common.xsd"/>
. С этими строками у меня не грузился файл.
Затем в конфигурации, в ветке XDTO-пакеты, правой кнопкой и выбираете "импорт XML-схемы". В открывшемся окне выбираете ранее сохраненный файл и получаете пакет со схемой.
3. starik-2005 3033 22.02.22 11:32 Сейчас в теме
1. Попросить пример файла.
2. Создать объект из корневого контейнера.
3. Добавить в него нужные объекты/списки.
4. Записать.
5. KolBbl4 22.02.22 11:36 Сейчас в теме
(3)У меня проблема я не знаю какие объекты/списки добавлять, мне просто дали схему (((

https://zakupki.mos.ru/Content/Pub/YmlExchange/v1_0/Xsd/schema.xsd
6. starik-2005 3033 22.02.22 12:16 Сейчас в теме
(5)
е знаю какие объекты/списки добавлять, мне просто дали схе
Ну там корневым контейнером скорее всего должен быть "yml_catalog", в нем список "shop", в котором список магазинов типа...
10. KolBbl4 22.02.22 18:57 Сейчас в теме
(6)А можно это как-то точно определить?)
11. starik-2005 3033 22.02.22 19:43 Сейчас в теме
(10)
А можно это как-то точно определить?)
Схема - это просто описание файла касаемо типов, элементов, атрибутов и т.д. Схема только указывает, какой может быть файл, но ничего не говорит о том, какой точно он должен быть. Обычно есть корневой контейнер, в который выгружаются все остальные контейнеры, И обычно он идет в схеме первым (корневым) элементом. Остальные элементы в этот корневой контейнер выгружаются. Но корневых контейнеров может быть сколько угодно. Тем более в схеме этой определено, что все элементы класса shop - это anyType, что говорит о том, что в них могут содержаться вообще любые данные, так что это добавляет неопределенности и сильно повышает вариативность.

Но если открыть файл, то вполне можно предположить (он документирован), что все ровно так, как я сказал. Ответить на вопрос о том, на сколько правильно выгружен файл, может только наличие примера правильного файла.
12. KolBbl4 22.02.22 21:06 Сейчас в теме
(11)Спасибо большое за ответ
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)