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

1. KolBbl4 22.02.22 10:28 Сейчас в теме
Всем доброго времени суток.
Подскажите такая проблема: предоставили схему XSD и попросили по ней выгрузить файл с данными формата XML. Из данных XSD получаю ФабрикуXDTO , но не могу понять как мне сформировать XML файл с данными выгрузки, подскажите в каком направлении копать?
Найденные решения
11. starik-2005 3092 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 3092 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 3092 22.02.22 12:16 Сейчас в теме
(5)
е знаю какие объекты/списки добавлять, мне просто дали схе
Ну там корневым контейнером скорее всего должен быть "yml_catalog", в нем список "shop", в котором список магазинов типа...
10. KolBbl4 22.02.22 18:57 Сейчас в теме
(6)А можно это как-то точно определить?)
11. starik-2005 3092 22.02.22 19:43 Сейчас в теме
(10)
А можно это как-то точно определить?)
Схема - это просто описание файла касаемо типов, элементов, атрибутов и т.д. Схема только указывает, какой может быть файл, но ничего не говорит о том, какой точно он должен быть. Обычно есть корневой контейнер, в который выгружаются все остальные контейнеры, И обычно он идет в схеме первым (корневым) элементом. Остальные элементы в этот корневой контейнер выгружаются. Но корневых контейнеров может быть сколько угодно. Тем более в схеме этой определено, что все элементы класса shop - это anyType, что говорит о том, что в них могут содержаться вообще любые данные, так что это добавляет неопределенности и сильно повышает вариативность.

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот