Spring 20051 חלק 3: מבוא ל- XPath XML Path Language.

Slides:



Advertisements
Similar presentations
XPATH מבוא MCSD Doron Amir What is XPath? A W3C Standard A W3C Standard Not written in XML Not written in XML Defines parts of an XML.
Advertisements

Spring Part III: Introduction to XPath XML Path Language.
1 Colorful XML: One Hierarchy Isn't Enough Authors : H. V. Jagadish, Laks V. S. Lakshmanan, Monica Scannapieco, Divesh Srivastava, Nuwee Wiwatwattana Presented.
XML, XML Schema, Xpath and XQuery Slides collated from various sources, many from Dan Suciu at Univ. of Washington.
©Silberschatz, Korth and Sudarshan4.1Database System Concepts סכימה לדוגמא.
XPath Eugenia Fernandez IUPUI. XML Path Language (XPath) a data model for representing an XML document as an abstract node tree a mechanism for addressing.
1 Part 3: Query Languages Managing XML and Semistructured Data.
Agenda from now on Done: SQL, views, transactions, conceptual modeling, E/R, relational algebra. Starting: XML To do: the database engine: –Storage –Query.
Lecture 13. The various node tests also work on this axis: eg node() This book has descendant-or- self nodes As expected, text nodes are included in the.
Lecture 13. The various node tests also work on this axis: eg node() This book has descendant-or- self nodes As expected, text nodes are included in the.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
Querying XML (cont.). Comments on XPath? What’s good about it? What can’t it do that you want it to do? How does it compare, say, to SQL?
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
מבוא לשפת C חידות ונקודות חשובות נכתב על-ידי יורי פקלני. © כל הזכויות שמורות לטכניון – מכון טכנולוגי לישראל.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
XPath By Laouina Marouane. Outline  Introduction  Data Model  Expression Patterns Patterns Location Paths Location Paths  Example  XPath 2.0  Practice.
1 Efficient Processing of XPath Queries Using Indexes Yan Chen 1, Sanjay Madria 1, Kalpdrum Passi 2, Sourav Bhowmick 3 1 Department of Computer Science,
Managing XML and Semistructured Data Lecture 6: XPath Prof. Dan Suciu Spring 2001.
XML May 1 st, XML for Representing Data John 3634 Sue 6343 Dick 6363 John 3634 Sue 6343 Dick 6363 row name phone “John”3634“Sue”“Dick” persons.
1 Introduction to Database Systems CSE 444 Lecture 11 Xpath/XQuery April 23, 2008.
1 Lecture 11: Xpath/XQuery Friday, October 20, 2006.
מערכות מסדי נתונים 8. שפת החיפוש XPath שקפים:אלדר פישר.
Lecture 12. Default Processing in XSLT The default processing in XSLT is to process the XPath root node The default processing for various node types.
עקרון ההכלה וההדחה.
XPath Tao Wan March 04, What is XPath? n A language designed to be used by XSL Transformations (XSLT), Xlink, Xpointer and XML Query. n Primary.
תחשיב היחסים (הפרדיקטים)
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א.
מבוא מורחב למדעי המחשב בשפת Scheme תרגול 10. אג'נדה שאלות מבחינות חזרה על מימוש stream אפשרי 2.
XML, XML Schema, XPath and XQuery Query Languages CS561 Slides collated from several sources, including D. Suciu at Univ. of Washington.
מתמטיקה בדידה תרגול 2.
7/13/20151 חלק 1: XML Extensible Markup Language.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
1 Lecture 08: XML and Semistructured Data. 2 Outline XML (Section 17) –XML syntax, semistructured data –Document Type Definitions (DTDs) XPath.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
1 Lecture 08: XML and Semistructured Data. 2 Outline XML (Section 17) –XML syntax, semistructured data –Document Type Definitions (DTDs) XPath.
1 Lecture 16: Querying XML Data: XPath, XQuery Friday, February 11, 2005.
Querying XML February 12 th, Querying XML Data XPath = simple navigation through the tree XQuery = the SQL of XML XSLT = recursive traversal –will.
Web Data Management XPath.
XML and XPath. Web Services: XML+XPath2 EXtensible Markup Language (XML) a W3C standard to complement HTML A markup language much like HTML origins: structured.
Semistructured data and XML CS 645 April 5, 2006 Some slide content courtesy of Ramakrishnan & Gehrke, Dan Suciu, Zack Ives.
1/17 ITApplications XML Module Session 7: Introduction to XPath.
Management of XML and Semistructured Data Lecture 5: Query Languages Wednesday, 4/1/2001.
Lecture 6: XML Query Languages Thursday, January 18, 2001.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
CSE 636 Data Integration Fall 2006 XML Query Languages XPath.
WPI, MOHAMED ELTABAKH PROCESSING AND QUERYING XML 1.
More XML: semantics, DTDs, XPATH February 18, 2004.
1 XQuery Slides From Dr. Suciu. 2 XQuery Based on Quilt, which is based on XML-QL Uses XPath to express more complex queries.
IS432 Semi-Structured Data Lecture 4: XPath Dr. Gamal Al-Shorbagy.
1 חלק XQuery :IV XML Query. 2 ביבליוגרפיה - DTD 3 ביבליוגרפיה – books.xml TCP/IP Illustrated Stevens W. Addison-Wesley Advanced Programming in.
XQuery 1. In this lecture Summary of XQuery FLWOR expressions – For, Let, Where, Order by, Return FOR and LET expressions Collections and sorting 2.
Lecture 17: XPath and XQuery Wednesday, Nov. 7, 2001.
1 Lecture 12: XML, XPath, XQuery Friday, October 24, 2003.
Programming Arrays.
Tirgul 12 Trees 1.
XML path expressions CSE 350 Fall 2003.
Lecture 11: Xpath/XQuery
SQL בסיסי – הגדרה אינדוקטיבית
תירגול 14: מבני נתונים דינאמיים
חלק 3: מבוא ל- XPath XML Path Language Spring 2005.
Extensible Markup Language
XML: Schemas, Queries Wednesday, 4/17/2002
מבוא לתכנות ב- Java תרגול 10 - רשימות מקושרות.
Lecture 12: XML, XPath, XQuery
Lecture 15: Querying XML Friday, October 27, 2000.
Lecture 11: XML and Semistructured Data
Database Management Systems
Presentation transcript:

Spring חלק 3: מבוא ל- XPath XML Path Language

2 מסמך דוגמא Addison-Wesley Serge Abiteboul Rick Hull Victor Vianu Foundations of Databases 1995 Freeman Jeffrey D. Ullman Principles of Database and Knowledge Base Systems 1998

Spring מסמך XML כעץ bib book publisherauthor.. Addison-WesleySerge Abiteboul צומת השורש צומת המסמך price=55

Spring ביטויי XPath – דוגמאות פשוטות /bib/book/year התוצאה: /bib/paper/year התוצאה: קבוצה ריקה של צמתים (אין אלמנטים בעלי שם paper)

Spring חיפוש צאצאים (סגור Kleene מוגבל) //author התוצאה: Serge Abiteboul Rick Hull Victor Vianu Jeffrey D. Ullman /bib//first-name התוצאה: Rick קבוצה של 4 צמתים

Spring בחירת צמתים שאינם אלמנטים text() מחזיר צמתים מסוג טקסט node() מחזיר כל צמת ללא חשיבות לסוגו הביטוי הבא /bib/book/author/text() מחזיר את שמות הסופרים ששמם נמצא בצומת טקסט אחד. Serge Abiteboul Victor Vianu Jeffrey D. Ullman הסופר Rick Hull אינו מופיע משום ששמו מופרד לשני אלמנטים, כלומר לאלמנט author לא קיים צומת בן מסוג טקסט.

Spring בחירת אלמנט כלשהו - wildcard //author/* התוצאה: Rick Hull ה-wildcard * במקרה זה בוחר כל צומת אלמנט ללא חשיבות לשמו.

Spring גישה לתכונות התוצאה: “55” מתייחס לתכונות מתייחס לתכונה מתייחס לתכונה כל שהיא

Spring בחירה לפי ביטויים בוליאניים /bib/book/author[first-name = “Rick”] התוצאה: Rick Hull הביטוי בתוך [ ] דורש כי שמו הפרטי של הסופר הוא Rick. שאלה: כתבו ביטוי המחזיר את כל הספרים מהמילניום הנוכחי? /bib/book[ year >= 2000] על מנת לבצע את השוואה, הערך הטקסטואלי של צומת year מומר לערך מספרי.

Spring בחירה לפי ביטויים בוליאניים = "Addison-Wesley"] המשמעות של […][…] היא ששני הביטויים הבוליאניים חייבים להתקיים. התוצאה ? הביטוי הנ"ל שקול ל- and publisher = "Addison-Wesley"]

Spring ביטויים בוליאניים קיומיים (existential) /bib/book/author[first-name][address[zip][city]]/last-name התוצאה: מוחזרים שמות משפחה (last-name) של סופרים בעלי שם פרטי המופיע בתוך צומת נפרד ובעלי כתובת הכוללת מיקוד (zip) ושם עיר (city). המשמעות של [first-name] היא הדרישה כי לכל צומת author יש לפחות צומת בן first-name אחד. שאלה: החזירו סופרים בעלי שם פרטי בלבד (ללא שם משפחה). /bib/book/author[first-name][not(last-name)]

Spring פונקציות /bib/book[2] שקול ל- /bib/book[position() = 2] פונקציה position() מחזירה את המספר הסידורי של צומת ההקשר בקבוצת הייחוס שלו. //author[last()] פונקציה last() מחזירה את מיקום הצומת האחרון בקבוצת הייחוס. האם שני הביטויים הבאים שקולים? //author[1][2] //author[2][1]

Spring פונקציות - המשך /bib//*[name()=”book”] שקול ל- /bib//book name() הינה פונקציה המחזירה את שם הצומת. /bib/book[count(author)>1] count() מחזירה את מספר הצמתים בקבוצת הקלט. id(“a ”) id() מחזירה את הצמתים בעלי תכונות ID כפי שנתון ע"י הקלט.

Spring XPath – כיווני ניווט (צירים – axes) ניתן לנוע על פני 13 הכיוונים הבאים: ancestor:: - מכיל אבות קדמונים של צומת ההקשר ancestor-or-self:: - מכיל אבות קדמונים של צומת ההקשר ואת הצומת עצמו attribute:: - מכיל אטריביוטים (תכונות) של צומת ההקשר child:: - מכיל בנים של צומת ההקשר descendant:: - מכיל צאצאים של צומת ההקשר descendant-or-self:: - מכיל צאצאים של צומת ההקשר ואת הצומת עצמו following:: - מכיל צמתים המופיעים אחרי צומת ההקשר במסמך למעט צמתים צאצאים

Spring כיווני ניווט - המשך following-sibling:: - מכיל אחים של צומת ההקשר המופיעים אחריו במסמך namespace:: - מכיל צמתים מסוג namespace של צומת ההקשר parent:: - מכיל את צומת האב (אם קיים) של צומת ההקשר preceding:: - מכיל צמתים המופיעים לפני צומת ההקשר במסמך למעט צמתים שהם אבות קדמונים preceding-sibling:: - מכיל אחים של צומת ההקשר המופיעים לפניו במסמך self:: - מכיל את צומת ההקשר עצמו

Spring קיצורים כתיב מקוצרכתיב מלא ברירת ///descendant-or-self::node()/ [number][position() = number]

Spring קיצורים- דוגמאות כתיב מקוצרכתיב מלא /bib/book/child::bib/child::book attribute::price /.//title (equivalent to //title) /self::node()/descendant-or- self::node()/child::title //author/../descendant-or-self::node()/ child::author/parent::node()

Spring דוגמאות //author/descendant-or-self::node()/child::zip ⇔ //author//zip ⇔ //author/descendant::zip מה מחזירים הביטויים הבאים? //book/publisher/parent::*/author //book[author[position()<last()]] //book[count(author[1]) = count(author[1] | author[last()] ) ] שני הביטויים עלולים להחזיר תוצאות שונות אם מוסיפים בסוף בחירת מיקום

Spring דוגמאות - המשך מהם הספרים ששנת ההוצאה שלהם היא המאוחרת ביותר? //book[ not(year < //book/year) ] מי הם המחברים אשר כתבו יותר מספר אחד? יש להחזיר כל מחבר כזה פעם אחת בדיוק. /bib/book/author[.=../following-sibling::*/author and not(.=../preceding-sibling::*/author)]