מהו קובץ YAML?
קובץ YAML מורכב משפה YAML (YAML Ain’t Markup Language) שהיא שפת סידור נתונים מבוססת Unicode; משמש לקובצי תצורה, הודעות אינטרנט, התמדה של אובייקטים וכו’. YAML משתמש בסיומת yaml עבור הקבצים שלה. התחביר שלו אינו תלוי בשפת תכנות ספציפית. בעיקרון, ה-YAML מיועד לאינטראקציה אנושית ולעבוד היטב עם שפות תכנות מודרניות. תמיכה בסריאליזציה של מבני נתונים מקוריים שרירותיים הגדילה את הקריאות של קבצי YAML, אך היא סיבך מעט את תהליך הניתוח ויצירת הקבצים.
היסטוריה קצרה
YAML הוצע לראשונה בשנת 2001 ופותח על ידי קלארק אוונס, Ingy döt Net, ואורן בן-קיקי. נאמר לראשונה שפירושו של YAML הוא “עוד שפת סימון” כדי לציין את מטרתה כשפת סימון. מאוחר יותר היא הוגדרה מחדש כ"YAML Aint Markup Language" כדי לציין את מטרתה כמוכוונת נתונים.
פורמט קובץ YAML
קובץ YAML מורכב מסוגי הנתונים הבאים
- סקלרים: סקלרים הם ערכים כמו מחרוזות, מספרים שלמים, בוליאנים וכו'.
- רצפים: רצפים הם רשימות כאשר כל פריט מתחיל במקף (-). ניתן גם לקנן רשימות.
- מיפויים: מיפוי נותן את היכולת לרשום מפתחות עם ערכים.
תחביר
- רווח לבן: הזחה של רווח לבן משמש לציון קינון ומבנה כללי.
שם: ג'ון סמית'
איש קשר:
בית: 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 Ain't Markup Language)
היא שפת הסדרת נתונים
נתונים: ?
YAML (YAML Ain't Markup Language)
היא שפת הסדרת נתונים
- מסמכים מרובים: מסמכים מרובים מופרדים על ידי שלושה מקפים (—) בזרם אחד. מקפים מציינים את תחילת המסמך. מקפים משמשים גם להפרדת הנחיות מתוכן מסמך. סוף המסמך מצוין בשלוש נקודות (…).
---
מסמך 1
---
מסמך 2
...
- סוג: כדי לציין את סוג הערך, משתמשים בסימני קריאה כפולים (!!).
א: !!צף 123
b: !!str 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 |
---|---|
תהליך מורכב וגוזל זמן של ניתוח נתונים בסידרה | נתח נתונים בסידרה של JSON במהירות ובקלות עם העיצוב הפשוט יותר שלו |
פחות תמיכה בקהילה | תמיכה קהילתית גדולה יותר ופופולריות |
תומך בתגובות | לא תומך בתגובות |
יכולת להשתמש בהפניה של אובייקטי נתונים אחרים | בלתי אפשרי לעשות סדרה של מבנים מורכבים עם הפניות לאובייקט |
היררכיה מסומנת על ידי שימוש בתווי רווח כפול. תווי Tab אינם מותרים | אובייקטים ומערכים מסומנים בסוגריים ובסוגריים. |
מירכאות מחרוזות הן אופציונליות אך הן תומכות במירכאות בודדות וכפולות. | מחרוזות חייבות להיות במירכאות כפולות. |
צומת שורש יכול להיות כל אחד מסוגי הנתונים החוקיים | צומת השורש חייב להיות מערך או אובייקט. |