21
06/23/22 1 קקק1 : XML Extensible Markup Language

7/13/20151 חלק 1: XML Extensible Markup Language

  • View
    228

  • Download
    6

Embed Size (px)

Citation preview

Page 1: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 1

XML: 1חלק

Extensible Markup Language

Page 2: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 2

מסמךXML( מורכב מתגים ( tags.וטקסט התגים מגיעים בזוגות, למשל<date< ...</date<התגים חייבים להיות מקוננים היטב

מקונן היטב

<book> <title> ... </title> ... </book>לא מקונן היטב

<book> <title> ... </book>... </title>

XMLהמבנה של מסמך

Page 3: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 3

XML המבנה של מסמך)המשך(

:דוגמה

<title>The Big Sleep</title><price>7.75</price> -- עדיין נחשב כטקסט

7.75

אלמנטים עם תוכן ריק

<title> </title< -שקול ל <title</

Page 4: 7/13/20151 חלק 1: XML Extensible Markup Language

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 <

Page 5: 7/13/20151 חלק 1: XML Extensible Markup Language

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 < נתונים מהצורה הנ"ל בדרך כלל לא ייווצרו ממסדים

רלציוניים.

Page 6: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 6

(Attributesתכונות )

תג פותח יכול להכיל תכונות.

בדרך כלל משתמשים בתכונות כאשר רוצים לתאר את התוכן של האלמנט.

<inventory<

<book ISBN=“a364215452”<…</book <

<book ISBN=“a126365452”<…</book <

<book ISBN=“a126365452” available=”no”<…</book <

</inventory <

אופציונאלי

Page 7: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 7

(Header Tagתג הכותרת )

<?xml version="1.0" standalone="no" encoding="UTF-8"?<

( אפשר לא לרשום את תכונת הקידודencoding ) בערך ברירת המחדל XMLואז ישתמש מעבד ה-

UTF-8. תג הכותרת אינו מהווה חלק מהמסמך ואינו נגיש

מתוכו.

Page 8: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 8

<!-- File name: books.xml --< הערות משמשות לעזור לקריאות של המסמך, אך

יתעלם מהן.XMLבדרך כלל מעבד ה- ניתן להוסיף הערות לכל חלק במסמך, אך לא

בתוך תגים.דוגמה:

<price>7.75 <!--price comment --> </price>

<price<!--price comment -->>7.75</price>

XMLהערות ב-

Page 9: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 9

Wellמסמכים בנויים היטב )Formed)

תכונה שמתייחסת לכל מסמך: דורש קינון טוב שלהתגים, קיום המגבלות על הערות ושמות תכונות

שונים זה מזה לכל אלמנט.

Page 10: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 10

: מתאר מסמך 2חלק (DTD)

XMLאילוץ מבנה על מסמכי

Page 11: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 11

DTD מגדיר אילוצים על מבנה של מסמך XML

DTDמהווה מפרט סינטקטי

( נאמר שמסמך הוא תקףValid אם הוא ): מתאים לדקדוק שיבוטא ע"י DTDמתאים ל-

ביטויים רגולריים, מקיים את המגבלות על טיפוסי תכונות ואת המגבלות על מזהים

ומצביעים.

Document Type Descriptors

Page 12: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 12

-בDTD אלמנטי ,XML .מוצהרים ע"י הצהרת אלמנט :הצהרה על אלמנט תהיה בצורה הבאה

<!ELEMENT element-name element-content>-הelement-content.מתאר את הבנים של האלמנט element-content:יכול להכיל

ANY מגדיר שהאלמנט מכיל תוכן שאינו מפר את התנאים של -מסמך בנוי היטב

EMPTY מגדיר שהאלמנט ריק -ביטוי רגולרי – בדרך כלל מוקף בסוגריים

פירוט המבנה

Page 13: 7/13/20151 חלק 1: XML Extensible Markup Language

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

Page 14: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 14

נגדיר את מבנה אלמנטי הספר ע"י הביטוי:

)title, author+, binding?, )price | points(?(

מה המשמעות של הביטוי הנ"ל?

קיבוץ ע"י סוגריים

Page 15: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 15

DTDתוכן מעורב ב-

פירוט תוכן שמכיל#PCDATA חייב להיות לפי :אחת מהתבניות הבאות

#(PCDATA ).רק טקסט מותר כתוכן האלמנט - #(PCDATA | c1 | c2*)… | מאפשר ערבוב של -

טקסט ואלמנטים אבל ללא הגבלה על מספר וסדר

Page 16: 7/13/20151 חלק 1: XML Extensible Markup Language

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רשימת מצביעים –

Page 17: 7/13/20151 חלק 1: XML Extensible Markup Language

04/19/23 17

attribute-type ערכים של

ערך הסבר

CDATA הערך הוא מחרוזת

character data))

)en1|en2|..( הערך חייב להיות אחד מאיברי האינומרציה

ID הערך הינו מזהה ייחודי )בכל המסמך(

IDREF הערך זהה לאחד מערכי תכונות המופיעים במסמךIDה-

IDREFS הערך הוא רשימה של אחד או יותר "( …id1 id2מזהים של אלמנטים )"

Page 18: 7/13/20151 חלק 1: XML Extensible Markup Language

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(*<

Page 19: 7/13/20151 חלק 1: XML Extensible Markup Language

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 <

מחבר אחד או יותר

לכל היותר סוג כריכה אחד

כותרת אחת בדיוק

חייב אפציונאלילהופיע

ספרים ככל

שנרצה

לכל היותר מחיר אחד או מס' נקודות אחד

מצביעיםאופציונאל

י

Page 20: 7/13/20151 חלק 1: XML Extensible Markup Language

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">

צומת המסמך

Page 21: 7/13/20151 חלק 1: XML Extensible Markup Language

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 <