Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ФабрикаXDTO. проблема

ФабрикаXDTO. проблема
Я
   e2v
 
30.05.19 - 09:45
Создается XML силами XDTO.
Столкнулся с такой проблемой.
Такой код :
  custXml=новый ЗаписьXML;
  custXml.УстановитьСтроку();

  ТипCustomerDetail = ФабрикаXDTO.Тип("http://www.eee.ru/score","typeCustomerDetail";);
  ОбъектCD=ФабрикаXDTO.Создать(ТипCustomerDetail);
  ОбъектCD.lastName="Иванов1";
  ФабрикаXDTO.ЗаписатьXML(custXml, ОбъектCD,"customerDetails");    
  custXml.Закрыть()

Дает результат в итоговом XML при записи:
  <customerDetails xmlns="http://www.eee.ru/score"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
   <lastName>Иванов1</lastName>
  </customerDetails>


Вопрос:
Как мне избавится от записи Пространства имен?
Чтобы в XML-ке было так:
  <customerDetails>
   <lastName>Иванов1</lastName>
  </customerDetails>
 
 
   palsergeich
 
1 - 30.05.19 - 09:46
(0) через стрзаменить.
   palsergeich
 
2 - 30.05.19 - 09:47
Описания пространства имен в корне штатно не убрать никак.
   e2v
 
3 - 30.05.19 - 09:51
(2) Тоже на форумах полазил, ничего.
Думал, мож какой гуру откликнется. 8))
Замена строки не катит, т.к. объектов много, и один кусок XML
будет вложен в другой. Проследить вариации вложений - ну его нафиг. 8)))
   ildary
 
4 - 30.05.19 - 09:52
(3) а смысл замены какой, кроме эстетического?
   palsergeich
 
5 - 30.05.19 - 09:54
(3) у тебя
<customerDetails xmlns="http://www.eee.ru/score";; xmlns:xs="http://www.w3.org/2001/XMLSchema";; xmlns:xsi="http://www.w3.org/2001/XMLSchema
Эта шапка будет одна на файл.
Можно тупо открыть xml, читать построчно и на корне удалить атрибуты, сохранить и выйти.
Это работает моментально.
(4) Со стороны приемника какой нибудь самописный парсер, который не умеет в это и валится. Постоянно такая история
   e2v
 
6 - 30.05.19 - 09:59
(4) Не, эстетика не причем. Сервер написан так, что запрос с такими "вставками" отклоняется.
Писали другие, договорится нельзя 8)))
   palsergeich
 
7 - 30.05.19 - 10:03
(6) скидываешь xml на диск, открываешь как текстовый файл.
2я строка, все что после customerDetails в помойку. Закрываешь тег.
Сохраняешь.
И это будет моментально работать и не трать мозги.
   e2v
 
8 - 30.05.19 - 10:03
(5) Да-да. Попробую, спасибо.
Объекты создаются по многу и добавляются в тело XML.
Дело в том, что и пространства имен разные (пакетов 25 штук).
   milan
 
9 - 30.05.19 - 10:15
Вся работа через xdto со сторонними системами состоит из стр заменить и записать без обработки. Та же история с чтением. Так себе объект по удобству работы.
   тарам пам пам
 
10 - 30.05.19 - 10:32
(9) Так-то 1с генерит валидные xml, это сторонние системы нихрена стандарты не поддерживают, вот и приходится костыли лепить. Потому что каждый программист просто обязан нарисовать свой парсер xml/json/<другой формат с кучей готовых библиотек для парсинга> и естественно без нормальной поддержки схем.
   palsergeich
 
11 - 30.05.19 - 10:50
(10) не совсем.
Валидные - да.
Но они не полно покрывают стандарт, стандарт не запрещает не указывать пространства имен
   palsergeich
 
12 - 30.05.19 - 10:58
Но если при отправке это единственный серьезный косяк, то при приеме все совсем печально.
- перекрестные ссылки валят обмен
- не все секции, декларированные стандартом обрабатываются.
- некоторые символы валят обмен. Что то пофиксили уже, а что то нет.
Ну и так по мелочи.
Реально приходится post запросом получать конверт, потом проводить его к понятному для 1с виду, а потом только подавать на вход сериализатору.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.