ما هو ملف YAML؟
** ملف YAML ** يتكون من لغة YAML (YAML ليست لغة ترميزية) وهي لغة تسلسل بيانات تعتمد على Unicode ؛ تستخدم لملفات التكوين ، ورسائل الإنترنت ، واستمرار الكائن ، وما إلى ذلك. تستخدم YAML الامتداد .yaml لملفاتها. بناء الجملة الخاص به مستقل عن لغة برمجة معينة. في الأساس ، تم تصميم YAML للتفاعل البشري والعمل بشكل جيد مع لغات البرمجة الحديثة. أدى دعم تسلسل هياكل البيانات الأصلية التعسفية إلى زيادة قابلية قراءة ملفات YAML ، ولكنه جعل عملية التحليل وإنشاء الملفات معقدة بعض الشيء.
نبذة تاريخية
تم اقتراح YAML لأول مرة في عام 2001 وتم تطويره بواسطة Clark Evans و Ingy döt Net و Oren Ben-Kiki. قيل لأول مرة أن YAML تعني “لغة ترميزية أخرى” للإشارة إلى الغرض منها كلغة ترميز. تم تغيير الغرض منها لاحقًا باسم “YAML Aint Markup Language” للإشارة إلى الغرض منها باعتبارها موجهة للبيانات.
تنسيق ملف YAML
يتكون ملف YAML من أنواع البيانات التالية
- ** Scalars **: المقاييس عبارة عن قيم مثل سلاسل ، وأعداد صحيحة ، وقيم منطقية ، وما إلى ذلك.
- ** التسلسلات **: التسلسلات عبارة عن قوائم يبدأ كل عنصر بواصلة (-). يمكن أيضا أن تكون القوائم متداخلة.
- ** التعيينات **: يمنح التعيين القدرة على سرد المفاتيح بالقيم.
بناء الجملة
- ** المسافة البيضاء **: تُستخدم المسافة البادئة للإشارة إلى التداخل والبنية العامة.
“يامل الاسم: جون سميث اتصل: المنزل: 1012355532 المكتب: 5002586256 تبوك: الشارع: | 123 زقاق تورنادو جناح 16 المدينة: شرق سنترفيل الدولة: كانساس "”
- ** التعليقات **: تُكتب التعليقات بدايةً بالرمز “#”.
“يامل
هذا تعليق YAML
"”
- ** القوائم **: تستخدم الواصلة (-) للإشارة إلى أعضاء القائمة مع كل عضو في سطر منفصل. يمكن أيضًا وضع أعضاء القائمة بين أقواس مربعة ([…]) مع فصل الأعضاء بفاصلات (،).
“يامل
- A
- B
- C "”
“يامل [أ ، ب ، ج] "”
- ** مصفوفة ترابطية **: مصفوفة ترابطية محاطة بأقواس معقوفة ({…}). المفاتيح والقيم مفصولة بنقطتين (:) ويتم الفصل بين كل زوج بفاصلة (،).
“يامل {name: John Smith, age: 20} "”
- ** سلاسل **: يمكن كتابة السلسلة مع أو بدون علامات الاقتباس المزدوجة (") أو علامات الاقتباس المفردة (").
“يامل سلسلة العينة “سلسلة عينة” “سلسلة عينة” "”
- ** محتوى الكتلة العددية **: يمكن كتابة المحتوى القياسي في تدوين الكتلة باستخدام ما يلي:
- |: All live breaks are significant.
- >: Each line break is folded to space. It removes the leading whitespace for each line.
“يامل البيانات: | YAML (YAML ليست لغة ترميزية) هي لغة تسلسل البيانات "”
“يامل بيانات: ؟ YAML (YAML ليس لغة ترميزية) هي لغة تسلسل البيانات "”
- ** مستندات متعددة **: مستندات متعددة مفصولة بثلاث واصلات (—) في دفق واحد. تشير الواصلات إلى بداية المستند. تُستخدم الواصلات أيضًا لفصل التوجيهات عن محتوى المستند. تتم الإشارة إلى نهاية المستند بثلاث نقاط (…).
“يامل
المستند 1
المستند 2 … "”
- ** النوع **: لتحديد نوع القيمة ، يتم استخدام علامات التعجب المزدوجة (!!).
“يامل أ: !! تعويم 123 ب: !! شارع 123 "”
- ** العلامة **: لتعيين علامة إلى ملاحظة ، يتم استخدام علامة العطف (&) وللإشارة إلى تلك العقدة ، يتم استخدام علامة النجمة (*).
“يامل الاسم: جون سميث فاتورة: & id01 الشارع: | 123 زقاق تورنادو جناح 16 المدينة: شرق سنترفيل الدولة: كانساس
الشحن إلى: * id01 "”
- ** التوجيهات **: وثائق YAML يمكن أن تسبقها توجيهات في التدفق. تبدأ التوجيهات بعلامة النسبة المئوية (٪) متبوعة بالاسم ثم يتم فصل المعلمات بمسافات.
“يامل ٪ YAML 1.2
محتوى المستند "”
مثال على ملف YAML
هنا يمكنك مشاهدة ** مثال ملف docker yaml ** أدناه:
topology:
database_node_name: docker_controller
docker_controller_node_name: docker_controller
self_service_portal_node_name: docker_controller
kvm_compute_node_names: kvm_compute1
docker_compute_node_names: docker_compute1
YAML مقابل JSON
في الأساس ، تم تطوير كل من JSON و YAML لتوفير تنسيق تبادل بيانات يمكن قراءته بواسطة الإنسان. يتم تحقيق YAML كمجموعة شاملة من تنسيق JSON. هذا يعني أنه يمكننا تحليل JSON باستخدام محلل YAML. على الرغم من أن التطبيق العملي لهذه النظرية صعب بعض الشيء. لذلك ، بعض الاختلافات الأساسية بين YAML و JSON مذكورة أدناه:
YAML | جسون |
---|---|
عملية معقدة وتستغرق وقتًا طويلاً لتحليل البيانات المتسلسلة | تحليل بيانات JSON المتسلسلة بسرعة وسهولة باستخدام تصميمها الأبسط |
دعم أقل للمجتمع | دعم وشعبية أكبر من المجتمع |
يدعم التعليقات | لا يدعم التعليقات |
القدرة على استخدام مرجع كائنات البيانات الأخرى | من المستحيل إجراء تسلسل للبنى المعقدة باستخدام مراجع الكائنات |
يتم الإشارة إلى التسلسل الهرمي باستخدام أحرف مسافات مزدوجة. أحرف الجدولة غير مسموح بها | يتم الإشارة إلى الكائنات والصفائف بين أقواس وأقواس. |
علامات الاقتباس المتسلسلة اختيارية لكنها تدعم علامات الاقتباس المفردة والمزدوجة. | يجب أن تكون السلاسل بين علامتي اقتباس مزدوجتين. |
عودة إلى الأعلى إرسال ملاحظات السبب يمكن أن تكون عقدة الجذر أيًا من أنواع البيانات الصالحة | يجب أن تكون العقدة الجذر إما صفيفًا أو كائنًا. |