משרד ה W3C הישראליקשה להחליט מאיפה להתחיל בהסבר על XML. תקציר זה בעשר נקודות הנו נסיון לתאר את העקרונות הבסיסיים כדי לאפשר הצצה למי שאינו מכיר ולקבל מושג כללי. אם הינך מתכוון להציג את XML, מה דעתך לנסות ולהתחיל אותה עם עשר הנקודות.
מבנה נתונים כולל בתוכו גליונות, ספרי כתובות, ערכי
תצורה (configuration) , פעולות פיננסיות וסירטוטים טכניים. XML
הנו מסגרת חוקים (ניתן גם לתאר זאת כקווים מנחים או מוסכמות) כדי לעצב
פורמט טקסט המאפשר לך להבנות את הנתונים (מלשון מבנה נתונים). XML
אינו שפת תיכנות, ואינך צריך להיות מתכנת כדי להשתמש בו או ללמוד
אותו. XML מקל עבור המחשב את עיבוד הנתונים, קריאת הנתונים ומבטיח
שמבנה הנתונים אינו מעורפל. XML נמנע מהמלכודות הרגילות הטמונות
בעיצוב שפה: XML ניתן להרחבה, לא תלוי בפלטפורמה ותומך בבינאום (בינלאומי)
ולמיקום (מקומי). XML הנו ממומש בסטנדרטים של Unicode.
גם פה תמצאו תגיות (tags) הגדרות בין "<" ו- ">"
ותכוניות (attributes). בעוד HTML מגדיר כל תגית וערך במשמעות ספציפית
ולעיתים תכופות מגדיר כיצד יוצג הטקסט שביניהם בדפדפן, XML משתמש
בתגיות רק כדי לתחום פיסות מידע, ומותיר את הפירוש של המידע
לתוכנה שקוראת אותו. במילים אחרות, אם תראה <P> בקובץ XML , אל
תניח שמדובר בפיסקה. לפי ההקשר זה יכול לתאר מחיר, פרמטר או כל דבר
אחר.
תוכניות שמייצרות גיליונות, ספרי כתובות ומבני נתונים
אחרים לעיתים קרובות שומרות את הנתונים על הדיסק, בפורמט בינארי או
בפורמט טקסט. אחד מיתרונותיו של פורמט טקסט הוא האפשרות לבחון את
הנתונים ללא צורך בתוכנה שייצרה אותם; בקיצור אתה יכול לקרוא את הקובץ
בפורמט טקסט בעורך טקסט המועדף עליך. פורמט טקסט מאפשר למפתחי
התוכנות/אתרים לטפל בבגים ביתר קלות. כמו HTML, קבצי XML הינם קבצי
טקסט שאנשים אינם אמורים לקרוא, אלא כאשר ישנו צורך. בשונה מ- HTML,
החוקים לקבצי XML הינם נוקשים. השמטת תגית (tag), או תכוניות
(attribute) ללא גרשיים הופך את קובץ ה- XML ללא שמיש, בעוד שב- HTML
שגיאות מן הסוג הזה "מותרות". במפרט הרשמי של XML נאסר על יישומי
לנסות לנחש ולהשלים קובץ XML שגוי; אם הקובץ שגוי, על היישום לעצור
ולדווח שגיאה.
XML הנו פורמט טקסט ומשתמש בתגיות התוחמות את המידע ולכן
קבצי XML כמעט תמיד גדולים יותר בהשוואה לפורמט בינארי. זאת הייתה
בחירה מודעת של מעצבי ה- XML היתרונות בפורמט טקסט ברורים (ראה נקודה
3), ועל החסרונות ניתן לפצות ברמה אחרת. זיכרון לדיסק זול כיום,
ותוכנות דחיסה כגון zip ו- gzip היכולות לדחוס
את הקבצים בצורה טובה ומהירה. בנוסף פרוטוקולי תקשורת כגון פרוטוקולי
מודם ו- HTTP/1.1, פרוטוקולי הליבה של הרשת, מסוגלים לדחוס מידע בזמן
אמת, תוך חסכון ברוחב פס.
XML1.0 הנו
מפרט שמגדיר מהם "תגיות" ו"תכוניות". מעבר לכך "משפחת XML" הינה מערך
מודולים ההולך ומתרחב המציעים שירותים שמושיים כדי לבצע משימות חשובות
ותכופות. Xlink מתאר כיצד
להוסיף קישורים לקובץ XML. XPointer ו- Xfragments הינם
מודולים בפיתוח כדי לאפשר מצביעים בתוך מסמך XML. ה- XPointer הנו
מעין URL, אך במקום להצביע על מסמכים ברשת, הוא מצביע על פיסת מידע
בתוך הקובץ XML. CSS,
שפה לעיצוב גליונות, זמינה ב- XML בדומה ל- HTML. XSL הינה שפה מתקדמת לעיצוב גליונות.
השפה מבוססת על XSLT, שפה
המשמשת לאירגון, הוספה ומחיקה של תגיות ותכוניות. ה- DOM מערך פונקציות
המשמשות למניפולציות בקבצי XML (ו- HTML) ע"י תיכנות. פורמט הגדרות
מבנה XML Schema1 ו-
2. ישנם עוד מודולים
וכלים מוכנים או בפיתוח. שים לב לדף
הדיווחים הטכניים של W3C.
פיתוחו החל כבר בשנת 1996 וקיבל המלצת W3C בפברואר 1998,
מה שעלול לעורר חשד כי זוהי טכנולוגיה בחיתוליה. אולם הטכנולוגיה אינה
כל כך חדישה. לפני XML היה SGML, שפותח בתחילת שנות השמונים, בעל תו
תקן ISO משנת 1986 וזכה לשימוש נרחב בפרויקטים של דוקומנטציה. פיתוחו
של HTML החל בשנת 1990. מתכנני XML פשוט לקחו את המיטב שב- SGML
ובשילוב הנסיון ב- HTML ייצרו משהו שחזק כמו SGML אך פשוט יותר
לשימוש. יש לציין בעוד ש- SGML משמש בעיקר לתיעוד וכמעט שאינו
בשימוש לסוגי מידע אחרים הרי ש- XML משמש בדיוק להפך.
ישנו יישום XML חשוב והוא עיצוב מסמך: XHTML של W3C,
היורש של HTML. ל- XHTML מכיל אלמנטים רבים מ- HTML. אך בשונה מסמך
"מבוסס XML" יורש את התחביר של XML כאשר מצד אחד הוא מגביל אותו באופן
מסוים (לדוגמא הוא מאפשר "<p>", אך אינו מאפשר
"<r>") ומצד שני מוסיף משמעויות (משמעות
"<p>" הינה פיסקה ואינו ניתן לשינוי).
XML מאפשר לך להגדיר פורמט חדש למסמך ע"י שילוב ושימוש
בפורמטים אחרים. מאחר ושני פורמטים שפותחו באופן בלתי תלוי עלולים
להכיל אלמנטים או תכונות בעלי אותו שם, יש לשים לב כאשר משלבים בין
הפורמטים השונים. כדי למנוע בילבול בשמות XML מספק אמצעים לשמות XSL .(namespace) ו-
RDF משמשים דוגמא טובה לפורמטים
מבוססי XML המשתמשים ב- namespace. XML Schema תוכנן כך שיאפשר לשלב
שתי סכמות כדי ליצור סכמה שלישית שתעמוד בבסיס מסמך משולב.
מסגרת תיאור המקורות (Resource Description Framework-
RDF) הינה פורמט טקסט XML שתומך בתאור מקורות ויישומים עם מידע רב
כגון אוספי מוזיקה, אוספי תמונות ורשימות ביבליוגרפיות. RDF משלב
יישומים וסוכנים לתוך רשת סמנטית אחת. ניתן להמשיל זאת לבני האדם
הזקוקים להסכמה בדבר משמעות המילים שבהן הם משתמשים כדי לתקשר, כך
המחשבים זקוקים למנגנונים כדי להסכים על המשמעויות של מושגים על מנת
לתקשר באופן יעיל. הגדרות פורמליות של מושגים בתחום מסוים נקרא
אונטולוגיה. האונטולוגיות מהוות חלק הכרחי מהרשת הסמנטית. RDF,
אונטולוגיות וייצוג המשמעות כך שמחשבים יוכלו לעזור לבני האדם לבצע
משימות, הינם כולם נושאים בפעילות של הרשת הסמנטית.
בבחירת XML כבסיס לפרויקט, אתה מרוויח גישה לקהילה הולכת
וגדלה של כלים ומהנדסים עם נסיון בטכנולוגיה. להעדיף XML זה קצת כמו
לבחור ב- SQL עבור מאגרי נתונים: אתה עדיין צריך לבנות את מאגר המידע
שלך, את התוכנות שלך, את הפרוצדורות שמתפעלות את כל המערך הזה וישנם
כלים רבים בהישג יד כמו גם אנשים רבים היכולים לעזור לך. היות ו- XML
הוא לשימוש חופשי אתה יכול לבנות את התוכנה שלך על בסיסו ללא צורך
בלשלם עבור רשיון ואינך תלוי בספק תוכנות אחד. XML אינו תמיד הפיתרון
הטוב ביותר, אך תמיד כדאי לשקול אם להשתמש בו.