יום שישי, 15 באוגוסט 2008

XML - מה זה?!

XML חי בקרבנו המון זמן, בלי שאנחנו באמת מכירים או מודעים אליו, והמון ממה שאנו עושים נכתב ב-XML, כאשר אין אנו מודעים לכך, ובטח שלא למה זה XML ומאיפה הוא צץ..
ובכל זאת, טוב להכיר!

מה זה XML
אני הולך לנפץ לרבים את הידיעה שלהם כאשר אני מגדיר כי XML זו אינה שפה (ובטח שלא שפת תגיות), ואין להתייחס אליה באופן הזה.
XML (ראשי תיבות של eXtensible Markup Language) זה אוסף של חוקים, הנקבעו על ידי W3C (כנראה שלא עזבנו אותם למרות הכל).

ב-XML שומרים את המידע והתיאור שלו בצורה היררכית, כאשר הכל מוצג בצורת טקסט.

XML מול HTML, מה כדאי?
למי שטועה, HTML נועד לבניית אתרים ונבנה בדומה לתקני ה-XML (אך לא בדיוק), ולכן קיימת עדיפות לשימוש בו על פני XML.
לעומת זאת מי שמכיר את XML מכיר את המהירות והיעילות, ומכאן נוסד XHTML, כתיבת HTML על פי תקני ה-XML (אוסף התקנים המכונים XML), דבר שלוקח את התכונות הטובות בין השפות ומשלב אותן (ועם זאת יוצר כאב ראש לא קטן).

ב-XML לא הייתי משתמש לבניית אתרים, שכן זאת אינה מטרתו, אבל לשמירת נתונים זה בהחלט יעיל ואפילו מומלץ, כאשר הכל נשמר בהררכיה מסויימת ונוחה במיוחדת.

שימוש ב-XML ניתן לראות גם בשפות ובטכנולוגיות הנלוות, שכן החוקים ש-XML הגדיר יצרו מספר רק של שפות, שווה הצצה.

מה זה החתול הזה DTD?
ראשית, לא מדובר בחתול, ומסמך ה-DTD (ראשי תיבות של Document Type Definition, בעברית: הגדרת סוג מסמך) מגדיר את ההררכיה בדף (לדוגמא, הוא יכול להגדיר ששדה input לא יכול להיות ישירות ב-form, והוא נכנס תחת אלמנט כמו p, אלמנט block) הבנוי בעקרונות ה-XML (בכוונה נזהרתי במילים, אם כי אין לי דרך טובה להגיד את זה).
במסמך ה-DTD ניתן לקבוע היכן כל אלמנט יכול לבוא, אילו אלמנטים הם חובה, מתי הם באים וכדומה (אם תחשבו על זה, בעצם ככה הגדירו לנו את סוגי ה-XHTML השונים).


XPath - ה-SQL של תקני ה-XML
רבים מאיתנו מכירים את SQL, שפה חמודה לביצוע שאילתות במסדי נתונים התומכים בה, ואכן היא משרתת את מטרתה (אם כי לא מזמן יצא לי להתלונן שהיא ממש מוגבלת באפשרויות, ושהרבה פעמים נכנסים איתה ראש בראש).
כעת נכנס XML לתמונה, והוא כבר לא תומך ב-SQL, אז מה עושים? XPath (ראשי תיבות של קיצור של XML Path Language) זו התשובה, והתשובה הזאת מאפשרת לנו לסמן מידע במסמך ה-XML בלי הרבה כאב ראש, אכן היתרון עצום.

יש ל-XPath תחביר פרטי, שמתאים לצרכי ה-XML (לדעתי CSS צריכים להעתיק כמה תכונות), ומאפשר בקלות לסמן בדיוק את רצוננו (יש אפילו פונקציות).
XPath מהווה מרכיב חשוב בהרבה טכנולוגיות נלוות.

הכירו את XSL
אחד מהטכנולוגיות הנספחות ל-XML, כאשר הכתיבה שלו היא דומה באופן מפחיד לכתיבה של XML עצמו, למרות שהמהות שונה.
XSL (מוכר גם כ-XSLT, ראשי תיבות של eXtensible Stylesheet Language Transformations) הוא הדרך של לשכתב מידע XML ל-HTML קריא (ומגניב), כדי שהמחשבים יוכלו להציגו, ואכן למרות ההגדרה המוזרה הזאת, זה מה שנעשה בשטח.
בעזרת XSL ניתן לתרגם מידע ב-XML ישירות ל-HTML ובכך להציג לקורא את אשר אנו חפצים.

יותר מגניב מזה לא יכול להיות... בעצם יכול, כי אנחנו יכולים לטעון XML ו-XSL בזמן אמת ולשלב, גאוני!

RSS - ובעברית רסס
RSS (ראשי תיבות של Really Simple Syndication) מבוסס גם הוא על XML, והוא מציג חוקים ותגיות שנקבעו מראש לייצאו נתונים בצורה קבועה, כאשר שפת התגיות הזאת תפסה והיום בהמון מקומות ניתן לשמור ולצפות ב-RSS של אתר מסויים, שמכיל את התוכן אשר האתר רצה לפרסם.
המטרה העיקרית היא להוציא מידע ללקוחות ולאתרים אחרים בצורה קבועה, ולאפשר ללקוחות לרכז ולנהל תכנים ממספר מקורות (במקום לעבור אתר אתר כמו שהרבה נאלצים לעשות כיום בפועל).

DOM - גם על זה W3C השתלטו
DOM (ראשי תיבות של Document Object Model) הינה הדרך לגשת לעצמים בדפים מבוססי XML (כולל HTML) ולהשפיע על אלמנטים ללא תלות ובזמן אמת.
בעקבות שימוש של זה בדפדפנים שונים בעזרת JS כדי להשפיע על דפי ה-HTML, החליטו W3C להציג תקנים קבועים.

על XML ומשפחתה
XML זו לא שפה, אבל נולדו הרבה שפות וטנכולוגיות בעקבותיה, ולדעתי תקני ה-XML מהווים צעד חשוב באינטרנט, וקידמו רבות את הנושא.
XML תומך בטכנולוגיות צד לקוח כמו CSS, המאפשר לנו לעצב את הדף כרצוננו (הולך מעולה עם XSL), ו-JS שמאפשר לנו להחיות את האתר בזמן אמת, שני אלו בלבד מהווים היתרון עצום ל-XML, אבל כמו שאמרתי, XML כשם שהוא אינו מיועד לבניית אתרים (גם אם ניקח לדעתי את השמות של HTML ונכניס אותם בהתאמה ל-XML, זה עדין לא המטרה שלו).

מי שינסה לקדם מסמך XML יתקשה, שכן לרובוטים אין דרך לדעת את חשיבות התג, ומבחינתם הכל תוכן רגיל (עוד סיבה למה להשתמש ב-HTML או ב-XHTML).

לסיכום
אני מקווה מאוד שנתתי מבט כללי על XML, על משפחתה העיקרית (יש המון שפות שבחרתי לא להזכיר), וקצת מידע שיעזור לכם לשפוט בנוגע למקום הרצוי ל-XML.

המשך גלישה מהנה.

2 תגובות:

אנונימי אמר/ה...

סחטיין סחטיין סחטיין!
ושוב, לא שאני לא מכיר את הביטויים אבל אתה פשוט עושה סדר בהם.

כל הכבוד!

אנונימי אמר/ה...

הרבה אני לא מבינה בזה.
קבלתי מסמך כנראה כ xml כשהסיומת שלו היא signed
איך הופכים את זה לשפה ולא שורות של אותיות ומספרים?
האם אני צריכה להתקין משהו?
תודה,ושבוע טוב