Вопрос по работе с фабрикой XDTO.

1. G_108354981865353300944 06.06.24 20:09 Сейчас в теме
Добрый день,

Фабрика XDTO сейчас записывает некоторый объект XDTO в строку так:

<CustomerOrder xmlns="http://magazin.ru/zakaz" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      …
      <Stage>3</Stage>
      …
</CustomerOrder>


А нужно, чтобы атрибуты типа добавились и у свойства объекта, вот так:

<CustomerOrder xmlns="http://magazin.ru/zakaz" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                …
<Stage xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:decimal">3</Stage>
                …
</CustomerOrder>


Вот функция, работающая с фабрикой XDTO и с пакетом XDTO, определенным в конфигурации:

&НаСервере
Функция ПолучитьXML()
	
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку();

	ТипОбъектаXDTO = ФабрикаXDTO.Тип("http://magazin.ru/zakaz", "CustomerOrder");
	ОбъектXDTO = ФабрикаXDTO.Создать(ТипОбъектаXDTO);
	ОбъектXDTO.Stage = 3;

	ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO);
	
	Возврат ЗаписьXML.Закрыть(); 
	
КонецФункции
Показать


Спасибо за любую подсказку.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vadim-SH 07.06.24 07:06 Сейчас в теме
(1) Похоже, что у свойства Stage не указан тип, нужно установить тип decimal (http://www.w3.org/2001/XMLSchema)
3. G_108354981865353300944 07.06.24 12:45 Сейчас в теме
(2) Вот так определен в конфигурации пакет XDTO (вложены снимки экрана).
Прикрепленные файлы:
4. Vadim-SH 18.06.24 12:55 Сейчас в теме
(3) Попробуй указать НазначениеТипаXML.Явное.

Но, походу, придется записывать каждое значение свойства с помощью глобальной функции
ЗаписатьXML(<ЗаписьXML>, <Значение>, <ПолноеИмя>, НазначениеТипаXML.Явное).
5. Serg2000mr 428 21.06.24 14:28 Сейчас в теме
(1) Попробуйте

ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xmlns", "http://magazin.ru/zakaz");
Оставьте свое сообщение

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