Перейти к содержимому

Fastinfoset 1с что это

  • автор:

Fastinfoset 1с что это

День добрый.
Как я понимаю — Fast Infoset — это хранение XML данных в бинарном файле.
Собственно 2 вопроса:
1) Где бы почитать про формат хранения на русском?
2) Есть ли компоненты работы с XML в Дельфи, которые воспринимают Fast Infoset (типа TXMLDocument)?

(1) А вы программист! Ответ абсолютно точен и бесполезен.
(2) О, спасибо!

вот, тоже задумался — стоит ли его вообще использовать?
есть где-нибудь тесты, насколько именно быстрее происходят загрузки-выгрузки?
а то с совместимостью фигня, знают его единицы, браузеры не визуализируют, да и текстарь вручную можно подправить, если что, а тут уже разбирать надо по малейшему пуку

у кого какой опыт на эту тему?

Глючит твастинфосет все еще. Вот когда риб будет уметь через него, тогда и посмотрим
(6) всё ещё глючит? неужто за два года не вылизали?
Эта проблема до сих пор не решена
v8: загрузка и выгрузка данных в XML и FastInfoSet

у меня обработка выгрузки/загрузки в xml с установленной галкой фастинфосет не смогла загрузить то, что выгрузила до этого. да и про скорость не могу ничего сказать

(7) Да он никому не упирался
(10) меньше места занимает
ясно. проще забить, как, наверное, и в случае с v8: КаноническаяЗаписьXML — как работает?
(11) И разбор быстрее, но увы и ах пока нельзя

Пример на 30 % быстрее сериализация в инфосет.
8 секунд инфосета против 11 секунд XML.
И размер меньше.

Инфосет — это тот же XML, записанный в бинарных данных.

Fastinfoset 1с что это

« Как стать программистом 1С » Язык 1С » XML файлы 1С — ЧтениеXML 1С, ЗаписьXML 1С, ЧтениеFastInfoset 1С, ЗаписьFastInfoset 1С, ЧтениеHTML 1С, ЗаписьHTML 1С

XML файлы 1С — ЧтениеXML 1С, ЗаписьXML 1С, ЧтениеFastInfoset 1С, ЗаписьFastInfoset 1С, ЧтениеHTML 1С, ЗаписьHTML 1С

XML — текстовые файлы, позволяющие с помощью специальной разметки сохранять сложные данные в структурированном виде.

FastInfoset — XML файл в бинарном («сжатом») виде.

HTML — всем известные веб-страницы, которые также представляют из себя аналог XML с нестрогими проверками.

Объекты чтения/записи XML, FastInfoset, HTML расширяют возможности чтения текстового файла встроенной обработкой тегов разметки.

Также они используются для объектов ПостроительDOM/ЗаписьDOM (см. далее) как источники данных.

Файлы XML 1С содержат текстовую информацию, то есть являются текстовыми файлами. Объекты ЧтениеXML 1С и ЗаписьXML 1С являются «надстройкой», позволяющей упростить работу с тегами XML файла 1С.

Объекты ЧтениеFastInfoset 1С и ЗаписьFastInfoset 1С, ЧтениеHTML 1С и ЗаписьHTML 1С полностью аналогичны ЧтениеXML 1С и ЗаписьXML 1С и служат для работы таким же способом с другими форматами.

Файл XML 1С, который использовался в примерах

Текстовое значение

Пример 1. Считывание файла XML 1С в дерево значений с помощью ЧтениеXML 1С

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

//открываем файл XML 1С на чтение с помощью ЧтениеXML 1С
Файл = Новый ЧтениеXML();
Файл.ОткрытьФайл(«D:\СтруктураКонфигурации.xml»);

//подготовим дерево значений
//у каждой ветки XML может быть наименование, атрибуты и значение
дзXML = Новый ДеревоЗначений();
дзXML.Колонки.Добавить(«Наименование»);
дзXML.Колонки.Добавить(«Значение»);
дзXML.Колонки.Добавить(«Атрибуты»);

//так как атрибутов у строки XML может быть несколько — будем записывать их в таблицу значений
//каждый атрибут имеет имя и значение
тАтрибутов = Новый ТаблицаЗначений();
тАтрибутов.Колонки.Добавить(«Имя»);
тАтрибутов.Колонки.Добавить(«Значение»);

//уровень вложенности поможет нам понимать когда требуется добавить вложенную ветку, а когда нужно вернуться на уровень вверх
УровеньВложенности = 0;
//текущая строка — строка дерева, будет меняться при увеличении вложенности
ТекущаяСтрока = Неопределено;
//чтение файла XML 1С производится не построчно, а по структуре, при окончании файла чтение вернет ЛОЖЬ
Пока Файл.Прочитать() Цикл

//нас интересуют три вида узлов — начало элемента, текст (значение элемента) и конец элемента (чтобы вернуться на уровень вверх)
Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
//в начале элемента увеличиваем уровень вложенности, в конце элемента уменьшаем
УровеньВложенности = УровеньВложенности + 1;

//если это первая строка, то добавим ее в самый верх дерева и сохраним только наименование
Если ТекущаяСтрока = Неопределено Тогда
ТекущаяСтрока = дзXML.Строки.Добавить();
ТекущаяСтрока.Наименование = Файл.Имя;
Продолжить;
Иначе
//вложенные строки
ТекущаяСтрока = ТекущаяСтрока.Строки.Добавить();
ТекущаяСтрока.Наименование = Файл.Имя; //сохраним наименование

//есть ли у этого элемента XML атрибуты?
Если Файл.КоличествоАтрибутов() > 0 Тогда
//если да — скопируем подготовленную пустую таблицу для сохранения атрибутов
тАтрибутыУзла = тАтрибутов.Скопировать();
//цикл по количеству атрибутов у этого элемента
Для Сч = 0 по Файл.КоличествоАтрибутов()-1 Цикл
//для каждого атрибута запомним имя и значение
Строка = тАтрибутыУзла.Добавить();
Строка.Имя = Файл.ИмяАтрибута(Сч);
Строка.Значение = Файл.ЗначениеАтрибута(Сч);
КонецЦикла;
//сохраним таблицу атрибутов элемента в текущую строку
ТекущаяСтрока.Атрибуты = тАтрибутыУзла;
КонецЕсли;
КонецЕсли;

ИначеЕсли Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
//в начале элемента увеличиваем уровень вложенности, в конце элемента уменьшаем
УровеньВложенности = УровеньВложенности — 1;
//возвращаем текущую строку на уровень вверх
ТекущаяСтрока = ТекущаяСтрока.Родитель;

ИначеЕсли Файл.ТипУзла = ТипУзлаXML.Текст Тогда
//если у элемента есть значение — просто сохраним его
ТекущаяСтрока.Значение = Файл.Значение;

Пример 2. Запись файла 1С XML с помощью объекта ЗаписьXML 1С

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

//создаем файл ЗаписьXML 1С
Файл = Новый ЗаписьXML();
Файл.ОткрытьФайл(«D:\СтруктураКонфигурации.xml», «UTF-8»);
Файл.ЗаписатьНачалоЭлемента(«Конфигурация»);

//по метаданным обходим все справочники (подробнее см. «Работа с метаданными»)
Для каждого Справочник из Метаданные.Справочники Цикл

//ЗаписатьНачалоЭлемента — открывает новую [подчиненную] ветку
Файл.ЗаписатьНачалоЭлемента(«Справочник»);
//ЗаписатьАтрибут — записывает атрибут в открытую ранее ветку
Файл.ЗаписатьАтрибут(«Имя», Справочник.Имя);
Файл.ЗаписатьАтрибут(«Синоним», Справочник.Синоним);

//по метаданным обходим все реквизиты справочника
Для каждого Реквизит из Справочник.Реквизиты Цикл
Файл.ЗаписатьНачалоЭлемента(«Реквизит»);
Файл.ЗаписатьАтрибут(«Имя», Реквизит.Имя);
Файл.ЗаписатьАтрибут(«Синоним», Реквизит.Синоним);
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;

//по метаданным обходим все табличные части справочника
Для каждого ТЧ из Справочник.ТабличныеЧасти Цикл
Файл.ЗаписатьНачалоЭлемента(«ТабличнаяЧасть»);
Файл.ЗаписатьАтрибут(«Имя», ТЧ.Имя);
Файл.ЗаписатьАтрибут(«Синоним», ТЧ.Синоним);

Для каждого Реквизит из ТЧ.Реквизиты Цикл
Файл.ЗаписатьНачалоЭлемента(«Реквизит»);
Файл.ЗаписатьАтрибут(«Имя», Реквизит.Имя);
Файл.ЗаписатьАтрибут(«Синоним», Реквизит.Синоним);
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;

//ЗаписатьКонецЭлемента — «закрывает» открытую ранее с помощью ЗаписатьНачалоЭлемента ветку
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;

Проголосовать за этот пост:

XML-документы в 1С

Для работы с XML-документами в программах на платформе 1С: Предприятие 8 используется встроенный язык системы. Разработчику доступны следующие возможности:

Последовательное чтение и запись xml-документов:

    • преобразование данных из строк с текстом элемента или значением атрибута в другой тип данных, указанный пользователем;
    • получение строкового представления значения с последующим размещением в тексте элемента или значении атрибута;
    • получение типа данных XML, соответствующего типу, переданному в виде параметра;
    • проверка на возможность чтения XML с учетом указанного типа данных;
    • проверка на то, что при чтении, информация соответствует схеме XML;
    • запись значения с сохранением формата XML;
    • возвращение типа данных, соответствующего XML.

    Использование документов DOM, по таким стандартам, как:

      • DOM Level 2;
      • DOM Level 3;
      • DOM Level 3 (DOM Load and Save).

      Также есть возможность использование объектной Схемы XML и Canonical XML 1.1 (канонический стандарт).

      Благодаря встроенным механизмам работы XML, а также за счет подключения к внешнему соединению, организация имеет возможность произвести оптимизированную интеграцию с разными прикладными системами. Для работы с данными в форматах, предусмотренных в подобных системах, используются механизмы XML-преобразования. Также для проведения интеграции можно использовать сторонние сервисы, к примеру, BizTalk предложенный компанией Microsoft.

      Fast Infoset

      Сторонняя платформа, оснащенная обширным набором средств, открывающих возможность работы с XML-документацией, при использовании бинарного формата Fast Infoset. Рассматриваемая технология предполагает использование альтернативного варианта синтаксиса для отображения данных, сохраненных в формате XML. Такой подход позволяет снизить объем файлов, а значит, автоматически улучшается показатель скорости обработки информации, если проводить сравнение с аналогичными действиями со стандартным XML форматом. Файлы, созданные в Fast Infoset, могут иметь одно из следующих расширения:

      • О компании
      • Контакты
      • Статусы компании
      • Вакансии
      • Акции
      • Отправить заявку
      • Часто задаваемые вопросы
      • Политика конфиденциальности
      • Оцените работу сотрудника
      • Обучающие материалы
      • Карта сайта
      • Реквизиты

      Fast Infoset в XML

      Добрый день.
      Коллеги, подскажите. Тема версионирования объектов.
      Есть объект сериализованный в формате Fast Infoset. Типовое версионирование делает так.

      Как можно этот формат переконвертить в обычный читаемый xml, исправить и обратно конвертировать в Fast Infoset?

      По теме из базы знаний

      • Выгрузка Загрузка Данных COM-XML v8.1
      • XDTO — часть 3
      • Выгрузка и загрузка данных XML с отбором по регистрации на узле обмена
      • Подсистема «Версионирование объектов». Ошибка сохранения в xml
      • RabbitMQ+КД 3. История повторения чужого опыта. Наступаем на одни и те же грабли дважды
      • Дата
      • Дата
      • Рейтинг всех уровней
      • Рейтинг 1-го уровня
      • Древо развёрнутое
      • Древо свернутое

      Свернуть все
      2. buganov 196 24.01.19 04:53 Сейчас в теме

      ЧтениеXML = Новый ЧтениеFastInfoSet; ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); Пока ЧтениеXML.Прочитать() Цикл ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); КонецЦикла; СтрокаXML = ЗаписьXML.Закрыть(); ТД = Новый ТекстовыйДокумент; ТД.УстановитьТекст(СтрокаXML); ТД.Записать(Путь + ".xml", КодировкаТекста.UTF8);

      Для записи смотрите ЗаписьFastInfoset

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *