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