Giáo trình Giới thiệu lập trình ASP.Net - Chương VIII: XML

ppt 65 trang hapham 50
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Giới thiệu lập trình ASP.Net - Chương VIII: XML", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptgiao_trinh_gioi_thieu_lap_trinh_asp_net_chuong_viii_xml.ppt

Nội dung text: Giáo trình Giới thiệu lập trình ASP.Net - Chương VIII: XML

  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) F10 Shimano 47.76
  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. 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 . 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 2002-6-14 Helen Mooney 1 2
  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 Có thể thêm Comment bằng cách dùng cặp Tags .
  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 2001-01-01 Mr. Graeme Malcolm Treasure Island Robert Louis Stevenson
  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. Namespace 2001-01-01 Mr. Graeme Malcolm Treasure Island Robert Louis Stevenson
  15. XÂY DỰNG TÀI LIỆU XML Document Type Define (DTD) XML schema
  16. 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.
  17. Document Type Define (DTD) ]> Tove Jani Reminder Don't forget me this weekend
  18. Document Type Define (DTD) Tove Jani Reminder Don't forget me this weekend!
  19. Document Type Define (DTD) Và file “note.dtd”
  20. 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
  21. 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
  22. XML Schema (Ví dụ☺
  23. Schema và Namespace 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 trên
  24. Tham chiếu đến một XML Schema Tove Jani Reminder Don't forget me this weekend! xsi:schemaLocation nghĩa là lược đồ của namespace được tìm thấy ở note.xsd
  25. LẬP TRÌNH VỚI XML 1. Xpath 2. Document Object Model (DOM)
  26. 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
  27. 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: 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ì
  28. Xpath (cú pháp đơn giản) - /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
  29. 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[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 content - /AAA/BBB[CCC=“content”]: Nút BBB thứ 3 (có nút con CCC với nội dung là content )
  30. Xpath (cú pháp đơn giản) @: Truy xuất đến thuộc tính 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
  31. 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/child::ECC /AAA/ECC - //BBB/child::* /AAA/BBB/DDD
  32. Xpath descendant:: : Tất cả các thẻ “con cháu” /AAA/child::* /AAA/descendant::* descendant-or-self:: = descendant:: + context node
  33. Xpath parent:: : Thẻ cha - //BBB/parent::* Thẻ cha của BBB - //EEE/parent::ECC Thẻ cha của ECC
  34. Xpath following-sibling:: : Tất cả các thẻ “em” preceding-sibling:: : Tất cả các thẻ “anh” //EEE/following-sibling::* //EEE/preceding-sibling::*
  35. 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::* //EEE/preceding::*
  36. Xpath - //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
  37. 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.
  38. 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.
  39. 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.
  40. DOM (vd) 2000/1/1 Company A E16-25A Production-Class Widget 16
  41. XSLT XmlDocument và XPathDocument XmlReader và XmlWriter
  42. 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 .
  43. Sơ đồ chuyển đổi dữ liệu
  44. Cấu trúc tổng quát file XSL
  45. Nhúng tài liệu XSLT vào tài liệu XML
  46. Một số phần tử XSLT Template Apply-templates Value-of Sort Copy-of Copy
  47. XmlDocument và XPathDocument XmlDocument là đối tượng tài liệu .
  48. XML Document
  49. Các thuộc tính của lớp XmlDocument Attributes : Tập các thuộc tính của node hiện hành . Childnodes : Trả về các con của node hiện hành . DocumentElement : lấy phần tử gốc . DocumentType FirstChild, lastChild, nextSibling, nodeName, nodeType, nodeValue .
  50. Phân tích tài liệu XML Tài liệu nạp từ tập tin và tự động tạo cây DOM : ◼ XmlDocument doc = new XmlDocument(); ◼ doc.Load(xmlPath); Lưu trữ phần tử gốc : ◼ XmlNode rootNode = doc.DocumentElement;
  51. Duyệt tài liệu XML
  52. XPathDocument XPathDocument tương thích cho bất kỳ thao tác nào của lớp XmlDocument. Khi cần thao tác nhanh chúng ta có thể sử dụng XPathDocument .
  53. Ví dụ :
  54. XmlReader và XmlWriter
  55. XmlReader Một số thuộc tính của XmlReader : ◼ AttributeCount . ◼ EOF . ◼ Depth : Xác định độ sâu của node hiện hành ◼ HasAttribute ◼ HasValue ◼ IsEmptyElement ◼ Name ◼ Value ◼ ValueType
  56. Sử dụng XmlReader Không gian tên : Using System.Xml Mở tài liệu XML : xmlFile = @Server.MapPath(“”) + “\\file_xml” ; Tạo đối tượng sử dụng phương thức Create() XmlReader reader = XmlReader.Create(xmlFile); Đọc tài liệu while(reader.Read()) { Response.Write(reader.Name); }
  57. XmlWriter Các thuộc tính : ◼ Settings : tạo đối tượng XmlWriterSettings ◼ WriteState ◼ XmlLang ◼ XmlSpace
  58. Sử dụng XmlWriter Bắt đầu : ◼ WriteStartDocument() Ghi chỉ thị : Kết thúc : ◼ WriteEndDocument() Đóng các thuộc tính và phần tử
  59. Ghi phần tử Minh Writer.WriteStartElement(“name”); Writer.WriteElementString(“firstName”,”Minh”) Writer.WriteEndElement()
  60. Ghi thuộc tính Writer.WriteStartElement(“employee”); Writer.WriteStartAttribute(“id”); Writer.WriteString(“1”); Writer.WriteEndAttribute(); Writer.WriteEndElement(); Kết quả : ◼
  61. Bài tổng hợp
  62. IV. Cơ sở dữ liệu và XML XML là định dạng chung cho việc thay đổi dữ liệu trên Internet Datasets xuất dữ liệu như XML XML cung cấp một định dạng thuận lợi cho việc chuyển nội dung một dataset đến client và ngược lại .
  63. IV. Cơ sở dữ liệu và XML (tt) Các đối tượng XML đồng bộ
  64. Tổng quan XML và Datasets
  65. Các phương thức của đối tượng DataSet Sử dụng ReadXml để nạp dữ liệu từ file hoặc dòng DataSet ds = new DataSet(); Ds.ReadXml(Server.MapPath(“filename.xml”)); Sử dụng WriteXml để ghi dữ liệu XML vào file, stream DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(strSql,conn); da.Fill(ds); ds.WriteXml(Server.MapPath(“filename.xml”)); Sử dụng GetXml để ghi dữ liệu vào biến chuỗi String strXmlDS = ds.GetXml();