|   |   | 
| 
 | ФабрикаXDTO. проблема | ☑ | ||
|---|---|---|---|---|
| 0
    
        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> | |||
| 1
    
        palsergeich 30.05.19✎ 09:46 | 
        (0) через стрзаменить.     | |||
| 2
    
        palsergeich 30.05.19✎ 09:47 | 
        Описания пространства имен в корне штатно не убрать никак.     | |||
| 3
    
        e2v 30.05.19✎ 09:51 | 
        (2) Тоже на форумах полазил, ничего.
 Думал, мож какой гуру откликнется. 8)) Замена строки не катит, т.к. объектов много, и один кусок XML будет вложен в другой. Проследить вариации вложений - ну его нафиг. 8))) | |||
| 4
    
        ildary 30.05.19✎ 09:52 | 
        (3) а смысл замены какой, кроме эстетического?     | |||
| 5
    
        palsergeich 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) Со стороны приемника какой нибудь самописный парсер, который не умеет в это и валится. Постоянно такая история | |||
| 6
    
        e2v 30.05.19✎ 09:59 | 
        (4) Не, эстетика не причем. Сервер написан так, что запрос с такими "вставками" отклоняется.
 Писали другие, договорится нельзя 8))) | |||
| 7
    
        palsergeich 30.05.19✎ 10:03 | 
        (6) скидываешь xml на диск, открываешь как текстовый файл.
 2я строка, все что после customerDetails в помойку. Закрываешь тег. Сохраняешь. И это будет моментально работать и не трать мозги. | |||
| 8
    
        e2v 30.05.19✎ 10:03 | 
        (5) Да-да. Попробую, спасибо.
 Объекты создаются по многу и добавляются в тело XML. Дело в том, что и пространства имен разные (пакетов 25 штук). | |||
| 9
    
        milan 30.05.19✎ 10:15 | 
        Вся работа через xdto со сторонними системами состоит из стр заменить и записать без обработки. Та же история с чтением. Так себе объект по удобству работы.     | |||
| 10
    
        тарам пам пам 30.05.19✎ 10:32 | 
        (9) Так-то 1с генерит валидные xml, это сторонние системы нихрена стандарты не поддерживают, вот и приходится костыли лепить. Потому что каждый программист просто обязан нарисовать свой парсер xml/json/<другой формат с кучей готовых библиотек для парсинга> и естественно без нормальной поддержки схем.     | |||
| 11
    
        palsergeich 30.05.19✎ 10:50 | 
        (10) не совсем.
 Валидные - да. Но они не полно покрывают стандарт, стандарт не запрещает не указывать пространства имен | |||
| 12
    
        palsergeich 30.05.19✎ 10:58 | 
        Но если при отправке это единственный серьезный косяк, то при приеме все совсем печально.
 - перекрестные ссылки валят обмен - не все секции, декларированные стандартом обрабатываются. - некоторые символы валят обмен. Что то пофиксили уже, а что то нет. Ну и так по мелочи. Реально приходится post запросом получать конверт, потом проводить его к понятному для 1с виду, а потом только подавать на вход сериализатору. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |