Bài giảng Lập trình Web hướng Java - Bài 04: Extensible markup language giới thiệu về XML, cú pháp XML, không gian tên của XML, ứng dụng của XML, document object model, XML và CSS, Extensible stylesheet language. Mời bạn đọc cùng tham khảo.
Trang 1k o?sqìmg?vda?g ︰mf?i`u`
Bài 04: Extensible Markup Language
Giả ng viên: ThS Trị nh Tuấ n Đạ t
Bộ môn CNPM Email: trinhtuandat.bk@gmail.com/ dattt@soict.hut.edu.vn
Bộ môn Công nghệ Phầ n mề m
Việ n CNTT & TT Trư ờ ng Đạ i họ c Bách Khoa Hà Nộ i
2
Nộ i dung
1 Giớ i thiệ u XML
2 Cú pháp củ a XML
3 Không gian tên củ a XML
4 Ứ ng dụ ng củ a XML
5 Document Object Model (DOM)
6 XML và CSS
7 Extensible Stylesheet Language (XSL)
3
1 Giớ i thiệ u XML
XML viế t tắ t củ a từ eXtensibleMarkupLanguage
Là tậ p các quy ư ớ c chuẩ n về cách phân chia mộ t tài
liệ u ra thành nhiề u phầ n, đánh dấ u từ ng phầ n theo
đặ c trư ng củ a nó rồ i ghép lạ i
So sánh vớ i HTML
XML: là ngôn ngữ dùng để đị nh nghĩa dữ liệ u, ngư ờ i
dùng có thể tự đị nh nghĩa các thẻ
HTML: là ngôn ngữ dùng để hiể n thị nộ i dung dữ liệ u
thông qua các thẻ chuẩ n
4
1 Giớ i thiệ u XML
Lị ch sử ra đờ i
1990, Tim Berners Lee đã đư a ra HTML
1995, nhóm XML mong muố n
Không giớ i hạ n ngôn ngữ
Đơ n giả n cho lậ p trình viên
Dễ dàng cho các Search Enginge
11/ 1996, đặ c tả đầ u tiên củ a XML đư ợ c phát hành
2/ 1998, W3C phê chuẩ n công nhậ n version 1.0
củ a XML
1 Giớ i thiệ u XML
Ví dụ về trang XML
<?xml version=“1.0” standalone=“no”
encoding=“UTF-8”?>
<LexicalEntry>
<HeadWord>an ninh</HeadWord>
<Category>N</Category>
<Subcategory>Na</Subcategory>
<Definition>tình hình trậ t tự xã hộ i
bình thư ờ ng yên ổ n, không có rố i loạ n
</Definition>
</LexicalEntry>
1 Giớ i thiệ u XML Các chứ c năng chính
Dễ dàng trao đổ i dữ liệ u Tùy biế n ngôn ngữ đa dạ ng
Dữ liệ u mô tả
Dữ liệ u có cấ u trúc tích hợ p
Trang 22 Cú pháp XML
2.1 Quy tắ c chung trong XML
2.2 Tạ o tài liệ u XML hợ p khuôn dạ ng
8
2.1 Quy tắ c chung trong XML XML: tự do đị nh nghĩa thẻ
Xây dự ng cách hiể n thị chúng bở i CSS hoặ c XSL
Thẻ XML
Mộ t phầ n tử XML bao gồ m cặ p thẻ mở đầ u và
kế t thúc, bên trong là dữ liệ u
<HeadWord>an ninh</HeadWord>
Phầ n dữ liệ u muố n thêm các kí tự đặ c biệ t (dấ u
> , < …) thì thự c hiệ n giố ng như trong HTML
9
2.1 Quy tắ c chung trong XML
Thẻ XML
Nế u chỉ có mộ t thẻ thì thêm dấ u / phía cuố i:
< HeadWord/ >
Trong mỗ i thẻ có thể đị nh nghĩa thêm các thuộ c
tính
Tên thẻ
XML phân biệ t chữ hoa và chữ thư ờ ng
Bao gồ m: chữ cái, chữ số , dấ u “_”, dấ u “ -”, dấ u
“:” như ng không đư ợ c bắ t đầ u là chữ số , dấ u “ -”
10
2.1 Quy tắ c chung trong XML
Tạ o khai báo XML W3C khuyế n cáo: mỗ i tài liệ u XML nên có duy nhấ t mộ t khai báo
<?xml version=“1.0” standalone=“no”
encoding=“UTF-8”?>
version= “1.0”: cho biế t số hiệ u phiên bả n XML đang sử dụ ng
standalone= “no”: cho biế t tài liệ u này không có liên quan đế n tài liệ u khác
encoding= “UTF-8”: cho biế t kiể u mã hóa ngôn ngữ
2.1 Quy tắ c chung trong XML
Tạ o khai báo XML
Kế t hợ p dữ liệ u củ a XML vớ i CSS
<?xml-stylesheet type=“text/css”
href=“ten_file_css”>
Tạ o dòng ghi chú: tư ơ ng tự HTML < ! >
Tạ o thẻ gố c: mỗ i file XML phả i có mộ t thẻ gố c
Tạ o thuộ c tính:
Dạ ngten_thuoc_tinh=“gia_tri”
Giá trị đư ợ c bao trong nháy kép “” hoặ c nháy đơ n ‘ ’
2.1 Quy tắ c chung trong XML
Tạ o khai báo XML Thuộ c tính xml:lang
<text xml:lang=“en”>Hello</text>
Search engine sẽ sử dụ ng để nhậ n dạ ng ngôn ngữ sử dụ ng
Tên quố c gia theo chuẩ n I SO 693 gồ m 2 kí tự tắ t
Trang 32.2 Tạ o tài liệ u XML hợ p khuôn dạ ng
Các trình dị ch XML thư ờ ng yêu cầ u rấ t
nghiêm ngặ t về kiể m tra cú pháp
Mộ t tài liệ u XML đư ợ c coi là đúng cú pháp
khi nào hợ p khuôn dạ ng
Khuôn dạ ng: các quy tắ c khai báo, thẻ , thuộ c
tính, đặ t tên thẻ …
14
2.2 Tạ o tài liệ u XML hợ p khuôn dạ ng Quy tắ c cơ bả n
Các khai báo XML cầ n đặ t ở dòng đầ u tiên
Mỗ i tài liệ u chỉ có mộ t phầ n tử gố c Thẻ đầ y đủ bao gồ m thẻ đóng và thẻ mở hoặ c thẻ vớ i dấ u / ở cuố i
Các thẻ lồ ng nhau phả i có thẻ đóng, thẻ mở hợ p
vị trí Tên thuộ c tính trong mộ t thẻ là duy nhấ t Giá trị (kể cả số ) nằ m trong cặ p dấ u nháy đơ n hoặ c nháy kép
15
3 Không gian tên củ a XML
XML cho phép tự đị nh nghĩa và đặ t tên các
thẻ
standalone= “yes”: cho biế t tài liệ u này có
liên quan đế n tài liệ u khác
16
3 Không gian tên củ a XML
Cầ n có sự phân biệ t về phạ m vi hay không gian tên mà mỗ i thẻ có ý nghĩa
Namespace: cho phép tạ o và sử dụ ng các thẻ cùng tên độ c lậ p mà không gây ra lỗ i
Sử dụ ng: thêm mộ t prefix ở trư ớ c tên củ a thẻ và tên củ a thuộ c tính
3 Không gian tên củ a XML
Ví dụ
<LexicalEntry>
<HeadWord>an ninh</HeadWord>
<Category>N</Category>
<Subcategory>Na</Subcategory>
<Definition>tình hình trậ t tự xã hộ i
bình thư ờ ng yên ổ n, không có rố i loạ n
</Definition>
</LexicalEntry>
3 Không gian tên củ a XML
Ví dụ : đị nh nghĩa namespace là dic
<dic:LexicalEntry xmlns:dic=“URL1”>
<dic:HeadWord>an ninh</dic:HeadWord>
<dic:Category>N</dic:Category>
<dic:Subcategory>Na</dic:Subcategory>
<dic:Definition>tình hình trậ t tự xã
Hộ i bình thư ờ ng yên ổ n, không có rố i loạ n
</dic:Definition>
</dic:LexicalEntry>
Trang 43 Không gian tên củ a XML
Có thể bổ sung thêm các thẻ mớ i cùng tên
19
<dic:LexicalEntry
xmlns:dic=“URL1” xmlns:nmspc=“URL2”>
<dic:HeadWord>an ninh</dic:HeadWord>
<dic:Category>N</dic:Category>
<dic:Subcategory>Na</dic:Subcategory>
<dic:Definition>tình hình trậ t tự xã
Hộ i bình thư ờ ng yên ổ n, không có rố i loạ n
</dic:Definition>
<nmspc:HeadWord>composite word
</nmspc:HeadWord>
</dic:LexicalEntry>
20
3 Không gian tên củ a XML
Có thể đư a thêm thuộ c tính vào thẻ trong không gian tên mớ i bằ ng cách thêm “prefix:”
phía trư ớ c Thuộ c tính xmlns:prefix có thể đư ợ c đặ t ở
bấ t kỳ thẻ nào chứ không chỉ giớ i hạ n ở phầ n
tử gố c
= > Có thể đặ t đị nh nghĩa không gian tên đế n
nơ i nó bắ t đầ u đư ợ c sử dụ ng
3 Không gian tên củ a XML
21
<dic:LexicalEntry xmlns:dic=“URL1”>
<dic:HeadWord>an ninh</dic:HeadWord>
<dic:Category>N</dic:Category>
<dic:Subcategory>Na</dic:Subcategory>
<dic:Definition>tình hình trậ t tự xã
Hộ i bình thư ờ ng yên ổ n, không có rố i loạ n
</dic:Definition>
<nmspc:HeadWord xmlns:nmspc=“URL2”
nmspc:date=“1/9/2009”>composite word
</nmspc:HeadWord>
</dic:LexicalEntry>
22
4 Ứ ng dụ ng củ a XML XML có thể tạ o ra các ngôn ngữ con khác.
Các ứ ng dụ ng thự c tiễ n củ a XML là mộ t tậ p các thẻ XML hoạ t độ ng trong mộ t lĩnh vự c nào đó như toán họ c, tin họ c, kinh doanh…
Mỗ i lĩnh vự c dự a trên đặ c tả XML
4.1 MathML - Ngôn ngữ đị nh dạ ng toán
họ c
Mụ c đích: hiể n thị và đị nh dạ ng các biể u thứ c
toán họ c trên Web
Giúp trình duyệ t không chỉ hiể n thị mà còn
hiể u các biể u thứ c toán họ c
Version 2.0 ra đờ i 21/ 3/ 2001
Ví dụ công thứ c
2 4 2
X
a
4.2 CML – Ngôn ngữ đị nh dạ ng hóa họ c
CML mô tả và hiể n thị nộ i dung củ a cấ u trúc
mộ t phầ n tử hóa họ c Cung cấ p danh sách công thứ c hóa họ c củ a các phầ n tử đã đị nh nghĩa sẵ n
Trang 54.2 CML - Ngôn ngữ đị nh dạ ng hóa họ c
26
5 Document Object Model (DOM) DOM là mộ t API đố i vớ i HTML và XML, đị nh nghĩa cấ u trúc logic củ a tài liệ u và các xử lý
củ a chúng DOM đư ợ c sử dụ ng để xử lý dữ liệ u lư u trong XML
Tài liệ u XML sẽ là mộ t cây bao gồ m tậ p hợ p các nút chứ a: phầ n tử , dữ liệ u, thuộ c tính…
27
5 Document Object Model (DOM)
Các loạ i nút trong DOM
Processing Instruction Chỉ thị xử lý
Document Type Kiể u tài liệ u
Document Fragment Đoạ n tài liệ u
28
5 Document Object Model (DOM)
Ví dụ
5 Document Object Model (DOM)
Nế u các thẻ lồ ng nhau = > mô hình phân
cấ p: nút cha, nút con, nút cháu…, dữ liệ u
W3C đị nh nghĩa nhiề u mứ c độ cho DOM
Level 0: đặ c tả DOM khở i đầ u, áp dụ ng trư ớ c đây
trong NN 3.0, I E 3.0
Level 1: đặ c tả DOM sử dụ ng phổ biế n hiệ n nay
Level 2: kế t hợ p DOM vớ i CSS hay XSL
Level 3: mứ c độ hoạ ch đị nh
5 Document Object Model (DOM)
Các đố i tư ợ ng cơ bả n củ a DOM
NodeList Mộ t tậ p hợ p nút
NamedNodeMap Mộ t tậ p các nút, cho phép truy
xuấ t theo tên cũng như chỉ số
Trang 65 Document Object Model (DOM)
Mộ t số phư ơ ng thứ c trong DOM
childNodes Trả về NodeList chứ a các nút con
firstChild Trả về nút con đầ u tiên
lastChild Trả về nút con cuố i cùng
parentNode Trả về nút cha
previousSibling Trả về nút cùng mứ c đứ ng trư ớ c
nextSibling Trả về nút cùng mứ c kế tiế p
nodeName Trả về tên củ a nút
nodeValue Trả về giá trị củ a nút
32
5 Document Object Model (DOM)
Ví dụ nodRoot trỏ tớ i nút gố c LexicalEntry nodRoot.childNodes(0) = > HeadWord nodRoot.childNodes(1) = > Category nodRoot.childNodes(0).nextSibling() = >
Category nodRoot.childNodes(0).parentNode() = >
LexicalEntry
33
6 XML và CSS
Sử dụ ng CSS để đị nh nghĩa cách hiể n thị các
thẻ XML
Thự c hiệ n
Tạ o ra tài liệ u XML
Tạ o ra file CSS (kiể u External Style) có chứ a đị nh
nghĩa các style củ a các thẻ trong tài liệ u XML
Chèn đoạ n mã khai báo việ c sử dụ ng CSS
<?xml-stylesheet type=“text/css”
href=“ten_file_css”?>
34
6 XML và CSS
Ví dụ
7 Extensible Stylesheet Language (XSL)
XSL đư ợ c dùng để đị nh dạ ng tài liệ u XML vớ i
mụ c đích có đư ợ c kế t quả như mộ t trang
HTML
2 loạ i
XSLT (XSL Transform): chuyên về chuyể n dị ch,
trích rút dữ liệ u XML đư a vào khuôn dạ ng HTML
XSL-FO (XSL Formatted Objects): chuyên về đị nh
dạ ng: font chữ , màu sắ c…
Kế t luậ n Ngôn ngữ XML rấ t dễ dàng sử dụ ng và có
ứ ng dụ ng đa dạ ng XML mô tả dữ liệ u có cấ u trúc nên đư ợ c dùng trong tổ chứ c CSDL
Trang 7Câu hỏ i
37