Где я ошибся, собирая xml-файл из объекта XDTO
для решения моих задач, мне необходимо подгружать xsd-схему из внешнего файла, создавать и заполнять объекты, а потом из всего этого дела формировать xml-файл.
вот схема xsd:
а вот текст обработки, что пытается сделать то, что я хочу:
при выполнении оно меня выдаёт ошибку:
Тип '{http://myth_schema.ru }Сотрудники' не найден
Тип принадлежит пакету, отсутствующему в фабрике типов XDTO
я думаю, это связано с тем, что я не создал XDTO-объект в конфигураторе. но я и не хочу этого делать, потому что мне надо чтобы это делалось для выгрузки из типовой конфигурации.
подскажить, где я ошибся и можно ли вообще работать с XDTO объектами, созданными из внешних xsd-схем.?
вот схема xsd:
<?xml version="1.0" encoding="windows-1251"?>
<!--Created with Liquid Studio 2017 - Developer Bundle Edition (Trial) 15.1.8.7566 (https://www.liquid-technologies.com)--> ;
<xs:schema elementFormDefault="qualified" targetNamespace="http://myth_schema.ru" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Сотрудники">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element xmlns:q1="http://myth_schema.ru" name="Сотрудник" type="q1:Сотрудник" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Сотрудник">
<xs:attribute name="FIO" type="xs:string" />
<xs:attribute name="Data" type="xs:dateTime" />
</xs:complexType>
</xs:schema>
Показатьа вот текст обработки, что пытается сделать то, что я хочу:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТекстXML = ПолучитьТекстXML();
КонецПроцедуры
Функция ПолучитьТекстXML()
Фабрика = СоздатьФабрикуXDTO("D:\Сотрудники.xsd");
типXDTOСотрудники = Фабрика.Тип("http://myth_schema.ru", "Сотрудники");
ТипXDTOСотрудник = Фабрика.Тип("http://myth_schema.ru", "Сотрудник");
XDTOСотрудники = Фабрика.Создать(типXDTOСотрудники);
XDTOСотрудник = Фабрика.Создать(ТипXDTOСотрудник);
XDTOСотрудник.FIO = "Иванов";
XDTOСотрудники.Сотрудник.Добавить(XDTOСотрудник);
XDTOСотрудник = Фабрика.Создать(ТипXDTOСотрудник);
XDTOСотрудник.FIO = "Петров";
XDTOСотрудники.Сотрудник.Добавить(XDTOСотрудник);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку("UTF-8");
ЗаписьXML.ЗаписатьНачалоЭлемента("xs:Сотрудники");
//ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xs", "http://myth_schema.ru");
ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, XDTOСотрудники, "Сотрудники");
ЗаписьXML.ЗаписатьКонецЭлемента();
возврат ЗаписьXML.закрыть();
КонецФункции
Показатьпри выполнении оно меня выдаёт ошибку:
Тип '{
Тип принадлежит пакету, отсутствующему в фабрике типов XDTO
я думаю, это связано с тем, что я не создал XDTO-объект в конфигураторе. но я и не хочу этого делать, потому что мне надо чтобы это делалось для выгрузки из типовой конфигурации.
подскажить, где я ошибся и можно ли вообще работать с XDTO объектами, созданными из внешних xsd-схем.?
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
xmlns:q1="http://myth_schema.ru" - q1 нигде не прописано что такое
Вот в этот тег
<xs:schema elementFormDefault="qualified" targetNamespace="http://myth_schema.ru" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
нужно добавить
xmlns:q1="http://myth_schema.ru"
А не в описание ComplexType
Вот в этот тег
<xs:schema elementFormDefault="qualified" targetNamespace="http://myth_schema.ru" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
нужно добавить
xmlns:q1="http://myth_schema.ru"
А не в описание ComplexType
вроде всё сделал, как Вы говорили. не получается всё равно. прикреплены файлы обработка и схема
Прикрепленные файлы:
ПроверкаXDTO.epf
Сотрудники.xsd
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот