Из Википедии, бесплатной энциклопедии
  (Перенаправлено из раздела Сравнение форматов сериализации данных )
Перейти к навигации Перейти к поиску

Это сравнение форматов сериализации данных , различных способов преобразования сложных объектов в последовательности битов . Он не включает языки разметки, используемые исключительно как форматы файлов документов .

Обзор [ править ]

  • а. ^ Текущий формат по умолчанию - двоичный.
  • б. ^ «Классический» формат - это простой текст, также поддерживается формат XML.
  • c. ^ Теоретически возможно из-за абстракции, но реализация не включена.
  • d. ^ Основной формат - двоичный, но доступен текстовый формат. [6]
  • е. ^ Означает, что общие инструменты / библиотеки знают, как кодировать, декодировать и разыменовать ссылку на другой фрагмент данных в том же документе. Инструмент может потребовать файл IDL , но не более того. Исключает нестандартные методы создания ссылок.
  • f. ^ В ASN.1 есть X.681 (система информационных объектов), X.682 (ограничения) и X.683 (параметризация), которые позволяют точную спецификацию открытых типов, где типы значений могут быть идентифицированы целыми числами, с помощью OID. и т. д. OID - это стандартный формат для глобально уникальных идентификаторов, а также стандартная нотация («абсолютная ссылка») для ссылки на компонент значения. Например, PKIX использует такую ​​нотацию в RFC 5912. С такой нотацией (ограничения на параметризованные типы с использованием наборов информационных объектов) общие инструменты / библиотеки ASN.1 могут автоматически кодировать / декодировать / разрешать ссылки в документе.
  • грамм. ^ VelocyPack предлагает тип значения для хранения указателей на другие элементы VPack. Это разрешено, если данные VPack находятся в памяти, но не если они хранятся на диске или отправляются по сети.
  • час ^ Основной формат - двоичный, но доступен текстовый формат. [7] [8]
  • я. ^ Основной формат - двоичный, но доступны текстовые и json-форматы. [9]
  • j. ^ Основной формат - двоичный, доступен кодировщик json. [10]

Сравнение синтаксиса удобочитаемых форматов [ править ]

  • а. ^ Опущенные элементы XML обычно декодируются инструментами привязки данных XML как NULL. Здесь показана другая возможная кодировка; Схема XML не определяет кодировку для этого типа данных.
  • б. ^ Спецификация RFC CSV касается только разделителей, символов новой строки и кавычек; он не имеет прямого отношения к сериализации программных структур данных .
  • c. ^ Спецификация netstrings касается только вложенных байтовых строк ; все остальное выходит за рамки спецификации.
  • d. ^ PHP будет корректно десериализовать любое число с плавающей запятой, но сериализует его до полного десятичного расширения. Например, 3.14 будет сериализован в 3.140000000000000124344978758017532527446746826171875.
  • е. ^ Привязки данных XML и инструменты сериализации SOAP обеспечивают безопасную сериализацию XML программных структур данных в XML. Показаны значения XML, которые можно помещать в элементы и атрибуты XML.
  • f. ^ Этот синтаксис несовместим с Internet-Draft, но используется некоторыми диалектами Лиспа .

Сравнение двоичных форматов [ править ]

  1. ^ Любое представление на основе XML может быть сжато или сгенерировано как с помощью EXI - Efficient XML Interchange , который является стандартом двоичного сжатия XML «с указанием схемы» (в отличие от обязательного по схеме или без схемы).
  2. ^ Все основные типы Ion имеют нулевой вариант в виде тега 0xXf. Любой тег, начинающийся с 0x0X, кроме 0x0f, определяет игнорируемое заполнение.
  3. ^ Интерпретация Netstrings полностью зависит от приложения или схемы.

См. Также [ править ]

  • Сравнение языков разметки документов

Ссылки [ править ]

  1. ^ «HAPI FHIR - API FHIR с открытым исходным кодом для Java» . hapifhir.io .
  2. ^ cpython / Lib / pickle.py
  3. ^ Apache Thrift
  4. ^ «Краткая история SOAP» . www.xml.com .
  5. Бен-Кики, Орен; Эванс, Кларк; Нетто, Инги Дёт (2009-10-01). «YAML не является языком разметки (YAML) версии 1.2» . Официальный веб-сайт YAML . Проверено 10 февраля 2012 .
  6. ^ "text_format.h - Буферы протокола" . Разработчики Google .
  7. ^ "Cap'n Proto сериализация / система RPC: основные инструменты и библиотека C ++ - capnproto / capnproto" . 2 апреля 2019 г. - через GitHub.
  8. ^ "Cap'n Proto: Инструмент capnp" . capnproto.org .
  9. ^ «Fast Binary Encoding - сверхбыстрое и универсальное решение для сериализации для C ++, C #, Go, Java, JavaScript, Kotlin, Python, Ruby: chronoxor / FastBinaryEncoding» . 2 апреля 2019 г. - через GitHub.
  10. ^ "Формат Avro Json" .
  11. ^ "Документация класса NSPropertyListSerialization" . www.gnustep.org . Архивировано из оригинала 2011-05-19 . Проверено 28 октября 2009 .
  12. ^ "Архив документации" . developer.apple.com .
  13. Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (18 января 2005 г.). «Независимый от нулевого языка тип для YAML версии 1.1» . YAML.org . Проверено 12 сентября 2009 .
  14. ^ a b Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (18 января 2005 г.). «Не зависящий от логического языка тип для YAML версии 1.1» . YAML.org . Кларк С. Эванс . Проверено 12 сентября 2009 .
  15. Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (11 февраля 2005 г.). «Целочисленный независимый от языка тип для YAML версии 1.1» . YAML.org . Кларк С. Эванс . Проверено 12 сентября 2009 .
  16. Орен Бен-Кики; Кларк Эванс; Брайан Ингерсон (18 января 2005 г.). «Независимый от языка с плавающей точкой тип для YAML версии 1.1» . YAML.org . Кларк С. Эванс . Проверено 12 сентября 2009 .
  17. ^ Ионное двоичное кодирование
  18. ^ «MessagePack - чрезвычайно эффективная библиотека сериализации объектов. Она похожа на JSON, но очень быстрая и маленькая: msgpack / msgpack» . 2 апреля 2019 г. - через GitHub.

Внешние ссылки [ править ]

  • Предложение XML-QL, в котором обсуждаются преимущества XML
  • Осмеливаясь делать меньше с XML