Presentation is loading. Please wait.

Presentation is loading. Please wait.

Extensible Markup Language

Similar presentations


Presentation on theme: "Extensible Markup Language"— Presentation transcript:

1 Extensible Markup Language
חלק 1: XML Extensible Markup Language 12/1/2018

2 המבנה של מסמך XML מסמך XML מורכב מתגים ( (tagsוטקסט.
התגים מגיעים בזוגות, למשל <date> ...</date> התגים חייבים להיות מקוננים היטב מקונן היטב <book> <title> ... </title> ... </book> לא מקונן היטב <book> <title> ... </book>... </title> 12/1/2018

3 המבנה של מסמך XML (המשך)
דוגמה: <title>The Big Sleep</title> <price>7.75</price> -- עדיין נחשב כטקסט 7.75 אלמנטים עם תוכן ריק <title> </title> שקול ל- <title/> 12/1/2018

4 מסמךXML שלם <?xml version ="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE inventory SYSTEM " <!-- File name: books.xml --> <inventory> <book ISBN="a " available="no" > Best Seller <title>Leaves of Grass</title> <author>Jeff Cohen</author> <author>Walt Whitman</author> <binding>hardcover</binding> <price>7.75</price> A collection of some of the finest American free-verse poetry </book > </inventory > 12/1/2018

5 תוכן מעורבב אלמנט יכול להכיל תוכן מעורב של תת-אלמנטים וטקסט
<book ISBN=“a ”> Best Seller <title>Leaves of Grass</title> <author>Jeff Cohen</author> <binding>hardcover</binding> <price>7.75</price> A collection of some of the finest American free-verse poetry </book > נתונים מהצורה הנ"ל בדרך כלל לא ייווצרו ממסדים רלציוניים. 12/1/2018

6 תכונות (Attributes) תג פותח יכול להכיל תכונות.
בדרך כלל משתמשים בתכונות כאשר רוצים לתאר את התוכן של האלמנט. <inventory> <book ISBN=“a ”>…</book > <book ISBN=“a ”>…</book > <book ISBN=“a ” available=”no”>…</book > </inventory > אופציונאלי 12/1/2018

7 תג הכותרת (Header Tag) <?xml version="1.0" standalone="no" encoding="UTF-8"?> אפשר לא לרשום את תכונת הקידוד (encoding) ואז ישתמש מעבד ה-XML בערך ברירת המחדל UTF-8. תג הכותרת אינו מהווה חלק מהמסמך ואינו נגיש מתוכו. 12/1/2018

8 הערות ב-XML <!-- File name: books.xml -->
ניתן להוסיף הערות לכל חלק במסמך, אך לא בתוך תגים. דוגמה: <price>7.75 <!--price comment --> </price> <price<!--price comment -->>7.75</price> 12/1/2018

9 מסמכים בנויים היטב (Well Formed)
תכונה שמתייחסת לכל מסמך. מסמך בנוי היטב מקיים את הדרישות הבאות: קינון טוב של התגים. קיום המגבלות על הערות. אלמנט לא מכיל יותר מתכונה אחת עם אותו שם. קיים לפחות אלמנט אחד במסמך. קיים אלמנט שורש יחיד. 12/1/2018

10 חלק 2: מתאר מסמך (DTD) אילוץ מבנה על מסמכי XML 12/1/2018

11 Document Type Descriptors
DTD מגדיר אילוצים על מבנה של מסמך XML DTD מהווה מפרט סינטקטי נאמר שמסמך הוא תקף (Valid) אם הוא מכיל DTD ותואם ל-DTD: תואם לדקדוק שמבוטא ע"י ביטויים רגולריים. מקיים את המגבלות על טיפוסי תכונות. מקיים את המגבלות על מזהים ומצביעים. 12/1/2018

12 פירוט המבנה ב-DTD, אלמנטי XML מוצהרים ע"י הצהרת אלמנט.
הצהרה על אלמנט תהיה בצורה הבאה: <!ELEMENT element-name element-content> ה-element-content מתאר את הבנים של האלמנט. element-content יכול להכיל: ANY - מגדיר שהאלמנט מכיל תוכן שאינו מפר את התנאים של מסמך בנוי היטב EMPTY - מגדיר שהאלמנט ריק ביטוי רגולרי – בדרך כלל מוקף בסוגריים 12/1/2018

13 ביטויים רגולאריים ב-XML
דוגמה משמעות ביטוי title התג A מופיע A title, binding הביטוי e1 ולאחריו 2e e1,e2 book* אפס או יותר מופעים של e e* title, binding? אופציונאלי – מופיע פעם אחת או לא מופיע כלל e? author+ אחד או יותר מופעים e+ (price | points)? או ש-e1 מופיע או e2 (אך לא שניהם) e1 | e2 12/1/2018

14 (title, author+, binding?, (price | points)?)
קיבוץ ע"י סוגריים נגדיר את מבנה אלמנטי הספר ע"י הביטוי: (title, author+, binding?, (price | points)?) מה המשמעות של הביטוי הנ"ל? 12/1/2018

15 תוכן מעורב ב-DTD פירוט תוכן שמכיל #PCDATA חייב להיות לפי אחת מהתבניות הבאות: (#PCDATA) - רק טקסט מותר כתוכן האלמנט. (#PCDATA | c1 | c2 | …)* - מאפשר ערבוב של טקסט ואלמנטים אבל ללא הגבלה על מספר וסדר 12/1/2018

16 <!ATTLIST element-name att-name att-type default>
הגדרת תכונות ב-DTD הגדרת תכונות תיעשה לפי התבנית הבאה: <!ATTLIST element-name att-name att-type default> דוגמה: <!ELEMENT book “…”> <!ATTLIST book ISBN ID #REQUIRED available (yes | no) “no” previous IDREFS #IMPLIED> ISBN - חייב להופיע, מסוג ID - מזהה ייחודי Available - אופציונאלי (ערך ברירת מחדל “no”), אנומרציה (yes | no) previous - אופציונאלי, מסוג IDREFS – רשימת מצביעים 12/1/2018

17 attribute-type ערכים של
ערך הסבר CDATA הערך הוא מחרוזת character data)) (en1|en2|..) הערך חייב להיות אחד מאיברי האינומרציה ID הערך הינו מזהה ייחודי (בכל המסמך) IDREF הערך זהה לאחד מערכי תכונות ה-ID המופיעים במסמך IDREFS הערך הוא רשימה של אחד או יותר מזהים של אלמנטים ("id1 id2 …") 12/1/2018

18 דוגמה: רשימת מצאי <!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)> <!ELEMENT binding (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ELEMENT points (#PCDATA)> <!ELEMENT book (title, author+, binding?, (price | points)?)> <!ATTLIST book ISBN ID #REQUIRED available (yes | no) “no” previous IDREFS #IMPLIED> <!ELEMENT inventory (book)*> 12/1/2018

19 דוגמה: רשימת מצאי <title>Leaves of Grass</title>
חייב להופיע אפציונאלי <inventory> <book ISBN=”a ” available=“no” previous=“a a a241546” > <title>Leaves of Grass</title> <author>Jeff Cohen</author> <author>Walt Whitman</author> <binding>hardcover</binding> <price>7.75</price> </book > <book >…</book > </inventory > מצביעים אופציונאלי ספרים ככל שנרצה כותרת אחת בדיוק מחבר אחד או יותר לכל היותר סוג כריכה אחד לכל היותר מחיר אחד או מס' נקודות אחד 12/1/2018

20 קישור בין מסמך XMLל-DTD שלו
הצהרה פנימית: <?xml version="1.0"?> <!DOCTYPE inventory [<!ELEMENT ...> … ]> <inventory> ... </inventory> הצהרה חיצונית ע"י שם קובץ. <!DOCTYPE inventory SYSTEM "schema.dtd"> URL: <!DOCTYPE inventory SYSTEM " הצהרה חיצונית מסוג:PUBLIC <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " צומת המסמך 12/1/2018

21 דוגמה מלאה <?XMLversion ="1.0" encoding="UTF-8“ standalone="no"?> <!DOCTYPE inventory SYSTEM " <!-- File name: books.xml --> <inventory> <book ISBN=“a ” available=“no” previous=“a a a241546” > <title>Leaves of Grass</title> <author>Jeff Cohen</author> <author>Walt Whitman</author> <binding>hardcover</binding> <price>7.75</price> </book > <book >…</book > </inventory > 12/1/2018

22 דוגמא שגויה - מצא את הטעויות
<?XMLversion ="1.0" encoding="UTF-8“ standalone="no"?> <!DOCTYPE inventory SYSTEM " <!-- File name: books.xml --> <inventory> <book ISBN=“a ” available=“no” previous=“a a a241546” > <title>Leaves of Grass</title> <author>Jeff Cohen</author> <binding>hardcover</binding> <price>7.75</price> </book > <book ISBN=“a ” <title><alias>Leaves of Grass</alias></title> <point>2.5</points> </inventory > ID לא ייחודי Title אינו מסוג PCDATA author נדרש לפי הגדרה אך חסר 12/1/2018


Download ppt "Extensible Markup Language"

Similar presentations


Ads by Google