مقارنة تنسيقات تسلسل البيانات

هذه مقارنة بين صيغ تسلسل البيانات ، وهي طرق مختلفة لتحويل الكائنات المعقدة إلى سلاسل من البتات . ولا تشمل لغات الترميز المستخدمة حصريًا كصيغ ملفات مستندات .

ملخص

اسمالمُنشئ والمُحافظمرتكز علىهل هو معياري؟مواصفةثنائي ؟هل يمكن قراءته من قبل البشر ؟يدعم المراجع ؟ هـمخطط IDL ؟واجهات برمجة التطبيقات القياسيةيدعم عمليات النسخ الصفري
أباتشي آرومؤسسة برمجيات أباتشيغير متوفربحكم الواقعتنسيق الأعمدة السهميةنعملانعممدمجسي، سي++، سي#، جو، جافا، جافا سكريبت، جوليا، ماتلاب، بايثون، آر، روبي، رست، سويفتنعم
أباتشي أفرومؤسسة برمجيات أباتشيغير متوفرلامواصفات أباتشي أفرو™نعمجزئي gغير متوفرمدمجسي، سي شارب، سي++، جافا، بي إتش بي، بايثون، روبيغير متوفر
أرضيات أباتشي باركيهمؤسسة برمجيات أباتشيغير متوفرلاأرضيات أباتشي  باركيهنعملالاغير متوفرجافا، بايثون، سي++لا
أباتشي ثريفتفيسبوك (الجهة المؤسسة) أباتشي (الجهة المسؤولة عن الصيانة)غير متوفرلاالورقة البيضاء الأصليةنعمج جزئيلامدمجC++، Java، Python، PHP، Ruby، Erlang، Perl، Haskell، C#، Cocoa، JavaScript، Node.js، Smalltalk، OCaml، Delphi ولغات أخرى [ 1 ]غير متوفر
ASN.1المنظمة الدولية للمعايير (ISO) ، واللجنة الكهروتقنية الدولية (IEC) ، وقطاع تقييس الاتصالات التابع للاتحاد الدولي للاتصالات (ITU-T).غير متوفرنعمسلسلة ISO/IEC 8824 / ITU-T X.680 (البنية) وسلسلة ISO/IEC 8825 / ITU-T X.690 (قواعد الترميز). تحدد X.680 وX.681 وX.683 البنية والدلالات.BER أو DER أو PER أو OER أو حسب الطلب عبر ECNXER أو JER أو GSER أو حسب الطلب عبر ECNنعم fمدمجغير متوفرموارد تعليمية مفتوحة
بنكودبرام كوهين (المبتكر) شركة BitTorrent (الجهة المسؤولة عن الصيانة)غير متوفربحكم الأمر الواقع كـ BEPجزء من مواصفات بروتوكول BitTorrentباستثناء الأرقام والفواصل، كونها ASCIIلالالالالا
بيسونMongoDBJSONلامواصفات BSONنعملالالالالا
كابتن بروتوكينتون فارداغير متوفرلامواصفات ترميز كابتن بروتونعمجزئي حلانعملانعم
سي بي أو آركارستن بورمان، بي. هوفمانMessagePack [ 2 ]نعمRFC 8949نعملانعم، من خلال وضع العلاماتCDDLFIDO2لا
القيم المفصولة بفواصل (CSV)مؤلف طلب التعليقات: ياكوف شافرانوفيتشغير متوفرعدد لا يحصى من الصيغ غير الرسميةRFC 4180 (من بين أمور أخرى)لانعملالالالا
تمثيل البيانات المشترك (CDR)مجموعة إدارة الكائناتغير متوفرنعمالبروتوكول العام بين المنظماتنعملانعمنعمأدا، سي، سي++، جافا، كوبول، ليسب، بايثون، روبي، سمول توكغير متوفر
بروتوكول رسائل D-Busfreedesktop.orgغير متوفرنعممواصفات ناقل البيانات D-Busنعملالاجزئي (أوتار التوقيع)نعمغير متوفر
تبادل XML الفعال (EXI)اتحاد شبكة الويب العالمية (W3C)XML ، XML الفعالنعمتنسيق تبادل XML الفعال (EXI) 1.0نعمXMLXPointer ، XPathمخطط XMLDOM ، SAX ، StAX ، XQuery ، XPathغير متوفر
تدوين البيانات القابل للتوسيع (طبعة)ريتش هيكي / مجتمع كلوجركلوجرنعمالمواصفات الرسمية للطبعةلانعملالاClojure، Ruby، Go، C++، Javascript، Java، CLR، ObjC، Python [ 3 ]لا
مخازن مسطحةجوجلغير متوفرلاFlatbuffers GitHubنعمأباتشي آروجزئي (داخل المخزن المؤقت)نعمسي++، جافا، سي#، جو، بايثون، رست، جافا سكريبت، بي إتش بي، سي، دارت، لوا، تايب سكريبتنعم
معلومات سريعةالمنظمة الدولية للمعايير (ISO) ، واللجنة الكهروتقنية الدولية (IEC) ، وقطاع تقييس الاتصالات التابع للاتحاد الدولي للاتصالات (ITU-T).XMLنعمITU-T X.891 و ISO/IEC 24824-1:2007نعملاXPointer ، XPathمخطط XMLDOM ، SAX ، XQuery ، XPathغير متوفر
FHIRالمستوى الصحي 7أساسيات RESTنعمموارد سريعة للتوافق التشغيلي في مجال الرعاية الصحيةنعمنعمنعمنعمHapi for FHIR [ 4 ] JSON , XML , Turtleلا
INIمايكروسوفت؟لاتوجد عدة أنواع مختلفةلانعم؟؟؟؟
أيونأمازونJSONلامواصفات أمازون أيوننعمنعملامخطط الأيوناتسي، سي شارب، جو، جافا، جافا سكريبت، بايثون، رستغير متوفر
تسلسل جافاشركة أوراكلغير متوفرنعمتسلسل كائنات جافانعملانعملانعمغير متوفر
JSONدوغلاس كروكفوردبناء جملة جافا سكريبتنعمSTD 90 /RFC 8259 (ملحق: RFC 6901، RFC 6902)، ECMA-404 ، ISO/IEC 21778:2017لا، ولكن انظر إلى BSON و Smile و UBJSONنعممؤشر JSON (RFC  6901) ، أو بديلًا عنه، JSONPath ، JPath ، JSPON ، json:select() ؛ و JSON-LDجزئي ( اقتراح مخطط JSON ، ASN.1 مع JER ، Kwalify مؤرشف في 12 أغسطس 2021 على Wayback Machine ، Rx ، JSON-LDجزئي ( كلارينيت ، JSONQuery / RQL ، JSONPathJSON-LDلا
حزمة الرسائلسادايوكي فوروهاشيJSON (بشكل عام)لامواصفات تنسيق حزمة الرسائلنعملالالالانعم
سلاسل الشبكةدان بيرنشتاينغير متوفرلاnetstrings.txtباستثناء محددات ASCIIنعملالالانعم
رخصة القيادة العامة الأصليةرولف فين؟لامواصفةالمواصفات الثنائيةنعمتحديد المسارمخطط WDغير متوفر
ثنائي OPC-UAمؤسسة OPCغير متوفرلاopcfoundation.orgنعملانعملالاغير متوفر
OpenDDLإريك لينجيللغة C ، لغة PHPلاOpenDDL.orgلانعمنعملامكتبة OpenDDLغير متوفر
تنسيق التسلسل PHPمجموعة PHPغير متوفرنعملانعمنعمنعملانعمغير متوفر
مخلل (بايثون)غيدو فان روسومبايثونبحكم الواقع كشخصيات بارزةPEP 3154 – بروتوكول Pickle الإصدار 4نعملانعم [ 5 ]لانعملا
قائمة العقاراتشركة نيكست (المنشئة) وشركة آبل (المسؤولة عن الصيانة)؟جزئيتعريف نوع المستند العام لتنسيق XMLنعمنعم بلا؟كوكوا ، كور فاونديشن ، أوبن ستيب ، جنو ستيبلا
بروتوكول المخازن المؤقتة (protobuf)جوجلغير متوفرلادليل المطور: الترميز ، ومواصفات بروتوكول 2 ، ومواصفات بروتوكول 3نعمنعم دلامدمجC++، Java، C#، Python، Go، Ruby، Objective-C، C، Dart، Perl، PHP، R، Rust، Scala، Swift، Julia، D، ActionScript، Delphi، Elixir، Elm، Erlang، GopherJS، Haskell، Haxe، JavaScript، Kotlin، Lua، Matlab، Mercurt، OCaml، Prolog، Solidity، TypeScript، Vala، Visual Basicلا
تعبيرات Sجون مكارثي (الأصل) رون ريفست (مسودة الإنترنت)لغة ليسب ، سلاسل الشبكةبحكم الواقع إلى حد كبير"تعبيرات S" مؤرشفة بتاريخ 7 أكتوبر 2013 في أرشيف الإنترنت Wayback Machine (مسودة إنترنت)نعم، التمثيل المتعارف عليهنعم، تمثيل النقل المتقدملالاغير متوفر
يبتسمتاتو سالورانتاJSONلامواصفات تنسيق الابتسامةنعملانعمجزئي ( اقتراح مخطط JSON ، مخططات JSON/IDLs أخرى)جزئي (عبر واجهات برمجة تطبيقات JSON المنفذة باستخدام الواجهة الخلفية Smile، على Jackson، Python)غير متوفر
صابوناتحاد شبكة الويب العالمية (W3C)XMLنعمتوصيات اتحاد شبكة الويب العالمية (W3C) : SOAP/1.1 و SOAP/1.2جزئي ( تبادل XML فعال ، XML ثنائي ، مجموعة معلومات سريعة ، MTOM ، بيانات XSD base64 )نعممعرف/مرجع مدمج، مؤشر XPointer ، XPathمخطط WSDL و XMLDOM ، SAX ، XQuery ، XPathغير متوفر
تنسيقات تبادل البيانات المنظمةماكس وايلدغروبغير متوفرنعمRFC 3072نعملالالاغير متوفر
TOMLتوم بريستون-فيرنرتنسيق ملف INIنعمالإصدار 1.1.0 أحدث إصدارلانعم؟؟؟؟
UBJSONشركة ذا باز ميديا ​​المحدودةJSON ، BSONلاubjson.orgنعملالالالاغير متوفر
تمثيل البيانات الخارجية (XDR)شركة صن مايكروسيستمز (الشركة المُنشئة) وفريق هندسة الإنترنت (الجهة المسؤولة عن الصيانة)غير متوفرنعمSTD 67 /RFC 4506نعملانعمنعمنعمغير متوفر
XMLاتحاد شبكة الويب العالمية (W3C)SGMLنعمتوصيات اتحاد شبكة الويب العالمية : 1.0 (الإصدار الخامس) 1.1 (الإصدار الثاني)جزئي ( تبادل XML فعال ، XML ثنائي ، مجموعة معلومات سريعة ، بيانات XSD base64 )نعمXPointer ، XPathمخطط XML ، RELAX NGDOM ، SAX ، XQuery ، XPathغير متوفر
XML-RPCديف وينر [ 6 ]XMLلامواصفات XML-RPCلانعملالالالا
YAMLكلارك إيفانز، وإنجي دوت نت، وأورين بن كيكيC ، Java ، Perl ، Python ، Ruby ، Email ، HTML ، MIME ، URI ، XML ، SAX ، SOAP ، JSON [ 7 ]لاالإصدار 1.2لانعمنعمجزئي ( Kwalify مؤرشف بتاريخ 2021-08-12 في Wayback Machine ، Rx ، تعريفات أنواع اللغة المضمنة)لالا
اسمالمُنشئ والمُحافظمرتكز علىهل هو معياري؟مواصفةثنائي ؟هل يمكن قراءته من قبل البشر ؟يدعم المراجع ؟ هـمخطط IDL ؟واجهات برمجة التطبيقات القياسيةيدعم عمليات النسخ الصفري
  1. ^ التنسيق الافتراضي الحالي هو ثنائي.
  2. ^ التنسيق "الكلاسيكي" هو نص عادي، كما يتم دعم تنسيق XML أيضًا.
  3. ^ ممكن نظرياً بسبب التجريد، ولكن لم يتم تضمين أي تطبيق.
  4. ^ التنسيق الأساسي هو ثنائي، ولكن تتوفر أيضًا تنسيقات نصية وJSON. [ 8 ] [ 9 ]
  5. ^ يعني أن الأدوات/المكتبات العامة تعرف كيفية ترميز وفك ترميز وفك مرجعية البيانات في نفس المستند. قد تتطلب الأداةIDL، ولكن ليس أكثر. يستثنى من ذلك تقنيات الإشارة المخصصة وغير القياسية.
  6. يتضمن معيار ASN.1 ثلاثة أقسام : X.681 (نظام كائنات المعلومات)، وX.682 (القيود)، وX.683 (المعاملات)، والتي تتيح تحديدًا دقيقًا للأنواع المفتوحة، حيث يمكن تحديد أنواع القيم بواسطة الأعداد الصحيحة، أو معرّفات الكائنات (OIDs)، وما إلى ذلك. تُعدّ معرّفات الكائنات (OIDs) تنسيقًا قياسيًا للمعرّفات الفريدة عالميًا، بالإضافة إلى كونها تدوينًا قياسيًا ("مرجع مطلق") للإشارة إلى أحد مكونات القيمة. على سبيل المثال، يستخدم معيار PKIX هذا التدوين في RFC 5912. وباستخدام هذا التدوين (القيود المفروضة على الأنواع ذات المعاملات باستخدام مجموعات كائنات المعلومات)، تستطيع أدوات/مكتبات ASN.1 العامة ترميز/فك ترميز/حلّ المراجع داخل المستند تلقائيًا.
  7. ^ التنسيق الأساسي ثنائي، ويتوفر مُشفِّر JSON. [ 10 ]
  8. ^ التنسيق الأساسي هو ثنائي، ولكن يتوفر أيضًا تنسيق نصي.

مقارنة بناء الجملة للتنسيقات القابلة للقراءة البشرية

شكلباطلصحيح منطقيخطأ منطقيعدد صحيحالفاصلة العائمةخيطالمصفوفةمصفوفة ترابطية / كائن
ASN.1 (قواعد ترميز XML)<foo /><foo>true</foo><foo>false</foo><foo>685230</foo><foo>6.8523015e+5</foo><foo>A to Z</foo>
<SeqOfUnrelatedDatatypes> <isMarried> صحيح </isMarried> <hobby /> <velocity> -42.1e7 </velocity> <bookname> من الألف إلى الياء </bookname> <bookname> قلنا " لا". </bookname> </SeqOfUnrelatedDatatypes>
كائن (المفتاح هو اسم حقل):
<person> <isMarried> صحيح </isMarried> <hobby /> <height> 1.85 </height> <name> بوب بيترسون </name> </person>

مخطط البيانات (المفتاح هو قيمة البيانات):

<مسابقة> <قياس> <اسم> جون </اسم> <طول> 3.14 </طول> </قياس> <قياس> <اسم> جين </اسم> <طول> 2.718 </طول> </قياس > < /مسابقة>

أ

CSV bnullأ (أو عنصر فارغ في الصف) أ1أ trueأ0أ falseأ685230-685230أ6.8523015e+5أA to Z"We said, ""no""."true,,-42.1e7,"A to Z"
42.1 من الألف إلى الياء، 1، 2، 3
ednniltruefalse685230-6852306.8523015e+5"A to Z"،"A \"up to\" Z"[true nil -42.1e7 "A to Z"]{:kw 1, "42" true, "A to Z" [1 2 3]}
أيون

nullnull.nullnull.boolnull.intnull.floatnull.decimalnull.timestampnull.stringnull.symbolnull.blobnull.clobnull.structnull.listnull.sexp

truefalse685230-6852300xA74AE0b1110100101011106.8523015e5"A to Z"'''A to Z'''
[ صحيح ، فارغ ، -42.1e7 ، "من الألف إلى الياء" ]
{ '42' : true , 'A to Z' : [ 1 , 2 , 3 ]}
سلاسل الشبكة ج0:,أ 4:null,أ1:1,أ 4:true,أ1:0,أ 5:false,أ6:685230,أ9:6.8523e+5,أ6:A to Z,29:4:true,0:,7:-42.1e7,6:A to Z,,41:9:2:42,1:1,,25:6:A to Z,12:1:1,1:2,1:3,,,,أ
JSONnulltruefalse685230-6852306.8523015e+5"A to Z"
[ صحيح ، فارغ ، -42.1e7 ، "من الألف إلى الياء" ]
{ "42" : صحيح , "من الألف إلى الياء" : [ 1 , 2 , 3 ]}
رخصة القيادة العامة الأصليةnullأtrueأfalseأ685230أ6.8523015e+5أ"A to Z"'A to Z'NoSpaces
حقيقي باطل -42.1e7 "من الألف إلى الياء"

(true, null, -42.1e7, "A to Z")

42 حقيقي "من الألف إلى الياء" 1 2 3
42 حقيقي "من الألف إلى الياء" (1، 2، 3)
OpenDDLref {null}bool {true}bool {false}int32 {685230}int32 {0x74AE}int32 {0b111010010101110}float {6.8523015e+5}string {"A to Z"}

مصفوفة متجانسة:

int32 {1, 2, 3, 4, 5}

مجموعة غير متجانسة:

مصفوفة { منطقي {صحيح} ref {null} float {-42.1e7} سلسلة نصية {"من الألف إلى الياء"} }
قاموس { القيمة (المفتاح = "42") {منطقي {صحيح}} القيمة (المفتاح = "من الألف إلى الياء") {int32 {1، 2، 3}} }
تنسيق التسلسل PHPN;b:1;b:0;i:685230;i:-685230;d:685230.15;دd:INF;d:-INF;d:NAN;s:6:"A to Z";a:4:{i:0;b:1;i:1;N;i:2;d:-421000000;i:3;s:6:"A to Z";}مصفوفة ترابطية: a:2:{i:42;b:1;s:6:"A to Z";a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}}الكائن: O:8:"stdClass":2:{s:4:"John";d:3.14;s:4:"Jane";d:2.718;}د
مخلل (بايثون)N.I01\n.I00\n.I685230\n.F685230.15\n.S'A to Z'\n.(lI01\na(laF-421000000.0\naS'A to Z'\na.(dI42\nI01\nsS'A to Z'\n(lI1\naI2\naI3\nas.
قائمة العقارات (بتنسيق نص عادي) [ 11 ]غير متوفر<*BY><*BN><*I685230><*R6.8523015e+5>"A to Z"( <*BY>, <*R-42.1e7>, "A to Z" )
{ "42" = <*BY>; "من أ إلى ي" = ( <*I1>, <*I2>, <*I3> ); }
قائمة الخصائص (بتنسيق XML) [ 12 ]غير متوفر<true /><false /><integer>685230</integer><real>6.8523015e+5</real><string>A to Z</string>
<array> <true /> <real> -42.1e7 </real> <string> من الألف إلى الياء </string> </array>
<dict> <key> 42 </key> <true /> <key> من الألف إلى الياء </key> <array> <integer> 1 </integer> <integer> 2 </integer> <integer> 3 </integer> </array> </dict>
بروتوكول بافرزغير متوفرtruefalse685230-68523020.0855369"A to Z""sdfff2 \000\001\002\377\376\375""q\tqq<>q2&\001\377"
الحقل 1: "القيمة 1" الحقل 1: "القيمة 2" الحقل 1: "القيمة 3" 
حقل آخر { foo: 123 البار: 456 } حقل آخر { foo: 222 البار: 333 } 
الشيء 1 : "كلام فارغ" الشيء 2 : 18923743 الشيء 3 : -44 الشيء 4 { حقل_الرسالة_الفرعية 1 : "foo" حقل_الرسالة_الفرعية 2 : خطأ } الشيء_المُعدّد : قيمة_مُعدّدة الشيء 5 : 123.456 [ حقل_الامتداد_Foo ] : "إلخ" [ حقل_الامتداد_الذي_هو_تعداد ] : قيمة_مُعدّدة
تعبيرات SNILnilT#tوtrueNIL#fوfalse6852306.8523015e+5abc"abc"#616263#3:abc{MzphYmM=}|YWJj|(T NIL -42.1e7 "A to Z")((42 T) ("A to Z" (1 2 3)))
TOMLغير متوفرtruefalse685230+685_230-6852300x_0A_74_AE0b1010_0111_0100_1010_11106.8523015e+5685.230_15e+03685_230.15inf-infnan"A to Z"'A to Z'["y", -42.1e7, "A to Z"]
[ "ص"، -42.1e7, "من الألف إلى الياء" ]
{ John = 3.14, Jane = 2.718 }
42 = ص "من الألف إلى الياء" = [1، 2، 3]
YAML~nullNullNULL[ 13 ]yYyesYesYESonOnONtrueTrueTRUE[ 14 ]nNnoNoNOoffOffOFFfalseFalseFALSE[ 14 ]685230+685_230-685230024722560x_0A_74_AE0b1010_0111_0100_1010_1110190:20:30[ 15 ]6.8523015e+5685.230_15e+03685_230.15190:20:30.15.inf-.inf.Inf.INF.NaN.nan.NAN[ 16 ]A to Z"A to Z"'A to Z'[y, ~, -42.1e7, "A to Z"]
- y - -42.1e7 - من الألف إلى الياء
{"John":3.14, "Jane":2.718}
42: y من الألف إلى الياء: [1، 2، 3]
XML و SOAP<null />أtruefalse6852306.8523015e+5A to Z
<item> صحيح </item> <item xsi:nil= "صحيح" /> <item> -42.1e7 </item> <item> من الألف إلى الياء <item>
<map> <entry key= "42" > صحيح </entry> <entry key= "A to Z" > <item val= "1" /> <item val= "2" /> <item val= "3" /> </entry> </map>
XML-RPC<value><boolean>1</boolean></value><value><boolean>0</boolean></value><value><int>685230</int></value><value><double>6.8523015e+5</double></value><value><string>A to Z</string></value>
<value><array> <data> <value><boolean> 1 </boolean></value> <value><double> -42.1e7 </double></value> <value><string> من الألف إلى الياء </string></value> </data> </array></value>
<value><struct> <member> <name> 42 </name> <value><boolean> 1 </boolean></value> </member> <member> <name> من الألف إلى الياء </name> <value> <array> <data> <value><int> 1 </int></value> <value><int> 2 </int></value> <value><int> 3 </int></value> </data> </array> </value> </member> </struct>
  1. ^ عادةً ما تُفكّكربط بيانات XMLعلى أنها قيم فارغة (NULL). يظهر هنا ترميز آخر محتمل؛مخطط XMLترميزًا لهذا النوع من البيانات.
  2. ^ لا تتعامل مواصفات RFC CSV إلا مع المحددات والأسطر الجديدة وأحرف الاقتباس؛ فهي لا تتعامل بشكل مباشر مع تسلسلهياكل بيانات.
  3. ^ لا تتعامل مواصفاتnetstringsإلا معسلاسل البايت؛ أي شيء آخر يقع خارج نطاق المواصفات.
  4. سيقوم PHP بفك تسلسل أي عدد عشري بشكل صحيح، ولكنه سيقوم بتسلسله إلى امتداده العشري الكامل. على سبيل المثال، سيتم تسلسل 3.14 إلى3.140 000 000 000 000 124 344 978 758 017 532 527 446 746 826 171 875 .
  5. توفر أدواتربط بيانات XML وأدوات تسلسل SOAPتسلسلًا آمنًا لأنواعالبيانات لهياكل بياناتإلى XML. يُعرض هنا قيم XML التي يمكن وضعها في عناصر وسمات XML.
  6. ^ هذا التركيب النحوي غير متوافق مع مسودة الإنترنت، ولكنه يستخدم بواسطة بعض لهجات لغةليسب.

مقارنة التنسيقات الثنائية

شكلباطلالقيم المنطقيةعدد صحيحالفاصلة العائمةخيطالمصفوفةمصفوفة ترابطية / كائن
ASN.1 ( ترميز BER أو PER أو OER )نوع NULLمنطقي :
  • معدل الخطأ في البت: كبايت واحد في الشكل الثنائي؛
  • لكل: كبت واحد؛
  • OER: بحجم 1 بايت
عدد صحيح :
  • معدل الخطأ في البت: تمثيل ثنائي كبير النهاية ذو طول متغير (حتى 2 2 1024 بت)؛
  • PER غير محاذي: عدد ثابت من البتات إذا كان نوع العدد الصحيح له نطاق محدود؛ عدد متغير من البتات خلاف ذلك؛
  • PER Aligned: عدد ثابت من البتات إذا كان نوع العدد الصحيح له نطاق محدود وكان حجم النطاق أقل من 65536؛ عدد متغير من الثمانيات خلاف ذلك؛
  • OER: 1 أو 2 أو 4 بايتات (سواء كانت ذات إشارة أو بدون إشارة) إذا كان نوع العدد الصحيح له نطاق محدود يتناسب مع هذا العدد من البايتات؛ عدد متغير من البايتات في غير ذلك
حقيقي :
  • يتم تمثيل القيم الحقيقية ذات الأساس 10 كسلاسل أحرف بتنسيق ISO 6093؛
  • يتم تمثيل القيم الحقيقية الثنائية بتنسيق ثنائي يتضمن الجزء الكسري، والأساس (2 أو 8 أو 16)، والأس؛
  • كما يتم دعم القيم الخاصة NaN و -INF و +INF والصفر السالب
أنواع صالحة متعددة ( VisibleString، PrintableString، GeneralString، UniversalString، UTF8String )مواصفات البيانات: مجموعة من (غير مرتبة) وتسلسل من (ترتيب مضمون)نوع قابل للتحديد من قبل المستخدم
بيسون\x0A(بايت واحد)صحيح: \x08\x01خطأ: \x08\x00(بايتان)int32: عدد صحيح 32 بت بنظام little-endian مع متمم ثنائي، أو int64: عدد صحيح 64 بت بنظام little-endian مع متمم ثنائيمزدوج : ثنائي صغير النهاية 64مُشفّر بترميز UTF-8 ، مسبوقًا بطول السلسلة المشفرة بترميز int32 بالبايتمستند مضمن بصيغة BSON يحتوي على مفاتيح رقميةمستند مضمن بصيغة BSON
تمثيل الكائنات الثنائية الموجز (CBOR)\xf6(بايت واحد)
  • حقيقي:\xf5
  • خطأ شنيع:\xf4

(بايت واحد)

  • موجب/سالب صغير \x00\x17& \x20\x37(1 بايت)
  • 8 بت: موجب \x18، سالب \x38(+ 1 بايت)
  • 16 بت: موجب \x19، سالب \x39(+ 2 بايت)
  • 32 بت: موجب \x1A، سالب \x3A(+ 4 بايت)
  • 64 بت: موجب \x1B، سالب \x3B(+ 8 بايت)
  • يتم ترميز x السالب على النحو التالي (−x − 1)
  • IEEE نصف/مفرد/مزدوج \xf9\xfb(+ 2–8 بايت)
  • يتم ترميز الأعداد العشرية والأعداد العشرية الكبيرة (4 بايتات فأكثر) \xc4كعلامة + مصفوفة من عنصرين من الجزء الكسري والأس.
  • الطول والمحتوى (1-9 بايتات إضافية)
  • سلسلة البايتات \x40\x5f
  • UTF-8\x60\x7f
  • سلاسل جزئية غير محددة \x5fومخيطة \x7fمعًا حتى \xff.
  • الطول والعناصر \x80\x9e
  • قائمة غير محددة \x9fتنتهي بإدخال \xff.
  • الطول (في أزواج) والعناصر \xa0\xbe
  • خريطة غير محددة \xbfتنتهي بمفتاح \xff.
تبادل XML الفعال (EXI) [ أ ]

(تنسيق القيم المعجمية غير المحفوظة)

لا يُسمح باستخدام xsi:nil في السياق الثنائي.يتم تفسير عدد صحيح مكون من 1-2 بت على أنه قيمة منطقية (boolean).إشارة منطقية، بالإضافة إلى وحدات ثمانية بتات بطول عشوائي (7 بتات)، يتم تحليلها حتى تصبح البتة الأكثر أهمية صفرًا، بنظام الترتيب الصغير (little-endian). يمكن للمخطط تعيين نقطة الصفر إلى أي رقم عشوائي.

يتجاهل Unsigned علامة boolean.

  • العدد العشري: جزء صحيح من الكسر وأس صحيح.
  • العشري: إشارة منطقية، قيمة عددية صحيحة كاملة، قيمة عددية صحيحة كسرية.
يُشار إلى الطول باستخدام ترميز Unicode للأعداد الصحيحة. قد تمثل الأعداد الصحيحة تعدادات أو مدخلات جداول السلاسل النصية بدلاً من ذلك.مجموعة من العناصر ذات طول محدد مسبقًا.ليس ضمن البروتوكول.
مخازن مسطحةتم ترميزها على أنها غياب الحقل في الكائن الأصل
  • حقيقي:\x01
  • خطأ شنيع:\x00

(بايت واحد)

نظام العد الصغير (Little-endian ) مع مكمل ثنائي، موقّع وغير موقّع، 8/16/32/64 بتمُشفّر بنظام UTF-8 ، مسبوقًا بعدد صحيح 32 بت يمثل طول السلسلة بالبايتاتالمتجهات من أي نوع آخر، مسبوقة بعدد صحيح مكون من 32 بت يمثل عدد العناصرالجداول (أنواع محددة في المخطط) أو المتجهات المصنفة حسب المفتاح (الخرائط / القواميس)
أيون [ 18 ]\x0f[ ب ]
  • حقيقي:\x11
  • خطأ شنيع:\x10
  • إيجابي \x2x، سلبي\x3x
  • يتم ترميز الصفر دائمًا في بايت العلامة.
  • تتضمن أعداد BigInt التي يزيد طولها عن 13 بايت (104 بت) زيادة في الحجم بمقدار بايت واحد أو أكثر.
  • \x44(32 بت عائم)
  • \x48(عدد عشري 64 بت)
  • يتم ترميز الصفر دائمًا في بايت العلامة.
  • UTF-8 :\x8x
  • سلاسل أخرى:\x9x
  • طول وتكاليف إضافية اختيارية
\xbxطول ومساحة إضافية اختيارية. الطول بالوحدات الثمانية.
  • الهياكل (الحقول المرقمة):\xdx
  • التعليقات التوضيحية (الحقول المسماة):\xex
حزمة الرسائل\xc0
  • حقيقي:\xc3
  • خطأ شنيع:\xc2
  • بايت واحد "fixnum" (القيم من -32 إلى 127 )
  • أو رمز النوع (بايت واحد) + ترتيب البايتات الكبير (u)int8/16/32/64
رمز النوع (بايت واحد) + IEEE أحادي/مزدوج
  • رمز النوع + حتى 15 بايت
  • أو رمز النوع + الطول كعدد صحيح غير موجب 8/16/32 + بايت؛

التشفير غير محدد [ 19 ]

  • كـ "fixarray" (بادئة أحادية البايت + ما يصل إلى 15 عنصرًا في المصفوفة)
  • أو رمز النوع (بايت واحد) + طول من 2 إلى 4 بايت + عناصر المصفوفة
  • كـ "fixmap" (بادئة أحادية البايت + ما يصل إلى 15 زوجًا من المفتاح والقيمة)
  • أو رمز النوع (بايت واحد) + طول من 2 إلى 4 بايت + أزواج المفتاح والقيمة
Netstrings [ c ]ليس ضمن البروتوكول.ليس ضمن البروتوكول.ليس ضمن البروتوكول.ليس ضمن البروتوكول.مُشفّر الطول كسلسلة ASCII + ":" + البيانات + ','

يُحتسب الطول فقط الأجزاء الثمانية بين ":" و ","

ليس ضمن البروتوكول.ليس ضمن البروتوكول.
ثنائي OGDL
قائمة الخصائص (بصيغة ثنائية)
بروتوكول بافرز
مُشفّر بترميز UTF-8 ، مسبوقًا بطول السلسلة بالبايتات مُشفّرًا بترميز varintقيمة مكررة بنفس الوسم، أو بالنسبة للأعداد الصحيحة المشفرة بصيغة varint فقط، قيم مجمعة بشكل متجاور ومسبوقة بالوسم وطول البايت الإجماليغير متوفر
يبتسم\x21
  • حقيقي:\x23
  • خطأ شنيع:\x22
  • بايت واحد "صغير" (القيم من -16 إلى 15 مشفرة كـ \xc0-\xdf
  • s المشفرة بنمط متعرج varint(1-11 بايت من البيانات)، أوBigInteger
IEEE أحادي/مزدوج،BigDecimalسلاسل نصية "قصيرة" مسبوقة بطولها (حتى 64 بايت)، وسلاسل نصية "طويلة" منتهية بعلامة، ومراجع خلفية (اختيارية).مصفوفات غير متجانسة ذات أطوال عشوائية مع علامة نهايةأزواج مفتاح/قيمة ذات طول عشوائي مع علامة نهاية
تنسيقات تبادل البيانات المهيكلة (SDXF)عدد صحيح موقع بنظام Big-endian مكون من 24 بت أو 32 بتنظام Big-endian IEEE doubleإما ترميز UTF-8 أو ISO 8859-1قائمة بالعناصر ذات المعرف والحجم المتطابقين، مسبوقة برأس مصفوفة بطول int16يمكن أن تحتوي الأجزاء على أجزاء أخرى بعمق عشوائي.
التوفير
  1. يمكن ضغط أي تمثيل قائم على XML، أو إنشاؤه باستخدام EXI - "تنسيق تبادل XML الفعال (EXI) 1.0 (الإصدار الثاني)" .[ 17 ] – وهو معيار ضغط ثنائي "مستند إلى المخطط" (على عكس معيار الضغط الثنائي الذي يتطلب المخطط أو الذي لا يتطلب المخطط) لـ XML.
  2. جميع أنواع Ion الأساسية لها نسخة فارغة، وهي علامة 0xXf. أي علامة تبدأ بـ 0x0X بخلاف 0x0f تحدد حشوًا متجاهلاً.
  3. يعتمد تفسير سلاسل الشبكة كلياً على التطبيق أو المخطط.

انظر أيضاً

مراجع

  1. أباتشي ثريفت
  2. بورمان، كارستن (2018-12-26). "علاقة CBOR مع msgpack" . جيت هاب . تم الاسترجاع في 2023-08-14 .
  3. "التنفيذات" . GitHub .
  4. ^ "HAPI FHIR - واجهة برمجة تطبيقات FHIR مفتوحة المصدر لجافا" . hapifhir.io .
  5. cpython/Lib/pickle.py
  6. "نبذة تاريخية عن الصابون" . www.xml.com .
  7. بن كيكي، أورين؛ إيفانز، كلارك؛ نت، إنجي دوت (1 أكتوبر 2009). "YAML ليست لغة ترميز (YAML) الإصدار 1.2" . الموقع الرسمي لـ YAML . تم الاطلاع عليه بتاريخ 10 فبراير 2012 .
  8. "text_format.h - Protocol Buffers" . مطورو جوجل .
  9. "ربط JSON - بروتوكول Buffers" . مطورو جوجل .
  10. "تنسيق Avro Json" .
  11. "توثيق فئة NSPropertyListSerialization" . www.gnustep.org . مؤرشف من الأصل بتاريخ 19-05-2011 . تم الاطلاع عليه بتاريخ 28-10-2009 .
  12. "أرشيف الوثائق" . developer.apple.com .
  13. أورين بن كيكي؛ كلارك إيفانز؛ برايان إنجرسون (18 يناير 2005). "نوع Null المستقل عن اللغة لـ YAML الإصدار 1.1" . YAML.org . تم الاسترجاع في 12 سبتمبر 2009 .
  14. 1 2 أورين بن كيكي؛ كلارك إيفانز؛ برايان إنجرسون (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. ترميز أيون الثنائي
  19. "MessagePack مكتبة فعّالة للغاية لتسلسل الكائنات. إنها تشبه JSON، لكنها سريعة وصغيرة الحجم جدًا: msgpack/msgpack" . 2 أبريل 2019 - عبر GitHub.