Имя: Пароль:
1C
 
Ошибка сериализации через fastinfoset
0 Gorr
 
31.10.17
15:02
ОбъектСериализации = Новый Структура;
    ОбъектСериализации.Вставить("тест", Истина);
    
    Запись = Новый ЗаписьXML;
    Запись.УстановитьСтроку();
    
    СериализаторXDTO.ЗаписатьXML(Запись, ОбъектСериализации, НазначениеТипаXML.Явное);
    Данные = Запись.Закрыть();
    
    чтение = Новый ЧтениеXML;
    чтение.УстановитьСтроку(Данные);
    Результат = СериализаторXDTO.ПрочитатьXML(чтение);//ОК!
    
    Запись = Новый ЗаписьFastInfoset;
    Запись.УстановитьДвоичныеДанные();
    
    СериализаторXDTO.ЗаписатьXML(Запись, ОбъектСериализации, НазначениеТипаXML.Явное);
    Данные = Запись.Закрыть();
    
    чтение = Новый ЧтениеFastInfoset;
    чтение.УстановитьДвоичныеДанные(Данные);
    Результат = СериализаторXDTO.ПрочитатьXML(чтение);//Error!
    //Ошибка отображения пространства имен
    //Отсутствует отображение для префикса: 'xs'

Почему через обычное чтение запись XML объект сериализуется/десериализуется без проблем, в то время как при использования FastInfoset возникает ошибка на этапе восстановления сериализованного объекта. В чем нюанс?
1 Digger
 
31.10.17
15:36
был такой древний баг платформы еще в 8.3.4,  думал давно пофиксили.
2 Gorr
 
31.10.17
15:46
(1) да не может такого быть чтоб не работало!
НЮАНС нужно искать!!!
3 Digger
 
31.10.17
16:04
(2) Помню даже в типовой БП/УТ версионирование в итоге переделали с фастинфосета на какой то костыль через хмл чтение.  )
4 Gorr
 
01.11.17
17:27
Кароче, сделал так:

        запись = Новый ЗаписьXML;
        запись.УстановитьСтроку();
        СериализаторXDTO.ЗаписатьXML(запись, Данные, НазначениеТипаXML.Явное);
        Парам.ExtraData = Новый ХранилищеЗначения(запись.Закрыть(), Новый СжатиеДанных(9));
5 Gorr
 
01.11.17
17:29
Нюанс не нашел
6 Fragster
 
гуру
01.11.17
17:33
(3) это чтобы при изменении структуры метаданных версионирование продолжало работать