Всем доброго времени суток.
Подскажите такая проблема: предоставили схему XSD и попросили по ней выгрузить файл с данными формата XML. Из данных XSD получаю ФабрикуXDTO , но не могу понять как мне сформировать XML файл с данными выгрузки, подскажите в каком направлении копать?
Схема - это просто описание файла касаемо типов, элементов, атрибутов и т.д. Схема только указывает, какой может быть файл, но ничего не говорит о том, какой точно он должен быть. Обычно есть корневой контейнер, в который выгружаются все остальные контейнеры, И обычно он идет в схеме первым (корневым) элементом. Остальные элементы в этот корневой контейнер выгружаются. Но корневых контейнеров может быть сколько угодно. Тем более в схеме этой определено, что все элементы класса shop - это anyType, что говорит о том, что в них могут содержаться вообще любые данные, так что это добавляет неопределенности и сильно повышает вариативность.
Но если открыть файл, то вполне можно предположить (он документирован), что все ровно так, как я сказал. Ответить на вопрос о том, на сколько правильно выгружен файл, может только наличие примера правильного файла.
(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.Пакеты Цикл
Для каждого КорневоеСвойство Из Пакет.КорневыеСвойства Цикл
КонецЦикла;
КонецЦикла;
. С этими строками у меня не грузился файл.
Затем в конфигурации, в ветке XDTO-пакеты, правой кнопкой и выбираете "импорт XML-схемы". В открывшемся окне выбираете ранее сохраненный файл и получаете пакет со схемой.
Схема - это просто описание файла касаемо типов, элементов, атрибутов и т.д. Схема только указывает, какой может быть файл, но ничего не говорит о том, какой точно он должен быть. Обычно есть корневой контейнер, в который выгружаются все остальные контейнеры, И обычно он идет в схеме первым (корневым) элементом. Остальные элементы в этот корневой контейнер выгружаются. Но корневых контейнеров может быть сколько угодно. Тем более в схеме этой определено, что все элементы класса shop - это anyType, что говорит о том, что в них могут содержаться вообще любые данные, так что это добавляет неопределенности и сильно повышает вариативность.
Но если открыть файл, то вполне можно предположить (он документирован), что все ровно так, как я сказал. Ответить на вопрос о том, на сколько правильно выгружен файл, может только наличие примера правильного файла.