משרד ה-W3C הישראליקשה להחליט מאיפה להתחיל בהסבר על XML. תקציר זה בעשר נקודות הנו ניסיון לתאר את העקרונות הבסיסיים, כדי לאפשר הצצה למי שאינו מכיר ולקבל מושג כללי. אם הינך מתכוון להציג את שפת ה-XML, מה דעתך לנסות ולהתחיל אותה עם עשר הנקודות.
מבנה נתונים כולל בתוכו גליונות, ספרי כתובות, ערכי
תצורה (configuration) , פעולות פיננסיות וסרטוטים טכניים. 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 אינו תמיד הפיתרון
הטוב ביותר, אך תמיד כדאי לשקול אם להשתמש בו.