7/13/20151 חלק 1: xml extensible markup language
Post on 22-Dec-2015
229 views
TRANSCRIPT
04/19/23 1
XML: 1חלק
Extensible Markup Language
04/19/23 2
מסמךXML( מורכב מתגים ( tags.וטקסט התגים מגיעים בזוגות, למשל<date< ...</date<התגים חייבים להיות מקוננים היטב
מקונן היטב
<book> <title> ... </title> ... </book>לא מקונן היטב
<book> <title> ... </book>... </title>
XMLהמבנה של מסמך
04/19/23 3
XML המבנה של מסמך)המשך(
:דוגמה
<title>The Big Sleep</title><price>7.75</price> -- עדיין נחשב כטקסט
7.75
אלמנטים עם תוכן ריק
<title> </title< -שקול ל <title</
04/19/23 4
שלם XMLמסמך<?xml version ="1.0" encoding="UTF-8" standalone="no"?<<!DOCTYPE inventory SYSTEM "http://www.cs.technion.ac.il/book.dtd"<<!-- File name: books.xml --<<inventory<
<book ISBN="a364215452" 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 <
04/19/23 5
תוכן מעורבב אלמנט יכול להכיל תוכן מעורב של תת-אלמנטים
וטקסט<book ISBN=“a364215452”<
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 < נתונים מהצורה הנ"ל בדרך כלל לא ייווצרו ממסדים
רלציוניים.
04/19/23 6
(Attributesתכונות )
תג פותח יכול להכיל תכונות.
בדרך כלל משתמשים בתכונות כאשר רוצים לתאר את התוכן של האלמנט.
<inventory<
<book ISBN=“a364215452”<…</book <
<book ISBN=“a126365452”<…</book <
<book ISBN=“a126365452” available=”no”<…</book <
</inventory <
אופציונאלי
04/19/23 7
(Header Tagתג הכותרת )
<?xml version="1.0" standalone="no" encoding="UTF-8"?<
( אפשר לא לרשום את תכונת הקידודencoding ) בערך ברירת המחדל XMLואז ישתמש מעבד ה-
UTF-8. תג הכותרת אינו מהווה חלק מהמסמך ואינו נגיש
מתוכו.
04/19/23 8
<!-- File name: books.xml --< הערות משמשות לעזור לקריאות של המסמך, אך
יתעלם מהן.XMLבדרך כלל מעבד ה- ניתן להוסיף הערות לכל חלק במסמך, אך לא
בתוך תגים.דוגמה:
<price>7.75 <!--price comment --> </price>
<price<!--price comment -->>7.75</price>
XMLהערות ב-
04/19/23 9
Wellמסמכים בנויים היטב )Formed)
תכונה שמתייחסת לכל מסמך: דורש קינון טוב שלהתגים, קיום המגבלות על הערות ושמות תכונות
שונים זה מזה לכל אלמנט.
04/19/23 10
: מתאר מסמך 2חלק (DTD)
XMLאילוץ מבנה על מסמכי
04/19/23 11
DTD מגדיר אילוצים על מבנה של מסמך XML
DTDמהווה מפרט סינטקטי
( נאמר שמסמך הוא תקףValid אם הוא ): מתאים לדקדוק שיבוטא ע"י DTDמתאים ל-
ביטויים רגולריים, מקיים את המגבלות על טיפוסי תכונות ואת המגבלות על מזהים
ומצביעים.
Document Type Descriptors
04/19/23 12
-בDTD אלמנטי ,XML .מוצהרים ע"י הצהרת אלמנט :הצהרה על אלמנט תהיה בצורה הבאה
<!ELEMENT element-name element-content>-הelement-content.מתאר את הבנים של האלמנט element-content:יכול להכיל
ANY מגדיר שהאלמנט מכיל תוכן שאינו מפר את התנאים של -מסמך בנוי היטב
EMPTY מגדיר שהאלמנט ריק -ביטוי רגולרי – בדרך כלל מוקף בסוגריים
פירוט המבנה
04/19/23 13
XMLביטויים רגולאריים ב-דוגמה משמעות ביטוי
title A מופיעAהתג
title, binding 2e ולאחריו e1הביטוי e1,e2
book* eאפס או יותר מופעים של e*
title, binding? אופציונאלי – מופיע פעם אחת או לא מופיע כלל
e?
author+ אחד או יותר מופעים e+
(price | points)?
)אך לא e2 מופיע או e1או ש-שניהם(
e1 | e2
04/19/23 14
נגדיר את מבנה אלמנטי הספר ע"י הביטוי:
)title, author+, binding?, )price | points(?(
מה המשמעות של הביטוי הנ"ל?
קיבוץ ע"י סוגריים
04/19/23 15
DTDתוכן מעורב ב-
פירוט תוכן שמכיל#PCDATA חייב להיות לפי :אחת מהתבניות הבאות
#(PCDATA ).רק טקסט מותר כתוכן האלמנט - #(PCDATA | c1 | c2*)… | מאפשר ערבוב של -
טקסט ואלמנטים אבל ללא הגבלה על מספר וסדר
04/19/23 16
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רשימת מצביעים –
04/19/23 17
attribute-type ערכים של
ערך הסבר
CDATA הערך הוא מחרוזת
character data))
)en1|en2|..( הערך חייב להיות אחד מאיברי האינומרציה
ID הערך הינו מזהה ייחודי )בכל המסמך(
IDREF הערך זהה לאחד מערכי תכונות המופיעים במסמךIDה-
IDREFS הערך הוא רשימה של אחד או יותר "( …id1 id2מזהים של אלמנטים )"
04/19/23 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 #REQUIREDavailable )yes | no( “no” previous IDREFS #IMPLIED<
<!ELEMENT inventory )book(*<
04/19/23 19
דוגמה: רשימת מצאי
<inventory<<book ISBN=”a364215452” available=“no”
previous=“a3532156 a3215643 a241546” <
<title<Leaves of Grass</title<<author<Jeff Cohen</author<<author<Walt Whitman</author<<binding<hardcover</binding<<price<7.75</price<
</book < <book <…</book < <book <…</book <
<book <…</book <</inventory <
מחבר אחד או יותר
לכל היותר סוג כריכה אחד
כותרת אחת בדיוק
חייב אפציונאלילהופיע
ספרים ככל
שנרצה
לכל היותר מחיר אחד או מס' נקודות אחד
מצביעיםאופציונאל
י
04/19/23 20
שלוDTDל-XML קישור בין מסמך :הצהרה פנימית
<?xml version="1.0"?><!DOCTYPE inventory [<!ELEMENT ...> … ]><inventory> ... </inventory>
.הצהרה חיצונית ע"י שם קובץ<!DOCTYPE inventory SYSTEM "schema.dtd">
URL:<!DOCTYPE inventory SYSTEM
"http://www.schemaauthority.com/schema.dtd">הצהרה חיצונית מסוג:PUBLIC
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
צומת המסמך
04/19/23 21
דוגמה מלאה<?XMLversion ="1.0" encoding="UTF-8“ standalone="no"?<<!DOCTYPE inventory SYSTEM "http://www.cs.technion.ac.il/book.dtd"<<!-- File name: books.xml --<<inventory<
<book ISBN=“a364215452” available=“no” previous=“a3532156 a3215643 a241546” <
<title<Leaves of Grass</title<<author<Jeff Cohen</author<<author<Walt Whitman</author<<binding<hardcover</binding<<price<7.75</price<
</book < <book <…</book < <book <…</book < <book <…</book <
</inventory <