Giáo trình XML tiếng việt

69 399 0
Giáo trình XML tiếng việt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục Lục Mục Lục Chương TỔNG QUAN CÔNG NGHỆ XML I Khái niệm tài liệu XML I.1 Khái niệm XML I.2 Phân biệt XML & HTML I.3 Điều XML không làm I.4 Mở rộng thẻ XML người dùng I.5 XML chuẩn thay HTML Quy định chuẩn XML II II.1 Quy định : Hệ thống thẻ đánh dấu II.2 Quy định : Quan hệ lồng (chứa trong) thẻ nội dung II.3 Quy định : Thẻ đánh dấu gốc III Tổng quan công nghệ XML III.1 Khái niệm công nghệ XML III.2 Một số ứng dụng công nghệ XML Chương CẤU TRÚC TÀI LIỆU XML 12 I Cấu trúc XML (XML Tree Syntax) 12 I.1 Cây XML (XML Tree) 12 I.2 Các quy định cấu trúc XML 14 II Các thành phần XML (XML Elements) 15 II.1 Khái niệm 16 II.2 Quy định đặt tên 16 II.3 Mở rộng thành phần XML 17 III Thuộc tính thành phần XML (Attribute) 17 III.1 Giá trị thuộc tính phải đặt dấu nháy 17 III.2 Thành phần XML Thuộc Tính 18 III.3 Thuộc tính dùng cho metadata (siêu liệu) 18 IV XML Namespace 19 IV.1 Vấn đề xung đột tên thành phần XML 19 IV.2 Giải xung đột 20 IV.3 XML Namespace 20 IV.4 Namespace mặc định 21 IV.5 Ứng dụng 22 Chương ĐẶC TẢ NỘI DUNG & CẤU TRÚC TÀI LIỆU XML 23 I Nội dung cấu trúc tài liệu XML 23 I.1 Nội dung tài liệu XML 23 I.2 Cấu trúc tài liệu XML 24 Đặc tả nội dung tài liệu XML 27 II II.1 Sử dụng thẻ thực thể 27 II.2 Sử dụng tên 29 Đặc tả cấu trúc tài liệu XML 31 III III.1 Ngôn ngữ đặc tả DTD 31 III.2 Ngôn ngữ đặc tả XML Schemas 39 Chương TRUY XUẤT TÀI LIỆU VỚI DOM (DOCUMENT OBJECT MODEL) 51 Mô hình đối tượng DOM 51 I I.1 Mô hình đối tượng DOM 51 I.2 Khái niệm DOM 53 I.3 Hệ thống đối tượng DOM 53 II Các kỹ thuật lập trình với DOM 56 II.1 Đọc tài liệu XML 56 II.2 Ghi tài liệu XML 57 II.3 Đọc đối tượng từ tập tin XML 58 II.4 Ghi đối tượng vào tập tin XML 60 II.5 Thể đối tượng 62 III Ngôn ngữ XPath 62 Chương BIẾN ĐỔI TÀI LIỆU XML VỚI XSLT 69 I Giới thiệu XSLT 69 I.1 Cấu trúc chương trình XSLT 69 I.2 Thực thi chương trình XSLT 69 I.3 Các ví dụ minh hoạ 69 Các thao tác xử lý 69 II II.1 Rút trích kết xuất thông tin 69 II.2 Rẽ nhánh 69 II.3 Vòng lặp 69 II.4 Hàm 69 III Các kỹ thuật xử lý 69 III.1 XML  HTML 69 III.2 XMLXML 69 Giáo trình ngôn ngữ XML Chương TỔNG QUAN CÔNG NGHỆ XML I Khái niệm tài liệu XML I.1 Khái niệm XMLXML viết tắt eXtensible Markup Language, ngôn ngữ đánh dấu mở rộng (giống HTML)  XML thiết kế để mang lưu trữ liệu, không trình bày liệu  Các thẻ XML không định nghĩa trước Người sử dụng tự định nghĩa thẻ  XML thiết kế để tự miêu tả  Văn có cấu trúc theo định dạng chuẩn XML cho phép biểu diễn thông tin đối tượng thực tế o Đối tượng x thuộc loại X thực tế => thẻ X tài liệu XML o Thuộc tính đỗi tượng x thuộc loại X thực tế => thuộc tính a thẻ X tài liệu XML o Ví dụ 1: phân số 4/5 thực tế  thẻ o Ví dụ 2: dãy số nguyên bao gồm số 1, 4, 5, -3  thẻ I.2 Phân biệt XML & HTML XML thay cho HTML XML HTML thiết kế với mục đích khác :  XML thiết kế để vận chuyển lưu trữ liệu, tập trung vào việc xác định liệu XML ứng dụng loại ứng dụng : Winform, webform, mobile, service  HTML thiết kế để trình bày liệu, tập trung việc liệu trình bày, trông HTML dùng ứng dụng web để trình bày, định dạng liệu, thông tin ứng dụng web HTML thể thông tin, XML mang chứa thông tin I.3 Điều XML không làm Có chút khó khăn để hiểu XML không làm điều điều XML tạo để xây dựng cấu trúc, lưu trữ vận chuyển liệu Biên soạn Nguyễn Minh Thành Giáo trình ngôn ngữ XML Xét ví dụ ghi gửi cho Tove từ Jani lưu trữ XML sau: Tove Jani Reminder Don't forget me this weekend! Ghi tự miêu tả rõ về Ghi có thông tin người gửi (from), người nhận (to) có tiêu đề (heading) nội dung (body) Tuy nhiên, văn vản XML không làm điều khác việc bao phủ liệu thẻ (tags) Người sử dụng phải viết ứng dụng để gửi, nhận trình bày I.4 Mở rộng thẻ XML người dùng Các thẻ ví dụ note , không định nghĩa chuẩn XML Những thẻ tạo tác giả văn XML Chính ngôn ngữ XML không định nghĩa thẻ trước, người sử dụng tự định nghĩa thẻ riêng minh Trong đó, thẻ ngôn ngữ HTML định nghĩa trước Trong văn HTML sử dụng thẻ định nghĩa chuẩn HTML Vd : thẻ

, I.5 XML chuẩn thay HTML XML sử bổ sung cho HTML Điều quan trọng phải hiểu XML thay HTML Trong hầu hết ứng dụng (đặc biệt ứng dụng web), XML sử dụng để mang chuyển lưu trữ liệu, HTML sử dụng ứng dụng web để định dạng trình bày, thể liệu Một phát biểu miêu tả tốt cho XML : “XML công cụ độc lập với phần cứng phần mềm để mang liệu.” Ngày nay, ngôn ngữ XML sử dụng đầu hết ứng dụng đặc biệt ứng dụng website II Quy định chuẩn XML II.1 Quy định : Hệ thống thẻ đánh dấu Các thẻ đánh dấu ngôn ngữ theo định dạng chuẩn XML bao gồm loại thẻ: thẻ có nội dung thẻ rỗng Thẻ có nội dung có dạng : nội dung Các thẻ rỗng có dạng : Các thẻ có (hoặc không) thuộc tính với tên khác thẻ Thuộc tính thẻ có dạng : Tên_thuộc_tính="giá trị" Biên soạn Nguyễn Minh Thành Giáo trình ngôn ngữ XML Hay Tên_thuộc_tính=ˈgiá trịˈ Ví dụ : với tài liệu XML thể đối tượng đường tròn bán kính R=5, tâm O(4,2) Trong ví dụ : II.2 - Thẻ có nội dung thẻ DUONG_TRON - Thẻ rỗng thẻ DIEM - Thẻ DUONG_TRON có thuộc tính Ban_kinh - Thẻ DIEM có thuộc tính x, y Quy định : Quan hệ lồng (chứa trong) thẻ nội dung Nội dung bên thẻ có nội dung thẻ khác (có nội dung hay rỗng) Khi thẻ A có nội dung thẻ B ta gọi : Thẻ A cha thẻ B, thẻ A chứa thẻ B Thẻ B thẻ A, thẻ B chứa thẻ A Quy định yêu cầu thẻ với quan hệ lồng hoàn toàn Khi thẻ A thẻ cha thẻ B, A phải chứa phần bắt đầu phần kết thúc thẻ B Ví dụ : Thẻ A cha thẻ B với dạng lồng hoàn toàn (hợp lệ) Thẻ A cha thẻ B với dạng lồng không hoàn toàn (không hợp lệ) II.3 Quy định : Thẻ đánh dấu gốc Quy định yêu cầu tài liêu XML phải có (một một) thẻ chứa (trực tiếp hay gián tiếp) tất thẻ lại (nếu có) Ví dụ : tài liệu XML biểu diễn thông tin đường tròn không hợp lệ thẻ gốc Biên soạn Nguyễn Minh Thành Giáo trình ngôn ngữ XML III Tổng quan công nghệ XML III.1 Khái niệm công nghệ XML Công nghệ thông tin III.1.1  Ngành khoa học nghiên cứu việc xây dựng hệ thống tin học tương ứng với hệ thống thực tế  Ngành khoa học nghiên cứu việc biểu diễn xử lý thông tin hệ thống tin học tương ứng với thông tin nghiệp vụ hệ thống thực tế  Hai hướng nghiên cứu Công Nghệ Thông Tin o Công nghệ phần cứng o Công nghệ phần mềm  Công nghệ xử lý thông tin  Một hướng nghiên cứu công nghệ phần mềm  Ngành khoa học nghiên cứu mô hình, phương pháp, kỹ thuật thông tin  Các mô hình xử lý công nghệ thông tin : xử lý o Thủ tục / Hàm o Đơn thể o Đối tượng o Thành phần o Dịch vụ o  Công nghệ biểu diễn thông tin  Một hướng nghiên cứu công nghệ phần mềm  Ngành khoa học nghiên cứu mô hình, phương pháp, kỹ thuật biểu diễn thông tin  Các mô hình biểu diễn công nghệ thông tin :  Tập tin (file) : thông tin lưu giữ nhớ phụ  Cơ sở liệu (Database) : Thông tin lưu giữ nhớ phụ  Cấu trúc liệu (Data structure) : thông tin xử lý nhớ  Trang web (web page) : thông tin thể  Luồng liệu (Data stream) : thông tin trao đổi nội bên hệ thống tin học hay hệ thống tin học Công nghệ XML III.1.2  Thuộc loại công nghệ biểu diễn thông tin  Hình thành từ nhu cầu vấn đề cần giải việc trao đổi thông tin  Có phạm vi nghiên cứu ứng dụng tất mô hình biểu diễn công nghệ biểu diễn thông tin Biên soạn Nguyễn Minh Thành Giáo trình ngôn ngữ XML  Có hướng nghiên cứu cho phép ứng dụng mô hình xử lý thông tin thuộc công nghệ xử lý thông tin  Nhu cầu trao đổi thông tin a Trao đổi thông tin nội bên hệ thống tin học Sự phát triển quy mô, độ phức tạp, phạm vi sử dụng hệ thống tin học dẫn đến phân rã hệ thống thành hệ thống (kiến trúc đa tầng ví dụ điển hình phân rã)  nhu cầu trao đổi thông tin bên hệ thống b Trao đổi thông tin hệ thống tin học Sự đời phát triển Internet ứng dụng web, đặc biệt ứng dụng thương mại điện tử  nhu cầu trao đổi thông tin ứng dụng Các yêu cầu cao chất lượng phần mềm (tiện dụng, tương thích, bảo mật ) khả đáp ứng cao, chuyên biệt số hệ thống có sẵn (web browser, excel, word, fax )  nhu cầu trao đổi thông tin hệ thống xây dựng hệ thống có sẵn  Mô hình trao đổi thông tin Mô hình trao đổi thông tin trước XML đời chủ yếu dựa công nghệ luồng liệu (Data Stream) với dạng :  Dạng nhị phân : liệu trao đổi chuỗi byte theo cấu trúc ngữ nghĩa riêng biệt ứng dụng  Dạng văn : liệu trao đổi chuỗi ký tự theo cách mã hoá chung cấu trúc ngữ nghĩa vãn riêng biệt cho ứng dụng Cả dạng trao đổi không thích hợp với nhu cầu phía với khuyết điểm “Thông tin trao đổi có cấu trúc ngữ nghĩa riêng biệt cho ứng dụng”  Nhu cầu định dạng chuẩn chung trao đổi thông tin  Sự đời công nghệ XML Công nghệ XML đời kết nghiên cứu dạng biểu diễn thông tin cần trao đổi hệ thống tin học Dạng biểu diễn cần thoả mãn yêu cầu sau:  Cho phép trao đổi phạm vi rộng (internet)  Dễ dàng việc kết xuất tiếp nhận trao đổi  Tuân theo định dạng chuẩn chung chấp nhận hỗ trợ nhiều môi trường phát triển phần mềm Công nghệ XML đời đề xuất dạng biểu diễn thích hợp cho hợp yêu cầu (tài liệu XML) Tuy nhiên, với chất hình thành mình, phạm vi ứng dụng XML không dừng việc trao đổi thông tin mà bao hàm vấn Biên soạn Nguyễn Minh Thành Giáo trình ngôn ngữ XML đề biểu diễn thông tin khác : lưu trữ thông tin, cấu trúc liệu, thể thông tin, v.v (chi tiết phần ứng dụng XML) III.2 Một số ứng dụng công nghệ XML III.2.1 Trao đổi thông tin Trao đổi thông tin xuất phát điểm cho hình thành công nghệ XML Trao đổi thông tin ứng dụng chủ yếu XML Có dạng trao đổi thông tin :  Dạng : trao đổi thông tin nội thành phần hệ thống tin học  Dạng : trao đổi thông tin hệ thống tin học khác XML ứng dụng tốt cho dạng trao đổi thông tin Khi A có nhu cầu trao đổi thông tin với B Dạng :  A, B thành phần bên hệ thống tin học (thành phần giao diện, xử lý hay lưu trữ)  Tài liệu XML thiết kế cho việc sử dụng nội Dạng :  A hệ thống tin học xem xét  B hệ thống có trước với khả chuyên biệt  A phải xử dụng tài liệu XML có cấu trúc B đề xuất Ví dụ : XML xử dụng để  Trao đổi thông tin tầng ứng dụng (được thiết kế theo kiến trúc đa tầng)  Trao đổi thông tin tầng với hệ thống khác bên Cụ thể  Sử dụng XML trao đổi thông tin hệ thống lưu trữ (thông thường hệ quản trị sở liệu, hay tập tin) tầng xử lý liệu  Sử dụng XML trao đổi thông tin giữ tầng liệu tầng xử lý nghiệp vụ  Sử dụng XML trao đổi thông tin tầng xử lý nghiệp vụ tầng thể  Sử dụng XML trao đổi thông tin tầng xử lý nghiệp vụ (khi hệ thống có nhiều tầng xử lý nghiệp vụ) III.2.2 Lưu trữ thông tin Có cách ứng dụng XML để lưu trữ liệu bên hệ thống tin học  Cách : sử dụng tập tin XML để lưu trữ liệu  Cách : số liệu lưu trữ dạng tập tin XML, số khách lưu trữ bên sở liệu  Cách : Lưu toàn bên sở liệu, tài liệu XML nhúng vào bảng liệu Biên soạn Nguyễn Minh Thành Giáo trình ngôn ngữ XML Ưu khuyết điểm cách ứng dụng XML  Cách :  Ưu điểm : không cần hỗ trợ hệ trị sở liệu  dễ cài đặt, triển khai  Khuyết điểm : tính hiệu không cao khối lượng liệu lớn  Nhận xét : phần mềm trò chơi ứng viên tốt cho ứng dụng XML theo cách Các phần mềm quản lý không thích hợp cho cách ứng dụng Rất thích hợp cho ứng dụng môi trường (hoặc chưa có) hệ quản trị CSDL : điện thoại di động, máy công cụ  Cách 2, :  Ưu điểm : kết hợp tốt ưu điểm mô hình lưu trữ thông tin : XML sở liệu  Khuyết điểm : cần có cân nhắc định đắn loại thông tin dùng hình thức  Nhận xét : cách cách xử dụng phổ biến Cấu hình hệ thống tin học (phân hệ ứng dụng) loại thông tin thường chọn để lưu trữ theo dạng tài liệu XML Đặc biệt ứng dụng web, XML sở liệu dùng để phân chia liệu với trang HTML Và thông tin cấu hình website, liệu nhỏ thường lưu trữ file XML III.2.3 Cấu trúc liệu Với mô hình DOM (sẽ giới thiệu phần sau), ta sử dụng ngôn ngữ XML cấu trúc liệu động lưu trữ nhớ với nhiều ưu điểm :  Đọc / ghi dễ dàng Các cấu trúc liệu mảng động (array), danh sách (list), ngăn xếp (stack), hàng đợi (queue), (tree) có nhiều tính tốt việc biểu diễn xử lý thông tin nhớ Trong việc đọc/ghi thông tin cấu trúc liệu từ/vào nhớ phụ (thông thường thông qua tập tin) không đơn giản thường phải thực gián tiếp với đọc ghi Tài liệu XML sử dụng để cài đặt hầu hết cấu trúc liệu động (với số chức bổ sung vào DOM qua chế kế thừa hay bao bọc hướng đối tượng) đặc biệt đọc ghi dễ dàng Vd : với ngôn ngữ C# Đọc tài liệu XML : tai_lieu.Load(Ten_tap_tin_XML); Ghi tài liệu XML : tai_lieu.Save(Ten_tap_tin_XML);  Khả truy vấn cao Việc truy vấn thành phần hay tập hợp thành phần cấu trúc liệu động phía thông thường phải thông qua vòng lặp duyệt đến phần tử Với tài liệu XML, sử dụng ngôn ngữ truy vấn XPath để truy vấn đến thành phần hay tập hợp thành phần cách dễ dàng (và thông thường thông qua lệnh đơn giản) Vd : với ngôn ngữ C#, giả sử có Tai_lieu tương ứng số nguyên Để lập danh sách nút (thành phần cây) có giá trị dương Biên soạn Nguyễn Minh Thành 10 Giáo trình ngôn ngữ XML Ghi :  Ngoài đối tượng thông dụng trên, DOM bao hàm loại đối tượng khác (ít thông dụng hơn) tương ứng với loại thẻ khác tài liệu XML XmlCDataSection, XmlEntity… Các đối tượng cho phép truy xuất thông tin tương ứng với thẻ khác tài liệu XML  Tất đối tượng DOM chấp nhận giao diện chung XmlNode tương ứng với hệ thống hàm xử lý thẻ tài liệu XML  XmlNode Giao diện XmlNode Ý nghĩa Hàm nodeType Trả loại nút nodeName Trả tên nút nodeValue Trả giá trị tương ứng Ghi Sử dụng chủ yếu với loại thuộc tính hay nội dung thẻ thẻ selectSingleNode Trả nút (Node) dựa chuỗi truy vấn XPath selectNodes Trả tập hợp nút (NodeList) dựa chuỗi truy vấn XPath childNodes Trả tập hợp nút nút xét parentNode Trả nút cha nút xét ownerDocument Trả tài liệu (Document) chứa nút xét appendChild Bổ sung nút vào nút xét removeChild Xoá nút nút xét reaplaceChild Thay nút nút khác nút xét cloneNode Tạo nút xét Sử dụng tham số để định tạo “bản cạn” (không xét nút con) hay “bản sâu” (có xét nút con)  XmlDocument Đối tượng XmlDocument Hàm Biên soạn Nguyễn Minh Thành Ý nghĩa Ghi 55 Giáo trình ngôn ngữ XML createElement Trả nút Element với tên nút createAttribute Trả thuộc tính (attribute) với tên thuộc tính getElementbyTagName Trả tập hợp nút Sử dụng cho loại tài (NodeList) theo tên tham số liệu có cấu trúc Load Tiếp nhận liệu từ nguồn Sử dụng cho loại tài (tập tin thông dụng nhất) liệu có cấu trúc LoadXML Tiếp nhận liệu từ chuỗi có cấu trúc tài liệu XML Save Kết xuất liệu đến ngồn Sử dụng cho loại tài (tập tin thông dụng nhất) liệu có cấu trúc  XmlElement Đối tượng XmlElement Ý nghĩa Hàm Ghi getAttribute Trả giá trị thuộc tính có tên tham số getAttributeNode Trả đối tượng thuộc tính (Attr) với tên tham số setAttribute Gán gia trị cho thuộc tính có tên Tạo thuộc tính tham số chưa có removeAttribute Xoá thuộc tính có tên tham số removeAttributeNode Xoá đối tượng thuộc tính (Attr) có tham số getElementsByTagName Trả tập hợp nút (nodeList) theo tên tham số II Các kỹ thuật lập trình với DOM NET II.1 Đọc tài liệu XML Vấn đề : Cần đọc tài liệu XML nhớ phụ vào đối tượng XmlDocument tương ứng Hướng giải : Xây dựng hàm đọc tài liệu với  Tham số : đường dẫn tập tin XL tương ứng  Kết : đối tượng XmlDocument Biên soạn Nguyễn Minh Thành 56 Giáo trình ngôn ngữ XML Thuật giải Khai báo đối tượng XmlDocument Kq Kq = Đọc liệu từ tập tin với đường dẫn từ tham số (xử lý thông báo lỗi đường dẫn sai hay tập tin tương ứng cấu trúc XML Trả Kq Ghi : Để tái sử dụng hàm trên, tạo hàm đọc tài liệu  Bên đơn thể (Module)  Bên lớp đối tượng (Class) Source code Lập trình với VB.NET Public Function Doc_tai_lieu(ByVal Duong_dan As String) As XmlDocument Dim Kq As New XmlDocument Try Kq.Load(Duong_dan) Catch Loi As Exception Dim Thong_bao As String = "Lỗi đọc tập tin " & Duong_dan & vbCrLf Thong_bao &= Loi.Message Console.WriteLine(Thong_bao) ' Hay MessageBox.Show(Thong_bao) End Try Return Kq End Function Lập trình với C# public XmlDocument Doc_tai_lieu(String Duong_dan) { XmlDocument Kq = new XmlDocument(); try { Kq.Load(Duong_dan); } catch(Loi As Exception) { String Thong_bao = "Lỗi đọc tập tin " + Duong_dan + "\n"; Thong_bao += Loi.Message; Console.WriteLine(Thong_bao); ' Hay MessageBox.Show(Thong_bao); } return Kq; } II.2 Ghi tài liệu XML Cần ghi đối tượng Tai_lieu thuộc giao diện XmlDocument nhớ phụ (thường tập tin xml) VB.NET Tai_lieu.Save(Ten_tap_tin) C# Tai_lieu.Save(Ten_tap_tin) ; Biên soạn Nguyễn Minh Thành 57 Giáo trình ngôn ngữ XML II.3 Truy xuất nút gốc Truy xuất đến nút gốc tài liệu XML, khai báo đối tượng Goc thuộc giao diện XmlElement nhận đối tượng từ chức tương ứng Tai_lieu Lập trình với VB.NET : Dim Goc As XmlElement Goc=Tai_lieu.DocumentElement Lập trình với C# XmlElement Goc ; Goc=Tai_lieu.DocumentElement; II.4 Truy xuất nút trực tiếp nút Truy xuất đến nút trực tiếp nút, khai báo đối tượng Nut_con thuộc giao diện XmlElement nhận đối tượng từ chức tương ứng nút cha Lập trình với VB.NET : Dim Nut_con As XmlElement Nut_con= Nut_cha.SelectSingleNode(Ten_nut_con) Lập trình với C# XmlElement Nut_con ; Nut_con= Nut_cha.SelectSingleNode(Ten_nut_con) ; II.5 Truy xuất thuộc tính nút VB.NET Nhận giá trị Gia_tri=Nut.GetAttribute(Ten_thuoc_tinh) Cập nhật / bổ sung thuộc tính với giá trị Nut.SetAttribute (Ten_thuoc_tinh, Gia_tri) C# Nhận giá trị // Nhận số nguyên Gia_tri=int.Parse(Nut.GetAttribute(Ten_thuoc_tinh)) ; Cập nhật / bổ sung thuộc tính với giá trị Nut.SetAttribute(Ten_thuoc_tinh, Gia_tri.ToString()) ; II.6 Truy xuất nội dung nút Truy xuất đến nội dung (giá trị chuỗi) nút VB.NET Nhận nội dung : Gia_tri=Nut.InnerText Cập nhật nội dung : Nut.InnerTextt=Gia_tri C# Nhận nội dung : // Nhận số thực Gia_tri=Double.Parse(Nut.InnerText); Cập nhật nội dung : Biên soạn Nguyễn Minh Thành 58 Giáo trình ngôn ngữ XML Nut.InnerText=Gia_tri.ToString(); II.7 Tạo nút Khai báo đối tượng Nut thuộc giao diện XmlElement nhận đối tượng từ chức tương ứng tài liệu VB.NET Dim Nut As XmlElement Nut= Tai_lieu.CreateElement(Ten_nut) C# XmlElement Nut ; Nut= Tai_lieu.CreateElement(Ten_nut) ; II.8 Bổ sung vào nút cha Bổ sung nút vào nút cha VB.NET Nut_cha.AppendChild( Nut_con) C# Nut_cha.appendChild (Nut_con); II.9 Đọc đối tượng từ tập tin XML Vấn đề : Cần đọc liệu đối tượng x thuộc loại X tương ứng với thẻ X tập tin XML Ví dụ :  Đọc liệu đổi tượng ps thuộc loại Phân Số tập tin phanso.xml Nhận xét : Cách đọc tạo đối tượng x tương ứng thẻ X phụ thuộc vào X có phải thẻ gốc hay không:  Nếu X thẻ gốc  Đọc trực tiếp  Nếu X thẻ thẻ gốc  phải đọc thẻ gốc sau khởi tạo x từ đối tượng XmlElement tương ứng Hướng giải với X thẻ gốc Xây dựng hàm (hàm mức lớp) lớp đối tượng X Tham số : đường dẫn tập tin XML tương ứng Kết : đối tượng x thuộc lớp X Thuật giải : Khai báo đối tượng x thuộc lớp đối tượng X Tai_lieu = Đối tượng XmlDocument đọc từ tập tin với đường dẫn Goc = Đối tượng XmlElement tương ứng gốc Tai_lieu Gán biến thành phần x tương ứng với thuộc tính Goc Trả x Biên soạn Nguyễn Minh Thành 59 Giáo trình ngôn ngữ XML Hướng giải với X thẻ gốc Xây dựng hàm khởi tạo (hàm mức lớp) đối tượng X Tham số : Đối tượng XmlElement Nut Kết : Đối tượng x thuộc lớp x Thuật giải : Khai báo đối tượng x thuộc lớp X Gán biến thành phần x tương ứng với thuộc tính Nut Trả x II.10 Ghi đối tượng vào tập tin XML Vấn đề : Cần ghi liệu đối tượng x thuộc loại X vào thẻ X tập tin XML Ví dụ : cần ghi liệu đối tượng ps thuộc loại Phân Số vào tập tin phanso.xml Nhận xét : Cách ghi đối tượng x tương ứng thẻ X phụ thuộc vào X có phải thẻ gốc hay không  Nếu X thẻ gốc  tạo thẻ X ghi trực tiếp  Nếu X thẻ thẻ gốc Chỉ tạo XmlElement tương ứng sau bổ sung vào thẻ gốc trước ghi Hướng giải với X thẻ gốc : Xây dựng hàm ghi lớp đối tượng X  Tham số : đường dẫn tập tin Xml tương ứng  Kết : giá trị logic Thuật giải Khai báo biến logic kq Tai _lieu = đối tượng XmlDocument Goc = đối tượng XmlElement tạo từ Tai_lieu Gán giá trị thuộc tính Goc tương ứng với biến thành phần đối tượng Bổ sung Goc vào tài liệu Kq = Kết ghi Tai_lieu xuong Duong_dan Trả kq Hướng giải với thẻ : Xây dựng hàm tạo nút lớp đối tượng X  Tham số : Đối tượng XmlDocument Tai_lieu  Kết : đối tượng XmlElement Thuật giải Kq = đối tượng XmlElement tạo từ Tai_lieu Gán giá trị thuộc tính Kq tương ứng biến thành phần đối tượng Trả Kq Biên soạn Nguyễn Minh Thành 60 Giáo trình ngôn ngữ XML Source code (ví dụ ghi Phân Số) Lập trình với VB.NET Imports System.Xml Module Ghi_phan_so_Kieu_Ham Structure PHAN_SO Public Tu_so As Integer Public Mau_so As Integer End Structure Public Function Nhap_phan_so() As PHAN_SO Dim Kq As PHAN_SO Console.Write("Tử số") Kq.Tu_so = Integer.Parse(Console.ReadLine) ' Chưa kiem tra Console.Write("Mẫu số") Kq.Mau_so = Integer.Parse(Console.ReadLine) ' Chưa kiem tra Return Kq End Function Public Function Ghi_phan_so(ByVal Ps As PHAN_SO, ByVal Duong_dan As String) As Boolean Dim Kq As Boolean = True Dim Tai_lieu As New XmlDocument Dim Goc As XmlElement = Tai_lieu.CreateElement("PHAN_SO") Goc.SetAttribute("Tu_so", Ps.Tu_so) Goc.SetAttribute("Mau_so", Ps.Mau_so) Tai_lieu.AppendChild(Goc) Tai_lieu.Save(Duong_dan) Return Kq End Function Public Sub Main() Dim Ps As PHAN_SO Ps = Nhap_phan_so() Dim Duong_dan As String = " \ \Du_lieu\Phan_so.xml" Ghi_phan_so(Ps, Duong_dan) Console.ReadLine() End Sub End Module Lập trình với C# using System; using System.Xml; public class Ghi_phan_so_Kieu_Ham { public struct PHAN_SO { public int Tu_so; // > public int Mau_so; // > } public static void Main() { PHAN_SO Ps; Ps = Nhap_phan_so(); String Duong_dan = " \\ \\Du_lieu\\Phan_so.xml"; if (Ghi_phan_so(Ps, Duong_dan)) Console.Write("Đã ghi "); else Console.Write("Loi ghi "); Console.ReadLine(); } public static PHAN_SO Nhap_phan_so() { PHAN_SO Kq; Console.Write("T_ sô:"); Biên soạn Nguyễn Minh Thành 61 Giáo trình ngôn ngữ XML Kq.Tu_so = int.Parse(Console.ReadLine()); // Chưa x_ lý loi Console.Write("Mau sô:"); Kq.Mau_so = int.Parse(Console.ReadLine()); // Chưa x_ lý loi return Kq; } public static Boolean Ghi_phan_so(PHAN_SO Ps, String Duong_dan ) { Boolean Kq = true; XmlDocument Tai_lieu = new XmlDocument(); XmlElement Goc = Tai_lieu.CreateElement("PHAN_SO"); Goc.SetAttribute("Tu_so", Ps.Tu_so.ToString()); Goc.SetAttribute("Mau_so", Ps.Mau_so.ToString()); Tai_lieu.AppendChild(Goc); // Ghi tài lieu Xml Tai_lieu.Save(Duong_dan); return Kq; } } II.11 Thể đối tượng Vấn đề : Cần thể thông tin tập tin XML dạng tương ứng với cấu trúc tổ chức thẻ tập tin Ví dụ :  Thể Công ty – phòng ban  Thể Trường – Khối Lớp – Lớp Hướng giải chung : Sử dụng đối tượng thư viện đối tượng giao diện người dùng Hướng giải cụ thể Studio.NET Sử dụng đối tượng thể TreeView III Ngôn ngữ XPath III.1 Truy vấn thông tin III.1.1 Truy vấn thông tin  Một loại xử lý quan trọng thông dụng  Loại xử lý cho phép trích rút tập hợp thông tin thông tin III.1.2 Tập hợp thông tin Là khái niệm mô tả thông tin biểu diễn theo dạng Đặc điểm tập hợp thông tin xét thông tin tập hợp phải bao gồm bên thành phần Tp1, Tp2… theo cấu trúc Ví dụ :  Mảng chiều số nguyên tập hợp thông tin với thành phần số nguyên  Hệ thống tập tin đĩa tập hợp thông tin với thành phần tập tin, thư mục Biên soạn Nguyễn Minh Thành 62 Giáo trình ngôn ngữ XML  Tài liệu XML (với mô hình DOM) tập hợp thông tin với thành phần nút Tập hợp thông tin III.1.3 Là khái niệm cho phép mô tả kết việc truy vấn thông tin tập hợp thông tin gốc Tập hợp bao gồm thành phần con, thành phần có cách biểu diễn cấu trúc riêng Cấu trúc tập hợp thông thường trùng với cấu trúc tập hợp gốc không thiết Ví dụ :  Tập hợp số nguyên dương mảng chiều số nguyên  Tập hợp tập tin văn ổ đĩa  Tập hợp nút nút (nút lá) tập tin XML III.2 Ngôn ngữ truy vấn thông tin  Một loại ngôn ngữ đặc tả  Cho phép đặc tả tập hợp thông tin cần truy vấn dạng chuỗi : chuỗi truy vấn Tuỳ theo dạng thông tin cần truy vấn, có nhiều ngôn ngữ truy vấn đề xuất Với cấu trúc liệu dạng mảng, ngôn ngữ truy vấn đơn giản với chuỗi truy vấn bao gồm số (mảng chiều) hay biểu thức gồm thành phần : số dòng, số cột (mảng chiều) Ví dụ : Truy xuất phần tử thứ mảng chiều A A[3] Truy vấn phần tử thuộc dòng 2, cột mảng chiều B B[2][4] Với hệ thống tập tin, chuỗi truy vấn có dạng đường dẫn bao hàm bên tên ổ đĩa, tên thư mục tên tập tin Ví dụ : Truy xuất tập tin thongbao.txt thư mục gốc ổ đĩa C C:\thongbao.txt Truy xuất tập tin thư mục A thư mục gốc đĩa C C:\A\*.* Với CSDL quan hệ, ngôn ngữ truy vấn sử dụng thông dụng ngôn ngữ truy vấn SQL Chuỗi truy vấn ngôn ngữ có cấu trúc phức tạp nhiều so với ví dụ (và khả truy vấn tăng lên nhiều) Ví dụ : truy vấn hồ sơ nhân viên có mã số đơn vị Select * From NHAN_VIEN Where MDV=5 Biên soạn Nguyễn Minh Thành 63 Giáo trình ngôn ngữ XML Với tập tin XML, mô hình liệu DOM cho phép truy vấn thông tin với ngôn ngữ truy vấn XPath Chuỗi truy vấn XPath có cấu trúc tương tự đường dẫn (của hệ thống tập tin) phức tạp nhiều trục định vị lọc Ví dụ : truy xuất nút có giá trị số nguyên dương số nguyên //So[@giatri>0] Các thành phần ngôn ngữ truy vấn : ngôn ngữ truy vấn có dạng khác cấu trúc chuỗi truy vấn Tuy nhiên, mục tiêu truy vấn thông tin, chuỗi truy vấn bao hàm bên thành phần sau : Thành phần định vị Thành phần lọc Thành phần định vị : Cho phép đặc tả “vị trí” thông tin cần truy vấn Kết việc định vị tập hợp thông tin thuộc vị trí xét Thành phần định vị bước trình truy vấn, sau bước thông thường cần sử dụng thành phần lọc để mô tả chi tiết thông tin cần truy vấn Mỗi ngôn ngữ dùng số từ khoá riêng cho phép đặc tả thành phần Ví dụ :  Ngôn ngữ truy vấn tập tin dùng từ khoá kí hiệu \(con trực tiếp) để định vị tập tin  Ngôn ngữ SQL dùng từ khoá Select, From để định vị thông tin cần truy vấn  Ngôn ngữ XPath cho phép đinh vị theo đường dẫn với ký hiệu / mở rộng với khái niệm trục định vị (từ khoá descendant định vị thành phần theo cấp, từ khoá định following-sibling định thành phần “anh em” thành phần xét, ) Thành phần lọc : Cho phép lọc kết bước định vị với việc mô tả tính chất thông tin cần truy vấn thông qua biểu thức lọc (hay biểu thức điều kiện) Biểu thức lọc có dạng biểu thức logic (tương tự ngôn ngữ lập trình với số giới hạn) Ví dụ :  Ngôn ngữ truy vấn tập tin ý niệm rõ nét biểu thức lọc mà cho phép sử dụng mộ số kí tự đặc biệt (kí tự ?, kí tự *) để mô tả chi tiết tên (tập tin, thư mục) cần truy vấn  Ngôn ngữ SQL dùng từ khoá Where kết hợp với biểu thức logic phép lọc mẩu tin cần truy vấn  Ngôn ngữ XPath sử dụng biểu thức lọc có dạng [biểu thức điểu kiện] phép lọc nút cần truy vấn Biên soạn Nguyễn Minh Thành 64 Giáo trình ngôn ngữ XML III.3 Ngôn ngữ truy vấn XPath III.3.1 Khái niệm Một ngôn ngữ truy vấn với  Tập hợp thông tin bao gồm đối tượng mô hình DOM  Tập hợp thông tin : danh sách đối tượng mô hình DOM Công thức : Chuoi_dv_1 Chuoi_loc_1 Chuoi_dv_2 Chuoi_loc_2…Chuoi_dv_n Chuoi_loc_n Chuỗi định vị (Chuoi_dv) Cho phép xác định tập hợp nút có quan hệ (thông dụng con) so với tập hợp nút X cho trước Ví dụ: /AAA/BBB/CCC  tập hợp tất nút tương ứng thẻ CCC thẻ BBB, với BBB thẻ thẻ AAA, với AAA gốc //CCC  tập hợp tất nút tương ứng thẻ CCC BBB/CCC  tập hợp nút tương ứng thẻ CCC thẻ BBB, với BBB nút ngữ cảnh (nút xét) Chuỗi lọc (Chuoi_loc) [Biểu thức lọc] Biểu thức lọc biểu thức logic cho phép xác định tập hợp nút tập hợp nút X cho trước Tập hợp tập hợp nút X thoả điều kiện biểu thức lọc Ví dụ: /AAA/BBB/CCC[@x > ]  tập hợp tất nút CCC có thuộc tính x>5, thẻ BBB, BBB thẻ AAA, AAA gốc /AAA/BBB[@y='bbb]/CCC[@x>5]  tập hợp tất nút CCC có thuộc tính x lớn 5, thẻ thẻ BBB, BBB thẻ AAA, thẻ AAA thẻ gốc III.3.2 Ví dụ minh hoạ Ví dụ : xét tài liệu XML với đặc tả DTD sau : ]> Với nút ngữ cảnh nút gốc (nút có tên TRUONG) Chuỗi truy vấn XPath đặc tả tập hợp lớp có sĩ số 40, có dạng sau : Child::KHOI/child::LOP[@Si_so>40] Ví dụ : xét tài liệu XML với đặc tả DTD sau : ]> Với nút ngữ cảnh nút gốc, chuỗi truy vấn cho phép đặc tả tập hợp số nguyên dương tài liệu XML biểu diễn thông tin số nguyên dạng sau: descendant::SO_NGUYEN[@Gia_tri >0] III.3.3 Chuỗi định vị XPath cho phép định vị theo cách :  Dùng trục định vị với tên cụ thể  Dùng dạng tốc kí với từ khoá thay trục định vị Cách : dạng sở, dạng xử lý trực tiếp thành phần xử lý chuỗi XPath (bộ xử lý phân tích, xử lý định vị, xử lý lọc) Tuy nhiên, cách không cho phép mô tả ngắn gọn so với cách Cách : cách thông dụng cho phép mô tả cách ngắn gọn, xúc tích Tuy nhiên, tất tên định vị có kí tự thay thế, nên số trường hợp, cách cách Ví dụ : với tài liệu XML biểu diễn thông tin học sinh (DTD phía trên) Thay sử dụng chuỗi định vị theo cách child::KHOI/child::LOP[@Si_so>40] Có thể sử dụng dạng tốc ký chuỗi định vị sau : KHOI/LOP[@Si_so>40] Hay Biên soạn Nguyễn Minh Thành 66 Giáo trình ngôn ngữ XML /TRUONG/KHOI/LOP[@Si_so>40] Ví dụ : với tài liệu XML biểu diễn thông tin dãy số nguyên Thay sử dụng chuỗi định vị theo cách descendant::SO_NGUYEN[@Gia_tri >0] Có thể dùng dạng tốc ký //SO_NGUYEN[@Gia_tri >0] (Từ khoá // dạng viết tắt cho trục descendant::) III.3.4 Định vị theo tên trục Ten_truc::Ten_nut Cú pháp : Ý nghĩa : Đặc tả tập hợp nút có tên Ten_nut có vị trí tương đối so với tập hợp nút xét (kết trung gian) theo ý nghĩa Ten_truc Ý nghĩa Tên trục Ghi self Chính nút xét Ít sử dụng child Con trực tiếp Rất thông dụng parent Cha trực tiếp descendant Tất theo cấp (không bao gồm nút xét) descendant-or-self Tất theo cấp (bao gồm nút xét) ancestor Tất cha theo cấp (không bao gồm nút xét) ancestor-or-self Tất cha theo cấp (bao gồm nút xét) following-sibling Tất anh em cha (phía sau nút xét) Ít sử dụng preceding-sibling Tất anh em cha (phía trước nút xét) Ít sử dụng following Tất anh em cha (phia sau nút xét) với theo cấp Ít sử dụng preceding Tất anh em cha (phia trước nút xét) với theo cấp Ít sử dụng Rất thông dụng Ghi : Cho phép dùng * để mô tả nút III.3.5 Định vị theo dạng tốc ký Cú pháp : Từ_khoá Tên_nút Biên soạn Nguyễn Minh Thành 67 Giáo trình ngôn ngữ XML Ý nghĩa : đặc tả tập hợp nút có tên Tên_nút có vị trí tương đối so với tập hợp nút xét (kết trung gian) theo ý nghĩa tên trục Tên trục Từ khoá Ghi self , Ít sử dụng child / Rất thông dụng, dùng xác định nút ngữ cảnh Document parent descendant // Rất thông dụng Chuỗi lọc III.3.6 Cú pháp : ABC[Biểu_thức_lọc] Ý nghĩa : cho phép đặc tả điều kiện thuộc tính nút ABC xét Biểu_thức_lọc có cú pháp hoàn toàn tương tự cú pháp biểu thức điều kiện ngôn ngữ lập trình, với số khác biệt mà quan trọng :  Biểu thức điều kiện ngôn ngữ lập trình bao gồm biến  Biểu thức điều kiện XPath bao gồm thuộc tính (@tên_thuộc_tính) Biên soạn Nguyễn Minh Thành 68 Giáo trình ngôn ngữ XML Chương BIẾN ĐỔI TÀI LIỆU XML VỚI XSLT I Giới thiệu XSLT I.1 Cấu trúc chương trình XSLT I.2 Thực thi chương trình XSLT I.3 Các ví dụ minh hoạ II Các thao tác xử lý II.1 Rút trích kết xuất thông tin II.2 Rẽ nhánh II.3 Vòng lặp II.4 Hàm III Các kỹ thuật xử lý III.1 XML  HTML III.1.1 XML  thẻ select III.1.2 XML  thẻ ol ul III.1.3 XML  thẻ table III.2 XMLXML III.2.1 Nút & thuộc tính III.2.2 Sao chép nút III.2.3 Sao chép nút – thuộc tính – nút III.2.4 Sắp thứ tự nút Biên soạn Nguyễn Minh Thành 69 ... 69 III.1 XML  HTML 69 III.2 XML  XML 69 Giáo trình ngôn ngữ XML Chương TỔNG QUAN CÔNG NGHỆ XML I Khái niệm tài liệu XML I.1 Khái niệm XML  XML viết tắt eXtensible... chương sau Biên soạn Nguyễn Minh Thành 11 Giáo trình ngôn ngữ XML Chương CẤU TRÚC TÀI LIỆU XML I Cấu trúc XML (XML Tree Syntax) I.1 Cây XML (XML Tree) Tài liệu XML có định dạng chuẩn cấu trúc bắt đầu... XML (XML Elements) Biên soạn Nguyễn Minh Thành 15 Giáo trình ngôn ngữ XML II.1 Khái niệm Một tài liệu XML chứa nhiều thành phần XML Một thành phần XML tất nằm thẻ mở thẻ đóng Một thành phần XML

Ngày đăng: 24/06/2017, 11:16

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan