Формат fastinfoset что это

Формат fastinfoset что это

« Как стать программистом 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С

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

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

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

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

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

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

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

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

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

Источник

Формат fastinfoset что это. Смотреть фото Формат fastinfoset что это. Смотреть картинку Формат fastinfoset что это. Картинка про Формат fastinfoset что это. Фото Формат fastinfoset что это

Формат fastinfoset что это. Смотреть фото Формат fastinfoset что это. Смотреть картинку Формат fastinfoset что это. Картинка про Формат fastinfoset что это. Фото Формат fastinfoset что это

Формат fastinfoset что это. Смотреть фото Формат fastinfoset что это. Смотреть картинку Формат fastinfoset что это. Картинка про Формат fastinfoset что это. Фото Формат fastinfoset что это

ФИ фактически сжатие без потерь, аналогично gzip, для XML, за исключением того, что, хотя исходное форматирование потеряно, никакая информация не теряется при преобразовании из XML в FI и обратно в XML. Хотя целью сжатия является уменьшение физического размера данных, FI стремится оптимизировать как размер документа, так и производительность обработки.

Спецификация Fast Infoset определяется как ITU-T и ISO органы по стандартизации. FI официально определен в Рек. МСЭ-Т. X.891 и ИСО / МЭК 24824-1, и под названием Быстрый информационный набор. Стандарт был опубликован ITU-T 14 мая 2005 г. и ISO 4 мая 2007 г. Стандартный документ Fast Infoset можно загрузить с Сайт МСЭ. Хотя документ не заявляет об ограничениях интеллектуальной собственности (IP) на реализацию или использование, страница ii предупреждает, что он получил уведомления, и тема может быть не полностью свободна от утверждений IP.

Распространенное заблуждение состоит в том, что FI требует ASN.1 инструментальная поддержка. Хотя формальная спецификация использует нотацию ASN.1, стандарт включает Обозначение управления кодированием Инструменты (ECN) и ASN.1 не требуются для реализации.

Альтернативой FI является FleXPath. [1]

Содержание

Структура

Базовый формат файла ASN.1, с блоками тегов / длины / значения. Текстовые значения атрибутов и элементов хранятся с префиксами длины, а не с ограничителями конца, а для сегментов данных не требуется escape-последовательность для специальных символов. Эквивалент конечных тегов («терминаторы») нужны только в конце списка дочерних элементов. Двоичные данные передаются в собственном формате, и их не нужно преобразовывать в формат передачи, такой как base64.

Для большинства строк создается индексная таблица, которая включает имена элементов и атрибутов, а также их значения. Это означает, что текст повторяющихся тегов и значений появляется только один раз в документе.

Реализации

Эталонная реализация

Спектакль

Поскольку быстрые информационные наборы сжимаются как часть процесса генерации XML, они намного быстрее, чем использование алгоритмов сжатия в стиле Zip для потока XML, хотя выходные данные не так хорошо сжимаются.

Производительность синтаксического анализа типа SAX в Fast Infoset также намного выше, чем производительность синтаксического анализа XML 1.0, даже без сжатия в стиле Zip. Типичное увеличение скорости синтаксического анализа, наблюдаемое для ссылки Ява реализация в 10 раз больше Java Xerces, и в 4 раза больше Драйвер Piccolo (один из самых быстрых парсеров XML на основе Java). [2] [3] [4]

Типичные области применения

Источник

Что такое быстрый инфосет?

в Компьютеры 28.03.2020 0 58 Просмотров

Fast Infoset (FI – быстрый инфосет) – это спецификация, которая описывает средства доставки данных в документе на языке расширяемой разметки (XML) в двоичном кодированном формате. Закодированный вывод XML называется документом быстрого инфо-набора и значительно меньше своего полного представления XML. Хотя схема кодирования похожа на другие методы сжатия документов, используемая схема кодирования не только сжимает документ XML, но также улучшает обработку данных XML.
Спецификация FI была разработана совместно Международным союзом электросвязи (МСЭ-T) и Международной организацией по стандартизации (ISO) с целью выработки рекомендации по набору XML-данных Консорциума World Wide Web (W3C). Инфо-набор W3C – это средство для определения данных, которые могут содержаться в документе XML, но это не обязательно. В соответствии с рекомендацией W3C информационный набор должен удовлетворять требованиям синтаксиса для того, что бы правильно сформировать XML, а также должен придерживаться правильных имён атрибутов и элементов, определённых в пространстве имён XML. Но исходный документ XML не обязательно должен быть действительным до того, как он будет закодирован в документ быстрого инфо-набора. Это означает, что информационный набор не обязательно должен содержаться в документе XML и может быть создан другими способами.

Формат fastinfoset что это. Смотреть фото Формат fastinfoset что это. Смотреть картинку Формат fastinfoset что это. Картинка про Формат fastinfoset что это. Фото Формат fastinfoset что это

Метод кодирования, используемый в документах быстрого информационного набора, известен как Абстрактная Синтаксическая Нотация 1 (ASN.1). Использование языка кодирования ASN.1 в качестве основы для протокола Fast Infoset позволяет документу сохранить все аспекты самоописания XML-документа, а также некоторые дополнительные функции. Строки, которые регулярно используются в документе, индексируются и заменяются числом. Это включает в себя имена XML, а также их атрибуты. Любые двоичные данные, такие как изображения или видео, также могут быть включены непосредственно в кодирование без необходимости проходить через дополнительную схему кодирования.

Как метод сериализации, Fast Infoset несколько отличается от других методов. Одним из примеров является метод эффективного обмена XML (EXI), который является рекомендованным W3C двоичным форматом XML. Хотя документ EXI может предоставлять более компактное представление информационного набора XML, для этого требуется, чтобы схема XML, имела полное описание исходного документа XML, и была известна на обоих концах передачи, чтобы можно было выполнять кодирование и декодирование документа. Кодировка FI может также использовать расширенные функции, которые также используют схему XML для дополнительного сжатия.

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

Источник

РеКС — друг в мире компьютеров

Приведение простых типов к типу Строка

Приведение простого типа к строке происходит неявным вызовом функции Строка(), которая использует текущие региональные настройки среды пользователя ОС, и поэтому в различных системах и различных сеансах может возвращать различные результаты, что самом по себе не приемлемо во многих задачах. Приведение к строке сложных типов вообще не дает представление о содержании, а содержит только краткое имя типа.

Функция Формат

вид Форматной СтрокиФормат( )=Описание
(1234567.89)
(0)
1 234 567,89Отсутствие строки форматирования эквивалентно функции Строка(…)
ЧЦ (ND)
(число цифр)
(1234567.89,»ЧЦ=10;»)
(1234567.89,»ЧЦ=7;»)
(1234567.89,»ЧЦ=6;»)
1 234 568
1 234 568
999 999
общее число отображаемых десятичных разрядов целой и дробной частей. Исходное число округляется при этом в соответствии с правилами округления Окр15как20. Если указан этот параметр, то для отображения дробной части числа обязательно указание параметра ЧДЦ, иначе дробная часть отображаться не будет.
ЧВН ()
(число вывод нуля)
(1234567.89,»ЧЦ=9;ЧВН=;»)
(1234567.89,»ЧЦ=6;ЧВН=;»)
001 234 568
999 999
если параметр указан, лидирующие нули выводятся. Если не указан — лидирующие нули не выводятся. Значение параметра игнорируется.
ЧН (NZ)
(число ноль)
(0,»ЧН=;»)
(0,»ЧН=;ЧЦ=9;»)
(0,»ЧЦ=9;ЧН=;ЧВН=;»)
0
0
000 000 000
строка, представляющая нулевое значение числа. Если не задано, то представление в виде пустой строки. Если задано «ЧН=», то в виде «0». Не используется для числовых полей ввода.
ЧРГ (NGS)
(число разделитель групп)
(1234567.89,»ЧРГ=;»)
(1234567.89,»ЧРГ= «)
(1234567.89,»ЧРГ=+;»)
(1234567.89,»ЧРГ=0;»)
1 234 567,89
1 234`567,89
1+234+567,89
102340567,89
символ-разделитель групп целой части числа. Если в качестве разделителя использовать пустую строку, то в этом случае разделителем будет символ неразрывного пробела.
ЧГ (NG)
число группа
(1234567.89,»ЧГ=;»)
(1234567.89,»ЧГ=0;»)
(1234567.89,»ЧГ=3;»)
(1234567.89,»ЧГ=3,2;»)
1234567,89
1234567,89
1234 567,89
12 34 567,89
порядок группировки разрядов числа. В качестве значения указываются числа, через запятую, обозначающие количество группируемых разрядов справа налево. Имеют смысл только два первых числа. Первое из них указывает первичную группировку, то есть ту, которая будет использована для наименее значимых разрядов целой части числа. Если второе число не указано, то будут сгруппированы только наименее значимые разряды. Если в качестве второго числа задан 0, то для всех разрядов целой части числа будет применено значение указанное для первичной группировки. Если в качестве второго числа используется значение, отличное от 0, то это значение будет использовано для группировки всех разрядов, кроме уже сгруппированных наименее значимых.
ЧРД (NDS)
число разделитель дробной части
(1234567.89,»ЧРД=;»)
(1234567.89,»ЧРД=.;»)
(1234567.89,»ЧРД=:;»)
1 234 567,89
1 234 567.89
1 234 567:89
символ-разделитель целой и дробной части.
ЧДЦ (NFD)
число десятичные цифры
(1234567.89,»ЧДЦ=0;»)
(1234567.89,»ЧДЦ=1;»)
(1234567.89,»ЧДЦ=3;»)
1 234 567
1 234 567,9
1 234 567,890
число десятичных разрядов в дробной части. Исходное число округляется при этом в соответствии с правилами округления Окр15как20.
ЧО (NN)
число отрицательные
(-1234567.89,»ЧО=0″)
(-1234567.89,»ЧО=1″)
(-1234567.89,»ЧО=2″)
(-1234567.89,»ЧО=3″)
(-1234567.89,»ЧО=4″)
(1 234 567,89)
-1 234 567,89
— 1 234 567,89
1 234 567,89-
1 234 567,89 —
представление отрицательных чисел.
ЧС (NS)
число сдвиг
(1234567.89,»ЧС=0;»)
(1234567.89,»ЧС=1;»)
(1234567.89,»ЧС=9;»)
(1234567.89,»ЧС=-6;»)
1 234 567,89
123 456,789
0,00123456789
1 234 567 890 000
сдвиг разрядов: положительный — деление, отрицательный — умножение. Другими словами, это означает, что исходное число будет умножено или поделено на 10*С, где С — значение параметра по модулю.
ЧФ (NF)
число формат
(1234567.89,»ЧФ=’Ч штук’;»)
(12345.89,»ЧФ=’Вес: Ч’;»)
(123,»ЧФ=’ЧЧЧ’;»)
1 234 567,89 штук
Вес: 12 345,89
123123123
шаблон форматирования числа. В строке можно использовать символ Ч(N) для указания позиции, в которую нужно вывести число. Число выводится с учетом остальных параметров, заданных в форматной строке. Остальные символы выводятся как есть. Символы, находящиеся между двойными или одинарными кавычками выводятся как есть. Шаблон форматирования не применяется к числу 0 (за исключением случая наличия в формате строки параметра «ЧН=»).
Форматирование типа Булево
БЛ (BF)
булево Ложь
(Истина,»БЛ=Неправда;»)
(Ложь,»БЛ=Неправда;»)
Да
Неправда
строка, представляющая логическое значение Ложь.
БИ (BT)
булево Истина
(Истина,»БИ=Правда;»)
(Ложь,»БИ=Правда;»)
Правда
Нет
строка, представляющая логическое значение Истина.
БИ=;БЛ=;
булево Истина и Ложь
(Истина,»БИ=Свет;БЛ=Тьма»)
(Ложь,»БИ=Свет;БЛ=Тьма»)
Свет
Тьма
комбинированная форматная строка для типа Булево
Полезные комбинированные форматные строки
ЧГ=;ЧН=;
ноль и числа без групп
(0,»ЧГ=;ЧН=;»)
(1234567,89,»ЧГ=;ЧН=;»)
0
-1234567,89
отменяет числовые группы и выводит «0»
для обычного отображения и экспорта в Ecxel
ЧРД=.;ЧГ=0;ЧН=;
точка, ноль, без групп
(0,»ЧРД=.;ЧГ=0;ЧН=;»)
(1234567.89,»ЧРД=.;ЧГ=0;ЧН=;»)
0
1234567.89
использует десятичную точку, отменяет числовые группы и выводит «0»
для вычисления в формулах, для обмена данными и сериализации

Для преобразования к строке типа Дата используют другие виды форматных строк:

вид Форматной СтрокиФормат( )=Описание
(‘00010101000000’)
(‘20060504010203’)
01.02.2003 4:05:06Отсутствие строки форматирования эквивалентно функции Строка(…)
ДФ (DF)
(дата формат)
(‘20030201040506’, «ДФ=’дддд дд.ММ.гггг ЧЧ:мм:сс’»)
(‘20030201040506’, «ДФ=»»ддд дд ММММ гггг’г.’»»»)
(‘20030201040506’, «ДФ=’д.М.г Ч:м:с’»)
суббота 01.02.2003 04:05:06
Сб 01 февраля 2003г.
1.2.3 4:5:6
формат даты позволяет задать произвольный способ преобразоания

Важно! Порядок следования опций форматной строки для ДЛФ (ДВ или ДДВ) не может быть изменен. При комбинировании ДФ и ДЛФ, приоритет получает ДФ, а ДЛФ игнорируется.

ДП (DE)
(дата пустая)
(‘00010101000000’, «ДЛФ=Д;ДП=’без даты’»)
(‘20030201040506’, «ДЛФ=Д;ДП=’без даты’»)
без даты
01.02.2003
формат пустой даты устанавливает текст представления пустой даты

Сериализация и десериализация

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

Сериализация 1С

Платформа 1С реализует собственный формат сериализации, который может быть использован в модулях с компиляцией &НаСервере парой функций прямого и обратного преобразования:

Пример сериализации реквизита типа СписокЗначений:

Источник

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

Формат fastinfoset что это. Смотреть фото Формат fastinfoset что это. Смотреть картинку Формат fastinfoset что это. Картинка про Формат fastinfoset что это. Фото Формат fastinfoset что это Формат fastinfoset что это. Смотреть фото Формат fastinfoset что это. Смотреть картинку Формат fastinfoset что это. Картинка про Формат fastinfoset что это. Фото Формат fastinfoset что это

Пример сериализации объектов в 1С 8.3 и их восстановления из сериализованных данных

Разбираясь с версионированием объектов в Бухгалтерии предприятия 3.0, я понял, что оно устроено весьма просто.

В определенный момент (запись справочника, проведение документа. ) объект сериализуется в формат FastInfoSet (по сути являющимся просто сжатым XML) и записывается в реквизит регистра сведений с типом «ХранилищеЗначения».

При возврате к предыдущей версии, из хранилища извлекается сериализованное значение, производится его преобразование в объект, и объект записывается. При записи на сервере текущий объект заменяется извлеченным из хранилища.

В данной обработке на совсем простом уровне проиллюстрирован этот механизм. Можно выбрать Объект (документ, справочник и некоторые другие) сериализовать его в XML и FastInfoSet.

Сериализованные данные можно выгрузить в файл или создать новый, не записанный в базу Объект.

Я не стал делать косвенно опасный механизм перезаписи существующего объекта, а просто создаю форму нового объекта, хранящегося в реквизите обработки «Сериализуемый объект» и затем в нее копируются данные восстановленного объекта. При этом создается новый объект с теми же реквизитами. Идею по открытию формы созданного на сервере из сериализованных данных Объекта я позаимствовал из статьи lobster’а «Открытие формы еще незаписанного документа 1С 8.2 Управляемое приложение».

Источник

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

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