Bài giảng Phát triển Web nâng cao - Chương 8 giới thiệu về 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). Cùng tìm hiểu thêm về XML qua bài giảng sau đây.
Trang 1CHƯƠNG VIII:
XML
Lý thuyết 3 tiết
Thực hành 6 tiết
Trang 2CƠ BẢN VỀ XML
Trang 3Giới thiệu XML
Language
được phát triển từ một ngôn ngữ đánh dấu
Standard Generalized Markup Language
(SGML)
Trang 4Cấu trúc của tài liệu XML
được bắt đầu với một thẻ bắt đầu (start-tag) và một thẻ kết thúc (end-tag)
tử này
có thể là một phần tử khác
Trang 5Cấu trúc của tài liệu XML (Vd)
Trang 6Cấ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)
Trang 7Một tài liệu XML well-formed
Document Element.
một cặp ngoặc kép hay một cặp ngoặc kép
Trang 8Processing Instructions và Comments
Processing Instructions (chỉ thị về cách chế
biến) nằm trong cặp tag <? Và ?>
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
Trang 9Processing Instructions và Comments
Trang 10Processing Instructions và Comments
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"?>
Tags <! và >
Trang 11dữ liệu khác nhau trong cùng một tài liệu
XML
Trang 13bằng cách dùng Attribute xmlns để khai báo
một default namespace
Trang 15XÂY DỰNG TÀI LIỆU XML
Trang 16Document Type Define (DTD)
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,
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.
Trang 17Document 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)>
Trang 18Document Type Define (DTD)
Trang 19Document 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)>
Trang 21Lý do sử dụng XML Schema
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
Trang 22XML Schema (Ví dụ
<?xml version="1.0"?>
< xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” targetNamespace=“http://www.w3schools.com”
<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 >
Trang 23đồ được xác định trong tài liệu <schema>…
</schema> trên
Trang 24Tham chiếu đến một XML Schema
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
Trang 25LẬP TRÌNH VỚI XML
Trang 26trao đổi dữ liệu giữa các máy tính hay giữa các chương trình ứng dụng
hoặc nhiều thẻ trong tài liệu XML
trúc nội dung tài liệu XML
Trang 27Xpath (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
- /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ì
Trang 28Xpath (cú pháp đơn giản)
Trang 29Xpath (cú pháp đơn giản)
- /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 )
[ ]: 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
Trang 30Xpath (cú pháp đơn giản)
Trang 31child:: : Chọn tất cả node con của node hiện thời
XPATH: Axis – dùng để chọn các node trong mối quan hệ với node hiện thời
Trang 33- //EEE/ parent:: ECC
Thẻ cha của ECC
Trang 36Không overlap nhau
“Or” ( | ) lại sẽ cho kết quả là tất
cả các node của tài liệu
Trang 37Document Object Model (DOM)
liệu (Tree View), được dùng để truy xuất các tài liệu dạng HTML và XML
Trang 38Document Object Model (DOM)
DOM có nhiều cấp độ :
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.
Trang 39Document 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.
Trang 41 XSLT
Trang 42 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
Trang 43Sơ đồ chuyển đổi dữ liệu
Trang 44Cấu trúc tổng quát file XSL
Trang 45Nhúng tài liệu XSLT vào tài liệu XML
Trang 47XmlDocument và XPathDocument
Trang 48XML Document
Trang 50Phâ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
Trang 51Duyệt tài liệu XML
Trang 52tác nào của lớp XmlDocument
dụng XPathDocument
Trang 53Ví dụ :
Trang 54XmlReader và XmlWriter
Trang 56Sử 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);
Trang 60Ghi thuộc tính
Writer.WriteStartElement(“employee”);Writer.WriteStartAttribute(“id”);
Trang 61Bài tổng hợp
Trang 62IV Cơ sở dữ liệu và XML
liệu trên Internet
việc chuyển nội dung một dataset đến client
và ngược lại
Trang 63IV Cơ sở dữ liệu và XML (tt)
Trang 64Tổng quan XML và Datasets
Trang 65Các phương thức của đối tượng DataSet
DataSet ds = new DataSet();
Ds.ReadXml(Server.MapPath(“filename.xml”));
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(strSql,conn); da.Fill(ds);
ds.WriteXml(Server.MapPath(“filename.xml”));
String strXmlDS = ds.GetXml();