Trong file XML luôn phải có 1 và chỉ 1 tag gốc tag root, tag này có thể chứa 1 hoặc nhiều tag khác, cũng có thể chứa luôn data mà không chứa tag nào cả.. XML Well-formed trình bày tốt
Trang 1Tổng quan về XML
Tài liệu tham khảo dành cho sinh viên
Bachkhoa-Aptech
Trang 2XML dùng để làm gì? Nó có vai trò
gì trong thế giới IT, tại sao cần
phải học nó?
XML có nhiều vai trò, nhưng quan trọng nhất
là nó đóng góp làm dạng data trung gian để các server giao tiếp với nhau Sau này học
môn Web Services các bạn sẽ hiểu rõ hơn vai trò này
XML là 1 khái niệm đơn giản, nhưng nó có ứng
dụng ngày càng lớn trong thế giới IT nhờ sự
bùng nổ của Internet và nhu cầu giao tiếp dữ liệu Do sự đa dạng trong cách sử dụng XML
đã xuất hiện các khái niệm khác như XML
schemas, XSLT… chính điều đó đã tăng thêm sức mạnh cho XML
Trang 3Thế nào là Tag (thẻ) trong XML
Tên các Tag trong XML thế nào là
hợp lệ?
Tag là thành phần cơ bản, có thể gọi đó là các
viên gạch xây dựng lên XML Trong file XML luôn phải có 1 (và chỉ 1) tag gốc (tag root), tag này có thể chứa 1 hoặc nhiều tag khác, cũng có thể chứa luôn data mà không chứa tag nào cả.
Các Tag (thẻ) trong XML có thể bắt đầu bằng dấu
2 chấm (:), dấu gạch dưới ( _ ), nhưng chủ yếu
nó bắt đầu bằng 1 ký tự trong bảng chữ cái Nó KHÔNG THỂ bắt đầu bằng chữ số, và cũng
KHÔNG THỂ có khoảng trắng (ngoại trừ trường
hợp áp dụng cho attributes, tất nhiên rồi phải
ko?)
Trang 4Thế nào là XML well-formed, thế nào là XML validated ?
XML Well-formed (trình bày tốt) tức là đã có thẻ
mở thì phải có thẻ đóng, nếu phần tử rỗng
(empty element) thì có thể trình bày dưới dạng
1 thẻ tự đóng chính nó (kết thúc bằng dấu gạch chéo (/) ), các attribute phải có dấu bằng và các value của attribute phải bao bằng dấu nháy (”)
XML Validating (XML hợp lệ) là khái niệm rộng
hơn Well-form, tài liệu XML muốn validated thì không những phải well-formed mà còn phải
thỏa mãn schema của nó (ở đây schema có thể
là DTD hoặc XML Schema)
Trang 5Tại sao cần có namespace?
Trong lập trình nói chung và XML nói riêng,
kỹ thuật sử dụng namespace là kỹ thuật
tránh xung đột (conflic) cách đặt tên, để
khi nếu nhỡ có 2 tên trùng nhau, nhưng
khác namespace thì chương trình vẫn hiểu được và hoạt động trơn tru
Trang 6Schema là gì? XML schemas
là gì?
Schema nghĩa là lược đồ, tức là bản mô tả
về cấu trúc của một cái gì đó
Như vậy, XML schema là văn bản mô tả về
cấu trúc của file XML (ở đây cái gì đó chính
là XML) Nó mô tả file XML có những Tag gì, Tag gì chứa Tag gì, hoặc chứa dữ liệu gì…
Có 2 dạng XML schema chính là DTD và
XML Schema
Trang 7Tại sao phải dùng schema? cụ
thể là tại sao phải dùng XML
schema?
Trước tiên chúng ta sẽ trả lời câu hỏi, thế
nào là validation và tại sao phải thực hiện việc validating Validation nghĩa là “sự hợp lệ”, Validating nghĩa là kiểm tra xem có hợp
lệ hay không? Như vậy Email Validating có nghĩa là kiểm tra xem 1 email có hợp lệ hay không (ví dụ 1 email không có ký tự @ là
không hợp lệ)? và tất nhiên XML Validating
là kiểm tra sự hợp lệ của 1 file XML
Trang 8Tại sao phải dùng schema? cụ
thể là tại sao phải dùng XML
schema?
Rõ ràng khi có nhiều người trao đổi file XML
với nhau, sẽ xuất hiện nhu cầu kiểm tra
xem các file XML đó có tuân theo cấu trúc (hay “chuẩn”) đã được 2 bên thống nhất
hay chưa, do đó cần dùng XML schemas để
mô tả cấu trúc đó và cần kiểm tra xem file XML đã thỏa mãn cấu trúc (hay thỏa mãn XML schema đó) hay chưa Một file XML
thỏa mãn XML schema của nó (và
well-formed, tất nhiên) thì được gọi là validated (hợp lệ)
Trang 9XSL, XSLT, XPath là gì? XSL có
điểm gì giống và khác CSS?
XSL (XML Style Sheets) mà chúng ta đều biết Style
Sheets là công cụ “trang điểm” cho các văn bản thêm
dễ nhìn, bắt mắt (CSS cũng là một dạng Style Sheet), cho nên có thể hiểu XSL là ngôn ngữ cho phép trình
bày các văn bản XML theo cách mà chúng ta muốn
(chứ không phải cách trình bày dạng tree thường thấy
ở các trình duyệt) Có nghĩa là ta có thể trình bày file XML theo dạng bảng, hoặc theo bất kỳ cấu trúc nào, kể
cả trở thành một file XML khác.
XSL bao gồm thành phần chính là XSLT (XSL
Transformation, có hiểu hiểu là ngôn ngữ chuyển đổi hình thức của file XML), các câu lệnh XPath cho phép ta select các Tag ta muốn và cuối cùng là XSL-FO (ta
không học cái XSL-FO) này
Trang 10Parser là gì?
Parser là công cụ (hàm, thư viện, API,
phần mềm…) cho phép phân tích cấu trúc cũng như thao tác (đọc/ghi) với file XML
Trang 11Những kỹ thuật nào được các
Parser sử dụng?
thuật này), đó là DOM (còn được gọi là Tree-based
hay Object-based) và SAX (còn được gọi là
Event-based) DOM thì load toàn bộ cấu trúc của XML vào bộ nhớ, do đó nó tốn tài nguyên của máy, và không thể
sử dụng được với các file XML quá lớn, ưu điểm chính của nó là có thể thực hiện được các thao tác đọc/ghi trên XML, còn SAX thì lại quét (scan) file XML từ trên xuống dưới, nên không tốn nhiều bộ nhớ, có thể áp
dụng với file XML cực lớn, nhưng chỉ có thể thực hiện thao tác đọc Nếu các bạn google “DOM vs SAX” hoặc
“DOM versus SAX” sẽ thấy có nhiều sự so sánh cụ thể