مقارنة تنسيقات تسلسل البيانات
هذه مقارنة بين صيغ تسلسل البيانات ، وهي طرق مختلفة لتحويل الكائنات المعقدة إلى سلاسل من البتات . ولا تشمل لغات الترميز المستخدمة حصريًا كصيغ ملفات مستندات .
ملخص
| اسم | المُنشئ والمُحافظ | مرتكز على | هل هو معياري؟ | مواصفة | ثنائي ؟ | هل يمكن قراءته من قبل البشر ؟ | يدعم المراجع ؟ هـ | مخطط 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 أو حسب الطلب عبر ECN | XER أو JER أو GSER أو حسب الطلب عبر ECN | نعم f | مدمج | غير متوفر | موارد تعليمية مفتوحة |
| بنكود | برام كوهين (المبتكر) شركة BitTorrent (الجهة المسؤولة عن الصيانة) | غير متوفر | بحكم الأمر الواقع كـ BEP | جزء من مواصفات بروتوكول BitTorrent | باستثناء الأرقام والفواصل، كونها ASCII | لا | لا | لا | لا | لا |
| بيسون | MongoDB | JSON | لا | مواصفات BSON | نعم | لا | لا | لا | لا | لا |
| كابتن بروتو | كينتون فاردا | غير متوفر | لا | مواصفات ترميز كابتن بروتو | نعم | جزئي ح | لا | نعم | لا | نعم |
| سي بي أو آر | كارستن بورمان، بي. هوفمان | MessagePack [ 2 ] | نعم | RFC 8949 | نعم | لا | نعم، من خلال وضع العلامات | CDDL | FIDO2 | لا |
| القيم المفصولة بفواصل (CSV) | مؤلف طلب التعليقات: ياكوف شافرانوفيتش | غير متوفر | عدد لا يحصى من الصيغ غير الرسمية | RFC 4180 (من بين أمور أخرى) | لا | نعم | لا | لا | لا | لا |
| تمثيل البيانات المشترك (CDR) | مجموعة إدارة الكائنات | غير متوفر | نعم | البروتوكول العام بين المنظمات | نعم | لا | نعم | نعم | أدا، سي، سي++، جافا، كوبول، ليسب، بايثون، روبي، سمول توك | غير متوفر |
| بروتوكول رسائل D-Bus | freedesktop.org | غير متوفر | نعم | مواصفات ناقل البيانات D-Bus | نعم | لا | لا | جزئي (أوتار التوقيع) | نعم | غير متوفر |
| تبادل XML الفعال (EXI) | اتحاد شبكة الويب العالمية (W3C) | XML ، XML الفعال | نعم | تنسيق تبادل XML الفعال (EXI) 1.0 | نعم | XML | XPointer ، XPath | مخطط XML | DOM ، 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 | مخطط XML | DOM ، 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 ، JSONPath )، JSON-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 و XML | DOM ، 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 NG | DOM ، 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 ؟ | واجهات برمجة التطبيقات القياسية | يدعم عمليات النسخ الصفري |
- ^ التنسيق الافتراضي الحالي هو ثنائي.
- ^ التنسيق "الكلاسيكي" هو نص عادي، كما يتم دعم تنسيق XML أيضًا.
- ^ ممكن نظرياً بسبب التجريد، ولكن لم يتم تضمين أي تطبيق.
- ^ التنسيق الأساسي هو ثنائي، ولكن تتوفر أيضًا تنسيقات نصية وJSON. [ 8 ] [ 9 ]
- ^ يعني أن الأدوات/المكتبات العامة تعرف كيفية ترميز وفك ترميز وفك مرجعية البيانات في نفس المستند. قد تتطلب الأداةIDL، ولكن ليس أكثر. يستثنى من ذلك تقنيات الإشارة المخصصة وغير القياسية.
- يتضمن معيار ASN.1 ثلاثة أقسام : X.681 (نظام كائنات المعلومات)، وX.682 (القيود)، وX.683 (المعاملات)، والتي تتيح تحديدًا دقيقًا للأنواع المفتوحة، حيث يمكن تحديد أنواع القيم بواسطة الأعداد الصحيحة، أو معرّفات الكائنات (OIDs)، وما إلى ذلك. تُعدّ معرّفات الكائنات (OIDs) تنسيقًا قياسيًا للمعرّفات الفريدة عالميًا، بالإضافة إلى كونها تدوينًا قياسيًا ("مرجع مطلق") للإشارة إلى أحد مكونات القيمة. على سبيل المثال، يستخدم معيار PKIX هذا التدوين في RFC 5912. وباستخدام هذا التدوين (القيود المفروضة على الأنواع ذات المعاملات باستخدام مجموعات كائنات المعلومات)، تستطيع أدوات/مكتبات ASN.1 العامة ترميز/فك ترميز/حلّ المراجع داخل المستند تلقائيًا.
- ^ التنسيق الأساسي ثنائي، ويتوفر مُشفِّر JSON. [ 10 ]
- ^ التنسيق الأساسي هو ثنائي، ولكن يتوفر أيضًا تنسيق نصي.
مقارنة بناء الجملة للتنسيقات القابلة للقراءة البشرية
| شكل | باطل | صحيح منطقي | خطأ منطقي | عدد صحيح | الفاصلة العائمة | خيط | المصفوفة | مصفوفة ترابطية / كائن |
|---|---|---|---|---|---|---|---|---|
| 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 b | nullأ (أو عنصر فارغ في الصف) أ | 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 |
| edn | nil | true | false | 685230-685230 | 6.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]} |
| أيون |
| true | false | 685230-6852300xA74AE0b111010010101110 | 6.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,,,,أ |
| JSON | null | true | false | 685230-685230 | 6.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 "من الألف إلى الياء"
| 42 حقيقي "من الألف إلى الياء" 1 2 3 42 حقيقي "من الألف إلى الياء" (1، 2، 3) |
| OpenDDL | ref {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}} } |
| تنسيق التسلسل PHP | N; | 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> |
| بروتوكول بافرز | غير متوفر | true | false | 685230-685230 | 20.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 ] : "إلخ" [ حقل_الامتداد_الذي_هو_تعداد ] : قيمة_مُعدّدة |
| تعبيرات S | NILnil | T#tوtrue | NIL#fوfalse | 685230 | 6.8523015e+5 | abc"abc"#616263#3:abc{MzphYmM=}|YWJj| | (T NIL -42.1e7 "A to Z") | ((42 T) ("A to Z" (1 2 3))) |
| TOML | غير متوفر | true | false | 685230+685_230-6852300x_0A_74_AE0b1010_0111_0100_1010_1110 | 6.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 />أ | true | false | 685230 | 6.8523015e+5 | A 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> |
- ^ عادةً ما تُفكّكربط بيانات XMLعلى أنها قيم فارغة (NULL). يظهر هنا ترميز آخر محتمل؛مخطط XMLترميزًا لهذا النوع من البيانات.
- ^ لا تتعامل مواصفات RFC CSV إلا مع المحددات والأسطر الجديدة وأحرف الاقتباس؛ فهي لا تتعامل بشكل مباشر مع تسلسلهياكل بيانات.
- ^ لا تتعامل مواصفاتnetstringsإلا معسلاسل البايت؛ أي شيء آخر يقع خارج نطاق المواصفات.
- سيقوم PHP بفك تسلسل أي عدد عشري بشكل صحيح، ولكنه سيقوم بتسلسله إلى امتداده العشري الكامل. على سبيل المثال، سيتم تسلسل 3.14 إلى3.140 000 000 000 000 124 344 978 758 017 532 527 446 746 826 171 875 .
- توفر أدواتربط بيانات XML وأدوات تسلسل SOAPتسلسلًا آمنًا لأنواعالبيانات لهياكل بياناتإلى XML. يُعرض هنا قيم XML التي يمكن وضعها في عناصر وسمات XML.
- ^ هذا التركيب النحوي غير متوافق مع مسودة الإنترنت، ولكنه يستخدم بواسطة بعض لهجات لغةليسب.
مقارنة التنسيقات الثنائية
| شكل | باطل | القيم المنطقية | عدد صحيح | الفاصلة العائمة | خيط | المصفوفة | مصفوفة ترابطية / كائن |
|---|---|---|---|---|---|---|---|
| ASN.1 ( ترميز BER أو PER أو OER ) | نوع NULL | منطقي :
| عدد صحيح :
| حقيقي :
| أنواع صالحة متعددة ( 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(بايت واحد) |
(بايت واحد) |
|
|
|
|
|
| تبادل XML الفعال (EXI) [ أ ] (تنسيق القيم المعجمية غير المحفوظة) | لا يُسمح باستخدام xsi:nil في السياق الثنائي. | يتم تفسير عدد صحيح مكون من 1-2 بت على أنه قيمة منطقية (boolean). | إشارة منطقية، بالإضافة إلى وحدات ثمانية بتات بطول عشوائي (7 بتات)، يتم تحليلها حتى تصبح البتة الأكثر أهمية صفرًا، بنظام الترتيب الصغير (little-endian). يمكن للمخطط تعيين نقطة الصفر إلى أي رقم عشوائي. يتجاهل Unsigned علامة boolean. |
| يُشار إلى الطول باستخدام ترميز Unicode للأعداد الصحيحة. قد تمثل الأعداد الصحيحة تعدادات أو مدخلات جداول السلاسل النصية بدلاً من ذلك. | مجموعة من العناصر ذات طول محدد مسبقًا. | ليس ضمن البروتوكول. |
| مخازن مسطحة | تم ترميزها على أنها غياب الحقل في الكائن الأصل |
(بايت واحد) | نظام العد الصغير (Little-endian ) مع مكمل ثنائي، موقّع وغير موقّع، 8/16/32/64 بت | مُشفّر بنظام UTF-8 ، مسبوقًا بعدد صحيح 32 بت يمثل طول السلسلة بالبايتات | المتجهات من أي نوع آخر، مسبوقة بعدد صحيح مكون من 32 بت يمثل عدد العناصر | الجداول (أنواع محددة في المخطط) أو المتجهات المصنفة حسب المفتاح (الخرائط / القواميس) | |
| أيون [ 18 ] | \x0f[ ب ] |
|
|
|
| \xbxطول ومساحة إضافية اختيارية. الطول بالوحدات الثمانية. |
|
| حزمة الرسائل | \xc0 |
|
| رمز النوع (بايت واحد) + IEEE أحادي/مزدوج |
التشفير غير محدد [ 19 ] |
|
|
| Netstrings [ c ] | ليس ضمن البروتوكول. | ليس ضمن البروتوكول. | ليس ضمن البروتوكول. | ليس ضمن البروتوكول. | مُشفّر الطول كسلسلة ASCII + ":" + البيانات + ',' يُحتسب الطول فقط الأجزاء الثمانية بين ":" و "," | ليس ضمن البروتوكول. | ليس ضمن البروتوكول. |
| ثنائي OGDL | |||||||
| قائمة الخصائص (بصيغة ثنائية) | |||||||
| بروتوكول بافرز |
| مُشفّر بترميز UTF-8 ، مسبوقًا بطول السلسلة بالبايتات مُشفّرًا بترميز varint | قيمة مكررة بنفس الوسم، أو بالنسبة للأعداد الصحيحة المشفرة بصيغة varint فقط، قيم مجمعة بشكل متجاور ومسبوقة بالوسم وطول البايت الإجمالي | غير متوفر | |||
| يبتسم | \x21 |
|
| IEEE أحادي/مزدوج،BigDecimal | سلاسل نصية "قصيرة" مسبوقة بطولها (حتى 64 بايت)، وسلاسل نصية "طويلة" منتهية بعلامة، ومراجع خلفية (اختيارية). | مصفوفات غير متجانسة ذات أطوال عشوائية مع علامة نهاية | أزواج مفتاح/قيمة ذات طول عشوائي مع علامة نهاية |
| تنسيقات تبادل البيانات المهيكلة (SDXF) | عدد صحيح موقع بنظام Big-endian مكون من 24 بت أو 32 بت | نظام Big-endian IEEE double | إما ترميز UTF-8 أو ISO 8859-1 | قائمة بالعناصر ذات المعرف والحجم المتطابقين، مسبوقة برأس مصفوفة بطول int16 | يمكن أن تحتوي الأجزاء على أجزاء أخرى بعمق عشوائي. | ||
| التوفير |
- ↑ يمكن ضغط أي تمثيل قائم على XML، أو إنشاؤه باستخدام EXI - "تنسيق تبادل XML الفعال (EXI) 1.0 (الإصدار الثاني)" .[ 17 ] – وهو معيار ضغط ثنائي "مستند إلى المخطط" (على عكس معيار الضغط الثنائي الذي يتطلب المخطط أو الذي لا يتطلب المخطط) لـ XML.
- ↑ جميع أنواع Ion الأساسية لها نسخة فارغة، وهي علامة 0xXf. أي علامة تبدأ بـ 0x0X بخلاف 0x0f تحدد حشوًا متجاهلاً.
- ↑ يعتمد تفسير سلاسل الشبكة كلياً على التطبيق أو المخطط.
انظر أيضاً
مراجع
- ↑ أباتشي ثريفت
- ↑ بورمان، كارستن (2018-12-26). "علاقة CBOR مع msgpack" . جيت هاب . تم الاسترجاع في 2023-08-14 .
- ↑ "التنفيذات" . GitHub .
- ^ "HAPI FHIR - واجهة برمجة تطبيقات FHIR مفتوحة المصدر لجافا" . hapifhir.io .
- ↑ cpython/Lib/pickle.py
- ↑ "نبذة تاريخية عن الصابون" . www.xml.com .
- ↑ بن كيكي، أورين؛ إيفانز، كلارك؛ نت، إنجي دوت (1 أكتوبر 2009). "YAML ليست لغة ترميز (YAML) الإصدار 1.2" . الموقع الرسمي لـ YAML . تم الاطلاع عليه بتاريخ 10 فبراير 2012 .
- ↑ "text_format.h - Protocol Buffers" . مطورو جوجل .
- ↑ "ربط JSON - بروتوكول Buffers" . مطورو جوجل .
- ↑ "تنسيق Avro Json" .
- ↑ "توثيق فئة NSPropertyListSerialization" . www.gnustep.org . مؤرشف من الأصل بتاريخ 19-05-2011 . تم الاطلاع عليه بتاريخ 28-10-2009 .
- ↑ "أرشيف الوثائق" . developer.apple.com .
- ↑ أورين بن كيكي؛ كلارك إيفانز؛ برايان إنجرسون (18 يناير 2005). "نوع Null المستقل عن اللغة لـ YAML الإصدار 1.1" . YAML.org . تم الاسترجاع في 12 سبتمبر 2009 .
- 1 2 أورين بن كيكي؛ كلارك إيفانز؛ برايان إنجرسون (18 يناير 2005). "نوع منطقي مستقل عن اللغة لـ YAML الإصدار 1.1" . YAML.org . كلارك سي. إيفانز . تم الاسترجاع في 12 سبتمبر 2009 .
- ↑ أورين بن كيكي؛ كلارك إيفانز؛ برايان إنجرسون (11 فبراير 2005). "نوع عدد صحيح مستقل عن اللغة لـ YAML الإصدار 1.1" . YAML.org . كلارك سي. إيفانز . تم الاطلاع عليه بتاريخ 12 سبتمبر 2009 .
- ↑ أورين بن كيكي؛ كلارك إيفانز؛ برايان إنجرسون (18 يناير 2005). "نوع بيانات الفاصلة العائمة المستقل عن اللغة لإصدار YAML 1.1" . YAML.org . كلارك سي. إيفانز . تاريخ الاسترجاع: 12 سبتمبر 2009 .
- ↑ "مبادل فعال وقابل للتوسيع" .
- ↑ ترميز أيون الثنائي
- ↑ "MessagePack مكتبة فعّالة للغاية لتسلسل الكائنات. إنها تشبه JSON، لكنها سريعة وصغيرة الحجم جدًا: msgpack/msgpack" . 2 أبريل 2019 - عبر GitHub.
روابط خارجية
فئات :
- تنسيقات تسلسل البيانات
- المثابرة
- مقارنات الحوسبة
