1 / 71

CHƯƠNG VIII: XML

CHƯƠNG VIII: XML. Lý thuyết 3 tiết Thực hành 6 tiết. CƠ BẢN VỀ XML. Giới thiệu XML Cấu trúc của tài liệu XML. Giới thiệu XML. XML là viết tắt cho chữ eXtensible Markup Language.

abdul-haney
Download Presentation

CHƯƠNG VIII: XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHƯƠNG VIII:XML Lý thuyết 3 tiết Thực hành 6 tiết

  2. CƠ BẢN VỀ XML • Giới thiệu XML • Cấu trúc của tài liệu XML

  3. Giới thiệu XML • XML là viết tắt cho chữ eXtensible Markup Language. • XML là ngôn ngữ đánh dấu tương đối là mới, được phát triển từ một ngôn ngữ đánh dấu Standard Generalized Markup Language (SGML).

  4. Cấu trúc của tài liệu XML • Gồm nhiều phần tử (element), mỗi thành phần được bắt đầu với một thẻ bắt đầu (start-tag) và một thẻ kết thúc (end-tag). • Giữa start-tag và end-tag là nội dung của phần tử này . • Nội dung có thể bao gồm dữ liệu văn bản hay có thể là một phần tử khác.

  5. Cấu trúc của tài liệu XML (Vd) <?xml version=“1.0”?> <Catalog> <Product> <ProductID>F10</ProductID> <ProductName>Shimano</ProductName> <ListPrice>47.76</ListPrice> </Product> </Catalog>

  6. Cấu trúc của tài liệu XML (tt) • Một tài liệu XML không có tồn tại một thẻ nào không đúng quy định . • Khi xây dựng tài liệu XML cần phải tuân thủ theo một số quy luật nào đó, nếu tuân thủ đúng quy luật thì được gọi là well-formed. • Một tài liệu XML well-formed chưa chắc là một tài liệu hợp lệ, nó chỉ được xem là hợp lệ nếu đảm bảo những quy tắc trong tài liệu Document Type Definition (DTD) hay giản đồ (schema)

  7. Một tài liệu XML well-formed • Phải có một root Element duy nhất, gọi là Document Element. • Mỗi tag mở phải có một tag đóng tương ứng. • Tags trong XML thì case sensitive ( phân biệt chữ hoa chữ thường). • Mỗi child Element phải nằm trong Element cha . • Giá trị thuộc tính trong XML phải được bao trong một cặp ngoặc kép hay một cặp ngoặc kép .

  8. Processing Instructions và Comments • Processing Instructions (chỉ thị về cách chế biến) nằm trong cặp tag <? Và ?> . • Mặc dù một tài liệu XML well-formed không cần có một Processing Instruction, nhưng thông thường ta sẽ để ở hàng đầu tài liệu, được gọi là prologue

  9. Processing Instructions và Comments <?xml version="1.0" encoding="utf-8" standalone="yes"?> <Order> <OrderDate>2002-6-14</OrderDate> <Customer>Helen Mooney</Customer> <Item> <ProductID>1</ProductID> <Quantity>2</Quantity> </Item> </Order>

  10. Processing Instructions và Comments • Có một loại Processing Instruction khác cũng khá thông dụng là cho biết tên stylesheet của XML này <?xml-stylesheet type="text/xsl“ ref="order.xsl"?> • Có thể thêm Comment bằng cách dùng cặp Tags <!-- và --> .

  11. Namespace • Cho ta cách dùng một Elemet để nói đến hai dữ liệu khác nhau trong cùng một tài liệu XML.

  12. Namespace <?xml version="1.0"?> <BookOrder OrderNo="1234"> <OrderDate>2001-01-01</OrderDate> <Customer> <Title>Mr.</Title> <FirstName>Graeme</FirstName> <LastName>Malcolm</LastName> </Customer> <Book> <Title>Treasure Island</Title> <Author>Robert Louis Stevenson</Author> </Book> </BookOrder>

  13. Namespace • Để tránh sự nhầm lẫn, bạn có thể sử dụng Namespace để nói rõ tên Element ấy thuộc về URI (Univeral Resource Identifier) nào . • Một URI có thể là một URL hay một chỗ nào định nghĩa nó. • Khai báo một Namespace trong một Element bằng cách dùng Attribute xmlns để khai báo một default namespace .

  14. Name space • Đây là một thư viện sách có phần tử gốc là <library> <library> <book> <title>XML</title> </book> </library>

  15. Name space • Không gian tên dcs được tạo ra cho thư viện như sau <library xmlns:dcs=“http://www.incoll4.edu.vn/lib”> <book> <title>XML</title> </book> </library>

  16. Name space • Áp dụng không gian tên dcs cho tất cả các thẻ nào trong tài liệu mà ta muốn dùng chúng duy nhất và đọc quyền về dcs <dcs:library xmlns:dcs=“http://www.incoll4.edu.vn/lib”> <dcs:book> <dcs:title>XML</dcs:title> </dcs:book> </dcs:library>

  17. Namespace <?xml version="1.0"?> <BookOrder OrderNo="1234"> <OrderDate>2001-01-01</OrderDate> <Customer xmlns="http://www.northwindtraders.com/customer"> <Title>Mr.</Title> <FirstName>Graeme</FirstName> <LastName>Malcolm</LastName> </Customer> <Book xmlns="http://www.northwindtraders.com/book”> <Title>Treasure Island</Title> <Author>Robert Louis Stevenson</Author> </Book> </BookOrder>

  18. <dcs:library xmlns:dcs=“http://www.incoll4.edu.vn/lib” xmlns:amazon=“http://www.amazon.com/lib” <dcs:book> <dcs:title>XML</title> </dcs:book> <amazon:book> <amazon:title>XML</amazon:title> </amazon:book> </dcs:library>

  19. XÂY DỰNG TÀI LIỆU XML • Document Type Define (DTD) • XML schema

  20. Document Type Define (DTD) • DTD là một bộ những qui tắc cú pháp cho nhãn. Nó cho bạn biết những nhãn nào bạn có thể sử dụng trong một tài liệu, chúng nên được xếp theo thứ tự nào, những nhãn nào có thể xuất hiện bên trong các nhãn khác, những nhãn nào có các thuộc tính,... • Một DTD có thề là một bộ phận của một tài liệu XML, nhưng thường nó là một tài liệu riêng biệt hoặc một loại các tài liệu.

  21. Document Type Define (DTD) <?xml version="1.0"?> <!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend</body> </note>

  22. Document Type Define (DTD) <?xml version="1.0"?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>

  23. Document Type Define (DTD) Và file “note.dtd” <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> http://www.scribd.com/doc/40179716/Bai02-XML

  24. XML schema • XML Schema mô tả cấu trúc của tài liệu XML, thay thế cho DTD • XML Schema mô tả: • Các phần tử và thuộc tính trong tài liệu XML • Thứ tự và số lượng các phần tử con • Các kiểu dữ liệu của phần tử và thuộc tính

  25. Lý do sử dụng XML Schema • XML Schema là một sự thay thế cho DTD • Hỗ trợ nhiều loại dữ liệu • Sử dụng cú pháp XML • Bảo toàn sự giao tiếp dữ liệu • Ràng buộc khóa và tham chiếu mạnh hơn DTD • Tích hợp với namespace

  26. XML Schema • Cấu trúc chung ( thông dụng ) của các tài liệu trong XML Shema như sau • <?xmlversion="1.0"encoding="utf-8"?> • <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">Đặc tả các thẻĐặc tả các kiểu</xs:schema> • http://www.scribd.com/doc/38247160/Giao-Trinh-XML

  27. XML Schema (Ví dụ <?xml version="1.0"?> <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” targetNamespace=“http://www.w3schools.com” xmlns=“http://www.w3schools.com” elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

  28. Schema và Namespace <schema xmlns=http://www.w3.org/2001/XMLSchema targetNamespace=“http://xyz.edu/Admin”> ….. </schema> • http://www.w3.org/2001/XMLSchema: namespace của các từ khóa dùng trong sự xác định lược đồ XML, ví dụ: schema, targetNamespace,… • targetNamespace: định nghĩa namespace của lược đồ được xác định trong tài liệu <schema>…</schema> trên

  29. Tham chiếu đến một XML Schema <?xml version="1.0"?> <note xmlns=http://www.w3schools.com xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.w3schools.com note.xsd"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> xsi:schemaLocation nghĩa là lược đồ của namespace http://www.w3schools.com được tìm thấy ở http://www.w3schools.com note.xsd

  30. LẬP TRÌNH VỚI XML • 1. Xpath • 2. Document Object Model (DOM)

  31. Xpath • Xpath đóng vai trò quan trọng trong công tác trao đổi dữ liệu giữa các máy tính hay giữa các chương trình ứng dụng • Là các biểu thức dùng để truy xuất đến một hoặc nhiều thẻ trong tài liệu XML. • Được sử dụng trong XSLT để chuyển đổi cấu trúc nội dung tài liệu XML

  32. Xpath (cú pháp đơn giản) /: Đường dẫn tuyệt đối bắt đầu từ node gốc của tài liệu đến 1 node cụ thể - /AAA: nút gốc <AAA> <BBB/> <CCC/> <DDD> <CCC/> </DDD> </AAA> -/AAA/BBB: nút B là con của A - /AAA/DDD/CCC: C – con D – con A (gốc) //: Nút ở độ sâu bất kì //CCC: nút CCC ở độ sâu bất kì

  33. Xpath (cú pháp đơn giản) <AAA> <BBB> <CCC/> <BBB> <CCC/> </BBB> </BBB> </AAA> - /AAA/*: Tất cả các nút con trực tiếp của AAA - /*/BBB: Tất cả các nút B ở cấp thứ 2 //*: TẤT CẢ CÁC NODE

  34. Xpath (cú pháp đơn giản) [ ]: Truy xuất đến các node theo thứ tự nào đó hoặc theo chỉ mục. Ngoài ra, có thể dùng để chỉ định biểu thức điều kiện chọn lựa node <AAA> <BBB/> <BBB/> <BBB> <CCC> content </CCC> </BBB> <BBB/> </AAA> - /AAA/BBB[1]: Nút BBB thứ 1 (con của AAA) - /AAA/BBB[2]: Nút BBB thứ 2 (con của AAA) - /AAA/BBB[last()]: Nút BBB cuối cùng - /AAA/BBB[CCC=“content”]: Nút BBB thứ 3 (có nút con CCC với nội dung là content )

  35. Xpath (cú pháp đơn giản) @: Truy xuất đến thuộc tính <AAA> <BBB id=“b1”/> <BBB id=“b2”/> <CCC name=“ccc”/> <CCC/> </AAA> Những node BBB có thuộc tính id Những node CCC có giá trị thuộc tính name = ccc Những node CCC có thuộc tính - /AAA/CCC[not(@*)]: Những node CCC KHÔNG có thuộc tính

  36. Xpath XPATH: Axis – dùng để chọn các node trong mối quan hệ với node hiện thời child:: : Chọn tất cả node con của node hiện thời <AAA> <BBB> <DDD/> <BBB/> <ECC> <EEE/> <ECC/> <CFB/> </AAA> - /AAA/child::ECC /AAA/ECC - //BBB/child::* /AAA/BBB/DDD

  37. Xpath descendant:: : Tất cả các thẻ “con cháu” <AAA> <BBB> <DDD> <EEE/> </DDD> </BBB> </AAA> /AAA/child::* <AAA> <BBB> <DDD> <EEE/> </DDD> </BBB> </AAA> /AAA/descendant::* descendant-or-self:: = descendant:: + context node

  38. Xpath parent:: : Thẻ cha <AAA> <BBB> <DDD/> <BBB/> <ECC> <EEE/> <ECC/> <CFB/> </AAA> - //BBB/parent::* Thẻ cha của BBB - //EEE/parent::ECC Thẻ cha của ECC

  39. Xpath following-sibling:: : Tất cả các thẻ “em” preceding-sibling:: : Tất cả các thẻ “anh” <AAA> <BBB> <DDD/> <EEE/> <FFF/> <GGG/> </BBB> </AAA> //EEE/following-sibling::* <AAA> <BBB> <DDD/> <EEE/> <FFF/> <GGG/> </BBB> </AAA> <AAA> <BBB> <DDD/> <EEE/> <FFF/> <GGG/> </BBB> </AAA> //EEE/preceding-sibling::*

  40. Xpath following:: : Tất cả các thẻ có thẻ mở xuất hiện sau thẻ đóng của thẻ hiện hành preceding::: Tất cả các thẻ có thẻ đóng xuất hiện trước thẻ mở của thh //BBB/following::* <AAA> <BBB> <DDD/> </BBB> <CCC> <EEE/> </CCC> </AAA> //EEE/preceding::* <AAA> <BBB> <DDD/> </BBB> <CCC> <EEE/> </CCC> </AAA>

  41. Xpath <AAA> <BBB> <DDD/> </BBB> <CCC> <EEE> <FFF/> </EEE> <GGG/> </CCC> </AAA> - //EEE/ancestor::* - //EEE/descendant::* - //EEE/following::* - //EEE/preceding::* - //EEE/self::* 5 axis trên tạo thành 5 phân hoạch của tài liệu xml Không overlap nhau “Or” ( | ) lại sẽ cho kết quả là tất cả các node của tài liệu

  42. Document Object Model (DOM) • DOM là một giao diện ứng dụng (API). • DOM thường có dạng là một cây cấu trúc dữ liệu (Tree View), được dùng để truy xuất các tài liệu dạng HTML và XML.

  43. Document Object Model (DOM) • DOM có nhiều cấp độ : • Cấp 0 : Bao gồm mọi chi tiết DOM theo qui định của từng nhà phát triển riêng biệt tồn tại trước khi DOM cấp độ 1 ra đời. Ví dụ: document.images, document.forms, document.layers, và document.all • Cấp 1 : Cách duyệt qua tài liệu (cấu trúc cây) của DOM (HTML và XML) và thao tác nội dung (bao gồm việc thêm thành phần). Các thành phần riêng cho HTML cũng được đưa vào.

  44. Document Object Model (DOM) • Cấp 2 :Hỗ trợ không gian tên XML, khung nhìn có lọc (filtered views) và các sự kiện DOM • Cấp 3 : Nhằm nâng cao các khả năng của DOM, cấp độ 3 chứa 6 bản mô tả chi tiết kĩ thuật khác nhau: 1) the DOM Level 3 Core; 2) the DOM Level 3 Load and Save; 3) the DOM Level 3 XPath; 4) the DOM Level 3 Views and Formatting; 5) DOM Level 3 Requirements; and 6) the DOM Level 3 Validation.

  45. DOM (vd) <?xml version="1.0"?> <order number="312597"> <date>2000/1/1</date> <customer id="216A">Company A</customer> <item> <part-number warehouse="Warehouse 11"> E16-25A</part-number> <description>Production-Class Widget</description> <quantity>16</quantity> </item> </order>

  46. XSLT • XmlDocument và XPathDocument • XmlReader và XmlWriter

  47. XSLT • XSL (Extension Style Language) để chuyển dữ liệu của XML ra dạng HTML . • XSL chia làm hai dạng : • XSLT (XSL Transformation) : ngôn ngữ XSL chuyên về chuyển dịch – thực hiện việc rút trích dữ liệu XML đưa vào khuôn dạnh HTML . • XSLFO (XSL Formating Object) : ngôn ngữ XSL chuyên về định dạng – cung cấp các thuộc tính định dạng tài liệu cho phong phú và đa dạng hơn như font, chữ, màu sắc, hình ảnh .

  48. Sơ đồ chuyển đổi dữ liệu

  49. Cấu trúc tổng quát file XSL

More Related