5.3.1 קישורים
5.3.2 הדרישות מ Xlink
5.3.3 simple link
5.3.4 הגדרת התנהגות הקישור
5.3.5 סמנטיקה של קישורים
5.3.6 קישורים מורחבים
5.3.7 סיכום
ההצלחה הגדולה של האינטרנט מקורה בקישורים . המשתמש נמצא במרחק קליק
אחד מאינסוף משאבים. כאשר XML באה לעולם היא חסרה מרכיב מובנה של קישורים
שהיה חלק מ HTML.
Xlink הוא הנסיון של W3C לתת ל XML את המרכיב הנחוץ הזה. Xlink כוללת
את היתרונות של - XML חוזק וקלות שימוש ובנוסף מרחיב את יכולות הקישור
הרגיל. השילוב של הגמישות של XML ביחד עם החוזק שבקישורים יגרום להתפתחות
האינטרנט ולהגברת העניין בו אף יותר מכיום.
5.3.1 קישורים
לפני שניגש ל -Xlink נעבור בקצרה על קישורים פשוטים ב -HTML עם המושגים
האלה נמשיך הלאה
קישור(link) הוא חיבור בין משאבים . משאב יכול להיות כל דבר אשר נגיש
ברשת. ב-HTML החיבור בין המשאבים הוא ע"י תג a בנוסף למאפיין href אשר
מציין את מיקומו של המשאב.
להלן דוגמה לקישור כזה :
<a href="http://www.cnn.com/infrx.htm">The
cnn site </a>
|
הדפדפן מציג את הקישור ע"י צביעתו בצבע שונה והדגשתו בקו תחתון. כאשר
המשתמש לוחץ על הקישור נטען הדף(המשאב) בדפדפן של המשתמש
הקישור ב- HTML כולל את המשאב ההתחלתי, שהמשתמש לוחץ עליו ואת משאב הסיום
שאליו הוא מופנה. משאב ההתחלה הוא זה שנמצא בתוך התג a, במקרה שלנו זהו
הטקסט the cnn site משאב זה הוא חלק מאלמנט הקישור עצמו ולכן הוא המשאב
המקומי . אתר ה -cnn נמצא במיקום אחר ולכן הוא המשאב המרוחק.
המשאב המרוחק יכול להיות מכל סוג - דף WEB, קובץ הנמצא על שרת קבצים
מרוחק, אפילו מצלמת וידאו
המאפיין href מציין את המשאב ע"י שימוש בציון URI.
דוגמאות לסוגים השונים שמציין מאפיין זה :
- ftp://ftp.what.com/ex/img1.gif- קישור לשרת קבצים
- mailto:bob@hotmail.com- קישור לכתובת דוא"ל
- examples/ex1.html- קישור למשאב אשר נמצא על אותו שרת (כתובת יחסית)
- http://www.cnn.com/one.html#number1- מיקום ספציפי בדף html
5.3.2 הדרישות מ Xlink
בנוסף ליתרונות שיש לקישור רגיל הגדירה W3C את הדרישות הבאות מ -Xlink
:
- עליה לאפשר להוסיף קישור לכל אלמנט של XML
- על הקישורים להכיל מרכיבים המובנים הן ע"י אדם והן ע"י מכונה
- מפתחים צריכים להיות מסוגלים לתת ל אפליקציית Xlink את כל המידע הדרוש
- אודות הקישור
- קישור יכול להיות מופעל לאו דווקא ע"י המשתמש
- קישור יכול להכיל יותר משני משאבים
- משאבים משני צידי הקישור יכולים להיות בעלי התנהגות שונה
5.3.3 simple link
סוג הקישור האקויולנטי לקישור ב- HTML הוא הקישור הפשוט.
דוגמה :
<go xlink:type="simple" xlink:href
=" http://www.cnn.com/index.html" >The cnn site </go>
|
כאן האלמנט הוא go.
הקישור הפשוט מזוהה ע"י הסוג simple
xlink:href
מקביל ל href בקישור הרגיל
דוגמה להגדרה של קישור פשוט במסמך DTD
<!ELEMENT simple_link ANY>
<!ATTLIST simple_link
xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
xlink:type CDATA #FIXED "simple"
xlink:href CDATA #REQUIRED>
|
מסמך זה מתחיל בהצהרה על האלמנט שישמש כקישור ב - DTD , במקרה שלנו simple_link
לאחר מכן מגדירים שזהו אלמנט של Xlink אח"כ המאפיין xlink:type מגדיר
את הסוד של הקישור כקישור פשוט. לבסוף מוגדר המאפיין href כ -REQUIRED
השימוש בקישור הפשוט הוא כמו שימוש בכל אלמנט XML אחר. מה שמבדיל הוא
היכולת של אפליקציית Xlink לעבד את הקישורים.
דוגמה לשימוש באלמנט הקישור
<?xml version ="1.0"?>
<simple_link
xmlns:xlink="http://www3.org/1999/xlink"
xlink:type="simple"
xlink:href="http://www.cnn.com/index.html"
the cnn site
</simple_link>
|
ע"י שימוש ב- DTD שהגדרנו קודם ניתן להשתמש בקישור כך
<?xml version="1.0"?>
<!DOCTYPE simple_link SYSTEM "simple_link.dtd">
<simple_link xlink:href="http://www,cnn.com/index.html">
the cnn site
</simple_link>
|
5.3.4 הגדרת התנהגות
הקישור
התנהגות הקישור אחרי שהוא מופעל נקבעת ע"י שני מאפיינים : show ו -actuate
מאפיינים אלה מגדירים את ההתנהגות של הקישור , לא את המכניזם שיוצר התנהגות
זו. מה שזה מאפשר הוא חופש פעולה לחברות תוכנה לבחור בעצמם את המימוש לפי
הפלטפורמה המוצעת אם זה דפדפן או רובוט חיפוש.
Show ו-actuate הם אופציונליים , כלומר אין חובה לכלול אותם
Show
מאפיין זה מציין מה קורה כאשר אנו עוברים למשאב המקושר
ניתן לתת חמישה ערכים:
embed -המשאב צריך להיכנס בדיוק בנקודה שבה היתה ההפניה אליו. דוגמה
טובה היא באמצעות תג Img של HTML
replace- המשאב צריך לעלות באותו הקשר, לדוגמה שימוש באותו חלון להצגת
המשאב דוגמה טובה מ-HTML :
<a href="file.html"' target="_blank">some
content </a>
|
- new- מציין שהמשאב יוצג במקום אחר לא השפעה על ההצגה הקודמת.
לדוגמה פתיחת חלון חדש כשהחלון הקודם עדיין פתוח.
- Other- ההתנהגות אינה מוגבלת ע"י Xlink אך צריך להוסיף מאפיינים
נוספים על מנת שאפליקציית ה Xlink תדע לפענח אותו .
- none- ההתנהגות אינה מוגבלת ע"י Xlink ואין מאפיינים היכולים
להוסיף מידע. האפליקציה המפענחת רשאית לעשות כרצונה
actuate
מאפיין זה מגדיר מתי הקישור מופעל
הערכים האפשריים :
- onLoad- מופעל ברגע שפוגשים בו ( למשל: תמונה)
- onRequest- לא מופעל עד אשר לא מתבצעת עליו פעולה , זה יכול
להיות לחיצה של המשתמש או פרק זמן שעבר המוגדר ע"י התוכנה.
- Other- לא מוגבל ע"י Xlink. נחוצים מאפיינים נוספים.
הנה מסמך DTD אשר מרחיב את הדוגמה הקודמת ע"י הוספת התנהגות
<!ELEMENT link (#PCDATA)>
<!ATTLIST link
xlink:type CDATA #FIXED "simple"
xlink:href CDATA #REQUIRED
xlink :show (new
|replace
|embed
|other
|none)
#IMPLIED
xlink:actuate (onLoad
|onRequest
|other
|none) #IMPLIED>
|
5.3.5 סמנטיקה של
קישורים
המאפיין title
מאפיין זה מאפשר להוסיף תיאור לקישור שמוסיף הסברים על הקישור. הסבר
זה אמור לתת למשתמש מושג אודות המשאב המרוחק שהקישור מפנה אליו.
תיבה קטנה שנפתחת כאשר המשתמש מצביע על הקישור.דוגמה לכך יכולה להיו זוהי
רק דוגמה .המימוש תלוי בישום המשתמש בקישור. מאפיין זה הוא אופציונלי בקישור
פשוט.
המאפיין role
מאפיין זה מיועד לתת מושג אודות המשאב המרוחק בדיוק כמו המאפיין title.
ההבדל הוא בכל שהוא מיועד עבור הישום המעבד את המסמך. Xlink אינה מגדירה
את הפורמט שבו מידע זה אמור להיות. לכן אם ישנו ,לדוגמה , מסמך המתאר עובד
והמידע אודות העובד נמצא במשאב מרוחק בתור מסמך XML אזי החלק שמתאר זאת
יכול להראות כך:
<employee_link xlink:type="imple"
xlink:href="/rob_lau.xml"
xlink:role="/roles/person">
Rob Lau
</employee_link>
|
ב-role נמצא המידע איך לפענח את המידע אודות העובד שנמצא במסמך ה-XML
המאפיין arcrole
מאפיין זה מתאר את הקשר שבין המשאב המקומי למשאב המרוחק .
דוגמה :
<person xlink:type="simple"
xlink:href="/sue_lau.xm"
xlink:role="http://www.cnn.com/roles/person"
xlink:arcrole="http://www.cnn.com/relationships/mother"
xlink:title="Here is information about Rob's mother">
Rob Lau
</perosn>
|
5.3.6 קישורים מורחבים
לעיתים קישורים פשוטים אינם מספיקים .בין המקרים:
דוגמה:
<moviereview xlink:type="extended">
<locator xlink;type="locator"
xlink:href="/PulpFiction.html"
xlink:role="http://www.cnn.com/roles/Movie/">
<locator xlink;type="locator"
xlink:href="/TheHunter.html"
xlink:role="http://www.cnn.com/roles/Movie/">
<locator xlink;type="locator"
xlink:href="/DieHard.html"
xlink:role=http://www.cnn.com/roles/Movie/">
<moviereview>
|
כמו שאנו רואים קישור אחד מקשר למספר משאבים מרוחקים
קישורים מורחבים מוגדרים בצורה דומה לקישורים פשוטים.
במקום simple נותנים את הערך extended ל-xlink:type
ניתן להשתמש גם בארבע ה אלמנטים נוספים :resource,locator,arc,title
אלמנטים אלה מוסיפים מידע אודות הקישור.
הנה דוגמה ל-DTD שמגדיר קישור מורחב
<!ELEMENT elink (locator* , resource* , arc*,
title?)>
<ATTLIST elink
xlink;type CDATA #FIXED "extended"
xlink:role CDATA #IMPLIED
xlink:title CDATA #IMPLIED>
|
אלמנט locator
DTD של אלמנט זה:
<!ELEMENT locator (title?)>
<!ATTLIST locator
xlink:type CDATA #FIXED "locator"
xlink:href CDATA #REQUIRED
xlink:role CDATA #IMPLIED
xlink:title CDATA #IMPLIED
<xlink:label NMTOKEN #IMPLIED
|
אלמנט זה מחזיק התייחסות לקישור הקשור לקישור המרכזי. Href משמש לאותה
מטרה כמו בקישור פשוט , גם title ו-role משמשים לאותן מטרות. אלמנט זה
מהווה מזהה עבור האלמנט locator
אלמנט resource
הגדרת ה- DTD של אלמנט זה:
<!ELEMENT resouce ANY>
<!ATTLIST resource
xlink;type CDATA #FIXED "resource"
xlink:role CDATA #IMPLIED
xlink:title CDATA #IMPLIED
xlink:label NMTOKEN #IMPLIED>
|
אלמנט זה מהווה את הצד של המשאב המקומי בקישור . מכיוון שזהו המשאב המקומי
אין לו מאפיין href
ל - role,title,label ישנו אותו תפקיד
דוגמה :
<elink>
<resource xlink:role="http://www.movies.com/movie">
<title>Matrix , The</title>
<date>1999</date>
</resource>
<locator xlink:role="http://www.movies.com/person"
xlink:title="Keanu Reeves"
xlink:href="http://www.movies.com/people/KeanuReeves.xml/">/
<locator xlink:role="http://www.movies.com/person"
xlink:title="Kate Bush"
xlink:href="http://www.movies.com/people/KareBush.xml/">/
</elink>
|
הדוגמה מראה שלושה משאבים , אחד מקומי ושניים מרוחקים. המקומי מחזיק
מידע אודות סרט והמשאבים המרוחקים אודות שחקנים בסרט. המשאב המקומי מצויין
ע"י האלמנט resource, ומכיל מידע אודות השם והתאריך של הסרט. המשאב במקומי
מגדיר לאפליקציות המשתמשות בו שזהו סרט ע"י המאפיין role.
האלמנט arc
הנה ה- DTD של אלמנט זה
<!ELEMENT arc (title?)>
<!ATTLIST arc
xlink:type CDTAT #FIXED "arc"
xlink:title CDATA #IMPLIED
xlink:arcrole CDATA #IMPLIED
xlink:show (new|replace|embed|other|none) #IMPLIED
xlink:actuate (onLoad | onRequest | other| none) #IMPLIED
xlist:from NMTOKEN #IMPLIED
xlist:to NMTOKEN #IMPLIED>
|
אלמנט זה מתאר את מידע אודות המעבר בין הקישורים השונים באותו קישור
זאת ע"י שימוש
המאפיינים from ו- to .
דוגמה :
<elink>
<locator xlink:label="A" xlink:href="http://www.cnn.com/x1.xml"/>
<locator xlink:label="B" xlink:href="http://www.cnn.com/x2.xml"/>
<locator xlink:label="C" xlink:href="http://www.cnn.com/x3.xml"/>
<arc xlink:from="A" xlink:to="B" xlink:title="link
from x1 to x2"/>
<arc xlink:from="B" xlink:to="B" xlink:title="link
from x3 to x1"/>
</elink>
|
ישנן שש אפשרויות מעבר אך מידע מוצג רק על שני מעברים, הישום שמשתמש
בקישור יכול להשתמש במעברים הנותרים כראות עיניו.
ניתן לקבץ מספר משאבים בקבוצה אחת ע"י נתינת שם זהה לכולם . ע"י כך אלמנט
arc יכול לתאר יותר ממעבר אחד .
דוגמה :
<elink>
<locator xlink:label="A" xlink:href="http://www.cnn.com/x1.xml"/>
<locator xlink:label="A" xlink:href="http://www.cnn.com/x2.xml"/>
<locator xlink:label="C" xlink:href="http://www.cnn.com/x3.xml"/>
<arc xlink:from="A" xlink:to="B" xlink:actuate="onRequest"/>
<arc xlink:from="B" xlink:to="B" xlink:actuate="onRequest"/>
</elink>
|
בדוגמה זו התנהגות מוגדרת ע"י אלמנט actuate לארבעה מבין שישה מעברים אפשריים.
אלמנט titlle ה-DTD :
<!ELEMENT title ANY>
<!ATTLIST xlink:type CDATA #FIXED "title">
|
ע"י שימוש באלמנט title במקום מאפיין יש לנו גמישות רבה יותר. להגדיר שתי
כותרות , כל אחת בשפה שונה.לדוגמה נית
<elink>
<title xml:lang="en">A large book!</title>
<title xml:lang="fr">Une grande livre</title>
some content
</elink>
|
5.3.7 סיכום
היתרונות של Xlink רבים , ביניהם:
- אפשרות לקישור משאבים מכל סוג שהוא
- קישורים דו כיווניים
- קישורים בין קבוצות של משאבים
- אפשרות לשליטה מרכזית בקישורים וכך להפוך אותה לטובה יותר
|