0% found this document useful (0 votes)
15 views

Compare HTML and XML

Compare HTML and XML

Uploaded by

dowloaderv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Compare HTML and XML

Compare HTML and XML

Uploaded by

dowloaderv
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 110

NGÔN NGỮ ĐỊNH

DẠNG HTML VÀ XML


HTML LÀ GÌ?

2
HTML là gì?

1. HTML là gì?
2. HTML dùng để làm gì?
3. Hiển thị HTML bằng cách nào?
4. Các thẻ dùng để làm gì?

3
HTML là gì?

❖ HTML – Hyper Text Markup Language – Ngôn ngữ


đánh dấu siêu văn bản.
❖ Được sử dụng để tạo ra một trang web, trên một
website có thể sẽ chứa nhiều trang và mỗi trang
được quy là một tài liệu HTML.
❖ Trình duyệt đọc file HTML để hiển thị nội dung.
❖ Làmột file văn bản có chứa các thẻ (tag) và nội
dung trang web.
❖ Cácthẻ được sử dụng để định dạng dữ liệu, qui
định cách thức hiển thị nội dung trang web. 4
HTML là gì?

❖ Cha đẻ của HTML là Tim Berners-Lee, cũng là


người khai sinh ra World Wide Web và chủ tịch
của World Wide Web Consortium (W3C – tổ
chức thiết lập ra các chuẩn trên môi trường
Internet).
❖ Một tài liệu HTML được hình thành bởi các phần
tử HTML (HTML Elements) được quy định bằng
các cặp thẻ (tag), các cặp thẻ này được bao bọc
bởi một dấu ngoặc ngọn (ví dụ <html>) và
thường là sẽ được khai báo thành một cặp, bao
gồm thẻ mở và thẻ đóng: (<strong> </strong>).5
HTML là gì?

❖ Cấu trúc của HTML rất đơn giản và logic, với bố


cục từ trên xuống dưới, từ trái qua phải, với 2
phần chính là HEAD và BODY.
❖ Các website viết bằng HTML đều tuân theo cấu trúc
cơ bản như sau:
✓ Mọi trang HTML đều phải khai báo DOCTYPE (định
nghĩa chuẩn văn bản) ngay từ dòng đầu tiên.
✓ Thẻ <html> cho trình duyệt biết mở đầu và kết
thúc của trang HTML.

6
HTML là gì?

✓ Thẻ <head> chứa tiêu đề và các thông tin


khai báo, các thông tin ẩn khác.
✓ Thẻ <body> sẽ hiển thị nội dung của trang
web. Đây là phần thông tin mà người dùng sẽ
nhìn thấy khi trình duyệt đọc các mã HTML.
✓ Mọi kí tự nằm giữa dấu <!– và –> sẽ được xem
là thẻ comment và sẽ bị trình duyệt bỏ qua,
không xử lý và không hiển thị.
❖ Một tập tin HTML sẽ bao gồm các phần tử HTML và
được lưu lại dưới đuôi mở rộng là .html hoặc .htm.
7
HTML được xử lý ra sao?

❖ Khi một tập tin HTML được hình thành, việc xử lý


nó sẽ do trình duyệt web đảm nhận. Trình duyệt
sẽ đóng vai trò đọc hiểu nội dung HTML từ các thẻ
bên trong và sẽ chuyển sang dạng văn bản đã
được đánh dấu để đọc, nghe hoặc hiểu (do các
bot máy tính hiểu).
❖ HTML không phân biệt chữ hoa hay chữ thường.

❖ HTML không báo lỗi cú pháp, nếu sai cú pháp kết


quả hiển thị nội dung không đúng.
8
HTML được xử lý ra sao?

❖ Ví dụ: ta có 1 tập tin HTML như sau:


<html>
<head>
<title> Demo HTML </title>
</head>
<body>
<h1 align="center"><font color="navy">Chào mừng các
bạn đến với thế giới HTML</h1>
</body>
</html>
9
HTML được xử lý ra sao?

❖ Kếtquả trang HTML trên trình duyệt Google


Chrome:

10
Cách tạo ra tập tin HTML

❖ HTML là một tập tin siêu văn bản nên có thể dùng
các chương trình soạn thảo văn bản không có
chức năng định dạng văn bản để tạo ra một tập
tin HTML.
❖ Trong Windows, có thể dùng Notepad để tạo ra
một tập tin HTML, còn trên MacOS thì có thể dùng
TextEdit và Vim trên các hệ điều hành Linux khác.
Miễn là sau đó phải lưu tập tin thành đuôi .html
hoặc .htm và sử dụng trình duyệt website để đọc
nó. 11
Vai trò của HTML trong website

❖ HTML là một ngôn ngữ đánh dấu siêu văn bản


nên nó sẽ có vai trò xây dựng cấu trúc siêu văn
bản trên một website, hoặc khai báo các tập tin kỹ
thuật số (media) như hình ảnh, video, nhạc.
❖ Điều đó không có nghĩa là chỉ sử dụng HTML để
tạo ra một website mà HTML chỉ đóng một vai trò
hình thành trên website.

12
Vai trò của HTML trong website

13
Vai trò của HTML trong website

✓ HTML – Xây dựng cấu trúc và định dạng các


siêu văn bản.
✓ CSS (Cascading Style Sheets)– Định dạng
các siêu văn bản dạng thô tạo ra từ HTML thành
một bố cục website, có màu sắc, ảnh nền,….
✓ Javascript – Tạo ra các sự kiện tương tác với
hành vi của người dùng (ví dụ nhấp vào ảnh trên
nó sẽ có hiệu ứng phóng to).
❖ Cùng với CSS và Javascript, HTML tạo ra bộ ba
nền tảng kĩ thuật cho WWW. 14
Vai trò của HTML trong website

✓ PHP – Ngôn ngữ lập trình để xử lý và trao đổi


dữ liệu giữa máy chủ đến trình duyệt (ví dụ như
các bài viết sẽ được lưu trong máy chủ).
✓ MySQL – Hệ quản trị cơ sở dữ liệu truy vấn có
cấu trúc (SQL – ví dụ như các bài viết sẽ được
lưu lại với dạng dữ liệu SQL).
Để dễ hình dung, ta tưởng tượng khi so sánh
trang web và cơ thể người thì: HTML giống như là
bộ xương, ngôn ngữ lập trình (PHP, ASP, C#,…) là
máu thịt, còn CSS chính là quần áo và son phấn. 15
Vai trò của HTML trong website

❖ Website tĩnh (static web) – Là một website


không giao tiếp với máy chủ web để gửi nhận dữ
liệu mà chỉ có các dữ liệu được khai báo sẵn bằng
HTML và trình duyệt đọc.
❖ Website động (dynamic web) – Là một website
sẽ giao tiếp với một máy chủ để gửi nhận dữ liệu,
các dữ liệu đó sẽ gửi ra ngoài cho người dùng
bằng văn bản HTML và trình duyệt sẽ hiển thị nó.
❖ Để một website có thể giao tiếp với máy chủ web
thì sẽ dùng một số ngôn ngữ lập trình dạng 16
server-side như PHP, ASP.NET, Ruby,..để thực
hiện.
BÀI TẬP

❖ Sinhviên sử dụng HTML (CSS) để thiết kế một trang


web cá nhân của mình, bao gồm các thông tin sau:
1. Thông tin cá nhân: Avatar, Họ và tên, Giới tính,
Địa chỉ, SDT,...
2. Kiến thức và kỹ năng
3. Kinh nghiệm
4. Mục tiêu

17
XML LÀ GÌ?

18
XML là gì?

❖ XML - eXtensible Markup Language - Ngôn ngữ


đánh dấu mở rộng, nhằm hướng tới việc thể hiện
dữ liệu theo cách để bên nhận và bên giao tiếp
đọc hiểu lẫn nhau và tổ chức dữ liệu để trao đổi
mà không bị lệ thuộc vào các chương trình ứng
dụng và platform khi giao tiếp.
❖ XML có khả năng mô tả nhiều loại dữ liệu khác
nhau. Nó là một ngôn ngữ siêu dánh dấu định
nghĩa cú pháp để tạo ra những ngôn ngữ đánh
dấu cho những lĩnh vực khác. 19
XML là gì?

❖ Mục đích chính của XML là đơn giản hóa việc chia
sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt
là các hệ thống được kết nối với Internet.
❖ XML cho phép tổ chức lưu trữ dữ liệu theo cấu
trúc theo ngữ nghĩa dễ dàng giao tiếp hay trao
đổi. Bên cạnh đó, XML còn cho phép việc khai
thác dữ liệu một cách dễ dàng thông qua bất kỳ
trình soạn thảo đơn giản nhất mà không cần tool
hỗ trợ.
20
XML là gì?

❖ XML là một ngôn ngữ tổng quát dùng để định


nghĩa dữ liệu thông qua các thẻ.
❖ Các thẻ (tags) chia tài liệu ra nhiều phần và nhận
dạng những phần khác nhau của tài liệu.
❖ Cho phép người sử dụng định nghĩa nội dung tag
mới phù hợp với qui định về cú pháp.
❖ Nội dung và tổ chức được lưu trữ trong file có
phần mở rộng là xml.

21
XML sử dụng ở đâu?

❖ XML tách dữ liệu từ HTML:


✓ Nếu cần hiển thị động trong tài liệu HTML của
người dùng sẽ mất rất nhiều công việc để chỉnh
sửa HTML mỗi khi thay đổi dữ liệu.
✓ Với XML, dữ liệu có thể được lưu trữ trong các
file XML riêng biệt. Có thể tập trung vào việc sử
dụng HTML để bố trí và hiển thị và những thay
đổi trong dữ liệu cơ bản trong XML sẽ không có
yêu cầu bất kỳ thay đổi nào đối với HTML.
22
XML sử dụng ở đâu?

❖ XML – đơn giản hóa việc chia sẻ dữ liệu:


✓ Trong thế giới thực, các hệ thống máy tính và
các cơ sở dữ liệu chứa dữ liệu ở định dạng
không tương thích. Dữ liệu XML được lưu trữ ở
dạng văn bản thuần.
✓ Điều này cung cấp một phần mềm và phần
cứng một cách độc lập với dữ liệu lưu trữ –>
làm cho nó dễ dàng hơn trong việc tạo ra dữ
liệu có thể chia sẽ bởi các ứng dụng khác
nhau. 23
XML sử dụng ở đâu?

❖ XML – đơn giản hóa việc vận chuyển dữ liệu:


✓ Một trong những thách thức tốn thời gian cho
các nhà phát triển là việc trao đổi các dữ liệu
giữa các hệ thống không tương thích trên
Internet.
✓ XML được dùng đóng gói và trao đổi giữa các hệ
thống. Trao đổi dữ liệu bằng XML làm giảm
đáng kể độ phức tạp này, kể từ khi các dữ liệu
có thể được đọc bởi các ứng dụng không tương
thích khác nhau. 24
XML sử dụng ở đâu?

Mối liên kết giữa các hệ thống:

25
XML sử dụng ở đâu?

Dữ liệu trao đổi giữa các hệ thống:

26
XML sử dụng ở đâu?

❖ Khi có sự trao đổi dữ liệu giữa các hệ thống khác


nhau thì dữ liệu đó được tổ chức dưới dạng XML.
❖ Hệ thống quản lý của Nhà hàng muốn lấy thông
tin của khách du lịch từ hệ thống của Công ty
du lịch thì giữa các hệ thống cần phải thực hiện
các bước sau:
✓ Bước 1: Giữa các hệ thống phải thống nhất cấu
trúc của tài liệu XML.

27
XML sử dụng ở đâu?

✓ Bước 2: Công ty du lịch sẽ trích xuất dữ liệu từ


hệ thống của mình, sau đó đóng gói dữ liệu
dưới dạng XML theo cấu trúc đã thoả thuận ở
bước 1.
✓ Bước 3: Hệ thống phần mềm của nhà hàng sẽ
tiến hành phân tích và trích xuất dữ liệu từ tài
liệu XML nhận được từ hệ thống của công ty
du lịch.

28
XML sử dụng ở đâu?

❖ XML – đơn giản hóa việc thay đổi nền tảng:


✓ Khi nâng cấp lên hệ thống mới (phần cứng hay
nền tảng phần mềm) một phần lớn dữ liệu phải
được thay đổi, và phần dữ liệu không tương
thích thường bị mất.
✓ Dữ liệu XML được lưu trữ trong định dạng văn
bản. Chính điều này làm cho nó dễ dàng hơn
khi mở rộng hoặc nâng cấp lên hệ điều hành
mới, ứng dụng mới, hoặc các trình duyệt mới
mà không làm mất dữ liệu. 29
XML sử dụng ở đâu?

❖ XML làm cho dữ liệu của người dùng khả


dụng hơn:
✓ Các ứng dụng khác nhau có thể truy cập dữ liệu
của người dùng, không chỉ trong các trang HTML
mà còn từ các nguồn dữ liệu XML.
✓ Với XML, dữ liệu của người dùng có thể khả
dụng cho tất cả các loại “máy đọc” (reading
machines – máy tính cầm tay, máy bằng giọng
nói, tin tức,..), và làm cho nó khả dụng thêm
cho những người mù hoặc những người khuyết30
tật khác.
XML sử dụng ở đâu?

❖ XML được dùng để tạo ra ngôn ngữ Internet


mới.
✓ XHTML (Extensible HyperText Markup Language)
Ngôn ngữ đánh dấu siêu văn bản mở rộng.
✓ WSDL (Web Service Definition Language) dùng
để mô tả các dịch vụ web có sẵn.
✓ RDF (Resource Description Framework ) và OWL
(The Web Ontology Language) để mô tả tài
nguyên và ontology.
✓ …. 31
Cú pháp của XML

❖ XML cung cấp một phương tiện dùng văn bản


(text) để mô tả thông tin và áp dụng một cấu
trúc kiểu cây cho thông tin đó.
❖ Tại mức căn bản, mọi thông tin đều thể hiện dưới
dạng text, chen giữa là các thẻ đánh dấu
(markup) với nhiệm vụ ký hiệu sự phân chia
thông tin thành một cấu trúc có thứ bậc của
các dữ liệu ký tự, các phần tử dùng để chứa dữ
liệu, và các thuộc tính của các phần tử đó.
32
Cú pháp của XML

❖ Đơn vị cơ sở của XML là các ký tự theo định


nghĩa của Universal Character Set (Bộ ký tự toàn
cầu). Các ký tự được kết hợp theo các tổ hợp
chuỗi hợp lệ để tạo thành một tài liệu XML.
❖ Tài liệu này gồm một hoặc nhiều thực thể, mỗi
thực thể thường là một phần nào đó của các ký
tự thuộc tài liệu, được mã hóa dưới dạng một
chuỗi các bit và lưu trữ trong một tệp văn
bản (text file).
33
Cú pháp của XML

❖ Cúpháp của thẻ XML: XML được xây dựng dựa


vào cấu trúc NODE lồng nhau, mỗi node sẽ có
một thẻ mở và một thẻ đóng.
VD1: <nodename>content</nodename>
Trong đó:
<nodename> là thẻ mở, tên của thẻ này do người dùng
tự định nghĩa.
</nodename> là thẻ đóng, tên của thẻ này phải trùng
với tên của thẻ mở.
content là nội dung của thẻ này. 34
Cú pháp của XML

❖ Lưu trữ domain thì cấu trúc như sau:


VD2: <domain>humg.edu.vn</domain>
❖ Lưu trữ thông tin domain và chủ sở hữu của nó thì
có thể như sau:
VD3: <domain owner="Nguyễn Văn Cường"
email = [email protected] > humg.edu.vn
</domain>

35
Cú pháp của XML

❖ Khai báo Header (chỉ thị xử lý): Trên đầu mỗi file
XML phải khai báo một thẻ để thông báo version
XML đang sử dụng (thường là version 1.0), và giá
trị của encoding (kiểu mã hóa ký tự).
❖ Cú pháp của thẻ chỉ thị xử lý như sau:

<?xml version="1.0" encoding="UTF-8"?>


VD2:
<?xml version="1.0" encoding="UTF-8"?>
<domain>humg.edu.vn</domain>
36
Cú pháp của XML

VD3: <?xml version="1.0" encoding="UTF-8"?>


<domain owner="Nguyễn Văn Cường"
email=“[email protected]">
humg.edu.vn</domain>
❖ Root node: Mỗi tài liệu XML nên có một thẻ ngoài
cùng và ta gọi thẻ này là root node. Thẻ này sẽ
khai báo tên chính của tài liệu XML.
Ví dụ cần lưu trữ danh sách domain thì có thể viết
như sau:
37
Cú pháp của XML

<?xml version="1.0" encoding="UTF-8"?>


<domains>
<domain owner="Nguyễn Văn Cường"email=
[email protected]">humg.edu.vn
</domain>
<domain owner="Nguyễn Văn Cường"email=
[email protected]">qa.freetuts.net
</domain>
</domains>
38
Công cụ soạn thảo tài liệu XML

❖ Tàiliệu XML có thể được soạn thảo bằng nhiều


công cụ khác nhau:
✓ Notepad

✓ Notepad ++

✓ AdobeFrameMarker

✓ XML Stylus Studio

✓ …

39
Công cụ soạn thảo tài liệu XML

❖ Tài liệu XML được tạo bằng một editor


❖ XML parser sẽ đọc tài liệu đó và chuyển tài
liệu thành những phần tử dạng cây.
❖ Parser sẽ truyền cây đó cho ứng dụng. Ứng
dụng này có thể là các chương trình hiểu phải
làm gì với dữ liệu đó. Nếu là browser thì dữ
liệu sẽ được hiển thị cho người dùng. Nếu là
chương trình khác thì dữ liệu có thể được thông
dịch như đầu vào của CSDL.
40
Hiển thị tài liệu XML

❖ Trình duyệt chỉ có thể hiển thị file XML bằng


cách giữ toàn bộ nội dung file XML lên màn
hình.
Ví dụ: file XML như sau:

41
Hiển thị tài liệu XML

42
Định kiểu XML

❖ Định kiểu XML bằng CSS (Cascading Style


Sheets).
❖ Định kiểu XML bằng XSLT (eXtensible Stylesheet
Language Transformations).
❖ CSS và XSLT dùng để định kiểu và biến đổi XML
để hiển thị dữ liệu phía người dùng không khác
gì HTML.
❖ Dùng DOM (Document Object Model ) và SAX
(Simple API for XML) để rút trích dữ liệu từ file
XML kết hợp với các thẻ định dạng HTML để hiển 43

thị dữ liệu phía người dùng.


Định kiểu XML

❖ Ví dụ: với ví dụ trước kết hợp với XSLT để định


kiểu như sau:

44
Định kiểu XML

45
Định kiểu XML

❖ Hiển thị tài liệu XML trong trình duyệt IE như


sau:

46
PHÂN BIỆT
XML VÀ HTML

47
Xét ví dụ về tập tin XML

48
Xét ví dụ về tập tin HTML

49
Sự giống nhau giữa XML và HTML

❖ Cả hai đều là các ngôn ngữ đánh dấu (Markup


Language). Điều này có nghĩa là cả XML và
HTML sử dụng các thẻ để đánh dấu văn bản.
❖ Ngoài ra thì XML và HTML đều được lưu sử dụng
văn bản thuần túy và có thể được mở và đọc nội
dung sử dụng phần mềm duyệt web.
❖ Tài liệu XML có thể tồn tại trên web giống như
tài liệu HTML.

50
Sự khác nhau giữa XML và HTML

❖ Sự khác nhau cơ bản giữa XML và HTML đó là:


✓ XML dùng để lưu trữ dữ liệu.

✓ HTML dùng để hiển thị dữ liệu.

❖ HTML định nghĩa một tập những tag cố định miêu tả


các element, những tag này chỉ để mô tả cách hiển
thị, không mô tả ý nghĩa của dữ liệu, do đó ta không
có tag ta mong muốn.
❖ XML miêu tả cấu trúc và ngữ nghĩa của tài liệu, tài
liệu chỉ chứa những tag để chỉ ra rằng cái gì trong tài
liệu chứ không miêu tả tài liệu được hiển thị như thế
nào. Đối với XML chúng ta có thể tạo ra những tag 51

mà chúng ta cần.
Sự khác nhau giữa XML và HTML

❖ HTML chỉ được thiết kế để sử dụng trên Internet


và trình duyệt. XML có nhiều ứng dụng rộng rãi
hơn như:
✓ Lưu trữ định dạng cho xử lý văn bản

✓ Trao đổi định dạng dữ liệu cho những chương


trình khác nhau
✓ Bảo tồn dữ liệu mà con người có thể đọc được.

52
Xây dựng tài liệu XML

❖ Chỉ thị xử lý:


<?xml version="1.0" encoding="UTF-8"? >
<Catalog>
<Product ProductID="1">Chair</Product>
<Product ProductID="2">Desk</Product>
</Catalog>

53
Xây dựng tài liệu XML

❖ Phải có một Phần tử gốc duy nhất, nó chứa tất


cả các Phần tử khác trong tài liệu.
Ví dụ:
<?xml version="1.0" encoding="UTF-8"? >
<Catalog>
……
</Catalog>

54
Xây dựng tài liệu XML

❖ Tạo các Phần tử con:


<?xml version="1.0" encoding="UTF-8"? Standalone = “yes”>
<Catalog>
<Product >
…..
</Product>
<Product >
…..
</Product>
</Catalog> 55
Xây dựng tài liệu XML

<?xml version="1.0" encoding="UTF-8"? Standalone = “yes”>


<Catalog>
<Product >
<ProductID>1</ProductID>
<ProductName>Chair</ProductName>
</Product>
<Product >
<ProductID>2</ProductID>
<ProductName>Table</ProductName>
</Product> 56

</Catalog>
Xây dựng tài liệu XML

❖ Mỗi Tag mở phải có một Tag đóng giống như


nó. Ví dụ:
1. <Order>
2. <OrderDate>2002-6-14</OrderDate>
3. <Customer>Helen Mooney</Customer>
4. <Item>
5. <ProductID>2</ProductID>
6. <Quantity>1</Quantity>
7. <Item>
8. <ProductID>4</ProductID>
9. <Quantity>3</Quantity>
10. </Item> 57

11. </Order>
Xây dựng tài liệu XML

❖ Trong một cặp Tag đóng và mở phải được đánh


vần như nhau, có nghĩa là các cặp ký tự của cặp
Tag đóng mở này phải giống nhau hoàn toàn.
Ví dụ:
1. <Order>
2. <OrderDate>2001-01-01</Orderdate>
3. <Customer>Graeme Malcolm</Customer>
4. </Order>
Sửa thành: <OrderDate> </OrderDate>
Hoặc <Orderdate> /Orderdate>
58
Xây dựng tài liệu XML

❖ Mỗi Phần tử con phải nằm trọn bên trong Phần


tử cha của nó.
Ví dụ:
1. <Catalog>
2. <Category CategoryName="Beverages">
3. <Product ProductID="1">
4. Coca-Cola
5. </Category>
6. </Product>
7. </Catalog>

59
Xây dựng tài liệu XML

❖ Giá trị của thuộc tính phải được đặt trong cặp
dấu nháy kép hoặc cặp dấu nháy đơn.
Ví dụ:
1. <Catalog>
2. <Product ProductID=‘1’>Chair</Product>
3. <Product ProductID='2">Desk</Product>
4. </Catalog>
Sửa thành: ProductID=”2" hoặc ProductID='2’

60
Xây dựng tài liệu XML

❖ Không gian tên (namespace)


<?xml version="1.0“ encoding="UTF-8"? Standalone = “yes”?>
<BookOrder OrderNo="1234">
<OrderDate>2001-01-01</OrderDate>
<Customer>
<Title>Mr.</Title>
<FirstName>Graeme</FirstName>
<LastName>Malcolm</LastName>
</Customer>
<Book>
<Title>Treasure Island</Title>
<Author>Robert Louis Stevenson</Author>
</Book> 61

</BookOrder>
Xây dựng tài liệu XML

Ở ví dụ trên:
- Phần tử Title nói đến hai loại dữ liệu khác nhau,
một nói về tên tác giả một nói về tiêu đề sách,
điều này làm cho ta nhầm lẫn giữa hai loại dữ
liệu.
- Khi kết hợp giữa các tài liệu XML khác nhau có
thể xảy ra trường hợp trùng tên Tag (thẻ)
=> định nghĩa không gian tên để phân biệt

62
Xây dựng tài liệu XML

✓ Khai báo không gian tên:


- Đưa thêm thuộc tính xmlns:prefix vào bên
trong phần tử gốc, prefix là tên của không gian
tên, mỗi không gian tên cần mang một định danh
duy nhất.
- Một không gian tên có thể là một địa chỉ Internet
hoặc một địa chỉ nào đó miễn là địa chỉ này phải
duy nhất.

63
Xây dựng tài liệu XML

✓ Khai báo không gian tên:


- Đưa thêm thuộc tính xmlns:prefix vào bên
trong phần tử gốc, prefix là tên của không gian
tên, mỗi không gian tên cần mang một định danh
duy nhất.
- Một không gian tên có thể là một địa chỉ Internet
hoặc một địa chỉ nào đó miễn là địa chỉ này phải
duy nhất.
Ví dụ sau đây sẽ tạo ra không gian tên hs, bok và
áp dụng cho tất cả các phần tử con: 64
Xây dựng tài liệu XML

<?xml version="1.0“encoding="UTF-8"? >


<BookOrder
xmlns:hs="http://www.northwindtraders.com/customer"
xmlns:bok ="http://www.northwindtraders.com/book”>
<hs:Customer >
<hs:Title>Mr.</Title>

</hs:Customer>
<bok:Book>
<bok:Title>Treasure Island</Title>

</bok:Book>
</BookOrder> 65
Xây dựng tài liệu XML

✓ Không gian tên mặc định: Nếu các phần tử của tài
liệu chỉ sử dụng duy nhất một không gian tên thì
chúng ta có thể khai báo không gian tên mặc định
cho các phần tử con của một phần tử cha bằng cách
chỉ ghi thuộc tính xmlns và bỏ đi prefix
<?xml version="1.0“ encoding="UTF-8"? >
<BookOrder xmlns ="http://www.northwindtraders.com/customer">
< Customer >
< Title>Mr.</Title>
< FirstName>Graeme</FirstName>
< LastName>Malcolm</LastName>
</ Customer> 66

</BookOrder>
Xây dựng tài liệu XML

<?xml version="1.0"?>
<BookOrder xmlns="http://www.northwindtraders.com/order"
xmlns:cus="http://www.northwindtraders.com/customer"
xmlns:bok ="http://www.northwindtraders.com/book”>
<OrderDate>2001-01-01</OrderDate>
<cus:Customer >
<cus:Title>Mr.</cus:Title>
<cus:FirstName>Graeme</cus:FirstName>
<cus:LastName>Malcolm</cus:LastName>
</cus:Customer>
<bok:Book >
<bok:Title>Treasure Island</bok:Title>
<bok:Author>Robert Louis Stevenson</bok:Author>
67
</bok:Book>
</BookOrder>
BÀI TẬP

✓ Xây dựng tài liệu XML cho dữ liệu sau

68
BÀI TẬP
Customer Book
OrderDate
Title FirstName LastName Title Author
Phân tích thiết kế hệ Nguyễn Văn Ba
Mr Đỗ Hiếu Anh 22/10/2019 thống thông tin
Giáo trình lập trình Java Đoàn Văn Ban
Giáo trình Phân tích thiết Phạm Nguyễn
kế hệ thống thông tin theo Cương
Mr Nguyễn Văn Dũng 19/5/2019 hướng đối tượng
Java cho sinh viên Douglas Bell
An introduction to object- C. Thomas Wu
oriented programming
Mrs Phan Anh Thư 3/6/2019 with Java
Giáo trình nhập môn Huỳnh Văn Đức
UML
Giáo trình Wen ngữ nghĩa Hoàng Hữu Hạnh
Mrs Lưu Thục Anh 31/7/2019
Thiết kế website Hoàng Anh Đức
Miss Nguyễn Thúy Vân 31/8/2019 Hệ thống đa phương tiện Đỗ Trung Tuấn
Truyền thông Đa phương Lê Đắc Nhường 69
Miss Nguyễn Thùy Dung 5/1/2020
tiện
LƯỢC ĐỒ XML
XML SCHEMA

70
Lược đồ XML

• Lược đồ XML 1.0 ban đầu được xuất bản vào năm
2001, với phiên bản thứ hai sau năm 2004 để sửa
một số lượng lớn lỗi.
• Lược đồ XML 1.1 đã trở thành Khuyến nghị của tổ
chức W3C vào ngày 05 tháng 4 năm 2012, được
cung cấp để sử dụng bởi các thành viên W3C và
công chúng.
• Lược đồ XML 1.1 giữ lại tất cả các tính năng thiết yếu
của Lược đồ XML 1.0 nhưng thêm một số tính năng
mới để hỗ trợ chức năng do người dùng yêu cầu, sửa
nhiều lỗi trong Lược đồ XML 1.0 và làm rõ từ ngữ. 71
Lược đồ XML

• Trước khi Lược đồ XML ra đời đã có nhiều kiểu định


dạng văn bản điện tử như GML (Generalized Markup
Language) của IBM, SGML (Standard Generalized
Markup Language) của ANSI vào năm 1980 và HTML
(Hyper Text Markup Language).
• Tuy nhiên các phương pháp này có nhiều nhược
điểm như GML và SGML không thích hợp để truyền
dữ liệu trên Web, HTML chủ yếu chú trọng vào việc
làm cách nào hiển thị thông tin hơn là chú trọng đến
nội dung truyền tải.
• Chính vì vậy Lược đồ XML được tạo ra để giải quyết 72
các nhược điểm trên.
Lược đồ XML

• Mục đích của Lược đồ XML là xác định và mô tả một


lớp tài liệu XML bằng cách sử dụng các thành phần
lược đồ để ràng buộc và ghi lại ý nghĩa, cách sử
dụng và mối quan hệ của các bộ phận cấu thành của
chúng: kiểu dữ liệu, phần tử và nội dung và thuộc
tính của chúng và các giá trị của chúng.
• Các lược đồ cũng có thể cung cấp cho đặc tả thông
tin tài liệu bổ sung, chẳng hạn như chuẩn hóa và
mặc định các giá trị thuộc tính và thành phần.

73
Lược đồ XML

• XML dùng để phục vụ cho việc mô tả dữ liệu (thông


tin lưu trữ bao gồm những gì, lưu trữ ra sao) để các
hệ thống khác nhau có thể đọc và sử dụng những
thông tin này một cách thuận tiện;
• Các thẻ (tag) của XML thường không được định
nghĩa trước mà chúng được tạo ra theo quy ước của
người tạo, hoặc Chương trình tạo ra XML theo những
quy ước của chính họ;
• XML sử dụng các khai báo kiểu dữ liệu DTD
(Document Type Definition) hay lược đồ Schema để
mô tả dữ liệu. 74
Lược đồ XML

Ưu điểm:
• Dễ dàng để mô tả nội dung tài liệu vì dùng chính
cú pháp XML để định nghĩa.
• Dễ kiểm tra tính hợp lệ của tài liệu.

• Dễ định nghĩa về mặt dữ liệu.

• Dễ dàng định nghĩa dữ liệu mẫu.

• Dễ dàng chuyển đổi kiểu dữ liệu này sang kiểu


dữ liệu khác.
75
Lược đồ XML - đúng cú pháp

• Chỉ có duy nhất có một phần tử thuộc cấp cao


nhất trong tài liệu, còn gọi là nút gốc (root
element)
• Mỗi một thẻ mở đều phải có thẻ đóng và tên thẻ
là phân biệt hoa thường
• Các thẻ khi đóng phải theo đúng trình tự (mở sau
đóng trước)
• Tên thẻ không nên có khoảng trắng, không nên
bắt đầu bằng “xml”
76
Lược đồ XML - đúng cú pháp

•Các thuộc tính (atributes) của một thẻ luôn luôn


tồn tại theo cặp theo quy ước:
<tên> = “<giá_trị>”;
không nên đặt tên thuộc tính trùng nhau, và giá trị
của thuộc tính phải đặt trong cặp dấu nháy kép
hay nháy đơn. Tên của thuộc tính (atribute) sẽ
theo qui luật đặt tên giống như đối với tên thẻ
• Các thẻ (tag) trong XML có thể lồng nhau (Thẻ
này có thể chứa nhiều thẻ khác ở bên trong).
77
Lược đồ XML – Các kiểu dữ liệu

78
Lược đồ XML – Phần tử <Schema>

• <Schema> là phần tử gốc của mọi lược đồ XML


<?xml version="1.0“ encoding="UTF-8"? Standalone = “yes”?>
<xs:schema>
…..
</xs:schema >

✓ Trong lược đồ XML chứa một vài thuộc tính sau:


<?xml version="1.0“ encoding="UTF-8"? Standalone = “yes”?>
<xsd:schema
xmlns:xsd=“http:///www.w3.org/2001/XMLSchema’”
xmlns= “http:///www.w3schools.com”
elementFormDefault=“qualified”>
…..
79
</xsd:schema >
Lược đồ XML – Phần tử <Schema>

• xmlns:xsd=“http:///www.w3.org/2001/XMLSchema”
chỉ ra các phần tử và kiểu dữ liệu dùng trong lược đồ
được khai báo trong không gian tên
http:///www.w3.org/2001/XML với tiền tố “xsd”.
• xmlns=http:///www.w3schools.com là không gian
tên mặc định.
• elementFormDefault="qualified" chỉ ra rằng tên các
thành phần được sử dụng trong file XML có khai báo
schema phải thỏa mãn các khai báo namespace.
80
Lược đồ XML – khai báo phần tử

• Có 2 dạng khai báo phần tử (Element) trong lược đồ


là phần tử đơn (simple element) và phần tử phức
(complex element)
✓ Phần tử đơn: được dùng để khai báo cho các
element chỉ chứa text không có khai báo các thẻ
con hay thuộc tính.
✓ Phần tử phức: được dùng khai báo các khai báo
Element có chứa element con, thuộc tính….

81
Lược đồ XML – ví dụ

82
Tham chiếu Lược đồ XML

• Một tài liệu XML cần tham chiếu đến lược đồ


tương ứng của nó.
• Để tham chiếu ta sử dụng thuộc tính trong phần
tử gốc như sau:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation=”https://yinyangit.wordpress.c
om/test.xsd&#8221;

83
Tham chiếu Lược đồ XML

84
Lược đồ XML – Phần tử đơn

• Phần tử đơn là phần tử chỉ chứa text, không


chứa các phần tử khác hay thuộc tính.
• Kiểu text trong XML Schema có thể là kiểu
boolean, string, date,…
• Cú pháp để định nghĩa một phần tử đơn:

<xs:element name=“xxx”type=“yyy”>
Trong đó: xxx là tên của phần tử và yyy là kiểu dữ
liệu của phần tử. XML schema đã xây dựng sẵn
nhiều kiểu dữ liệu: xs:string; xs:decimal;
xs:integer; xs:boolean; xs:date; xs:time. 85
Lược đồ XML – Phần tử đơn

• Trong tài liệu XML có các phần tử sau:


<lastname>Refsnes</lastname>
<age>36</age>
<dateborn>1970-03-27</dateborn>
• Định nghĩa trong XML Schema như sau:
<xs:element name=“lastname” type=“xs:string”/>
<xs:element name=“age” type=“xs:integer”/>
<xs:element name=“dateborn” type=“xs:date”/>
86
Lược đồ XML – Phần tử đơn

• Đặt giá trị cho phần tử đơn:


❖ Giá trị mặc định:

✓ Dùng Default: phần tử sẽ được tự động gán giá trị


mặc định nếu nó không được gán bởi giá trị khác
được.
✓ Dùng Fixed: giá trị của phần tử sẽ được gán bằng
giá trị mặc định và không thay đổi.
Ví dụ:
<xs:element name=“colour” type=“xs:string” default=“red”/>
<xs:element name=“colour” type=“xs:string” fixed=“red”/>
87
Lược đồ XML – Phần tử đơn

• Đặt giá trị mặc định cho phần tử đơn:


✓ Dùng Default: phần tử sẽ được tự động gán giá trị
mặc định nếu nó không được gán bởi giá trị khác
được.
✓ Dùng Fixed: giá trị của phần tử sẽ được gán bằng
giá trị mặc định và không thay đổi.
Ví dụ:
<xs:element name=“colour” type=“xs:string” default=“red”/>
<xs:element name=“colour” type=“xs:string” fixed=“red”/>
88
Lược đồ XML – Phần tử đơn

• Tạo các kiểu dữ liệu đơn giản


✓ Restriction: dùng để định nghĩa các giá trị cho
phần tử hay thuộc tính trong tài liệu XML.
✓ Restriction trên giá trị: ví dụ muốn định nghĩa phần
tử tên là AGE và giá trị của nó chỉ nằm từ 0 đến 120
<xs:element name=“age”
<xs:simpleType>
<xs:restriction base=“xs:integer”>
<xs:mininclusive value=“0”/>
<xs:maxinculusive value=“120”/>
</xs:restriction>
</xs:simpleType> 89

</xs:element>
Lược đồ XML – Phần tử đơn

✓ Restriction trên một tập giá trị: ví dụ muốn định


nghĩa phần tử CAR Mà giá trị của nó trong tập giá
trị sau: BMW, TOYOTA, FORD
<xs:element name=“CAR”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:enumeration value=“BMW”/>
<xs:enumeration value=“TOYOTA”/>
<xs:enumeration value=“FORD”/>
</xs:restriction>
</xs:simpleType>
</xs:element> 90
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử LETTER mà giá trị của nó chỉ là
một trong các kí tự từ a đến z
<xs:element name=“LETTER”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“[a-z]”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
91
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử LETTER mà giá trị của nó là 3 kí
tự chữ hoa a đến z
<xs:element name=“LETTER”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“[A-Z] [A-Z] [A-Z]”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
92
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử LETTER mà giá trị của nó là 3 kí
tự chữ hoa a đến z hoặc chữ thường từ a đến z
<xs:element name=“LETTER”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“[a-zA-Z][a-zA-Z][a-zA-Z]”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
93
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử prodid mà giá trị của nó là một
số 5 chữ số từ 0 đến 9
<xs:element name=“prodid”
<xs:simpleType>
<xs:restriction base=“xs:integer”>
<xs:pattern value=“[0-9][0-9][0-9][0-9][0-9] ”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
94
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử LETTER mà giá trị của nó là
không có hoặc là một chuỗi gồm nhiều kí tự thường
từ a -z
<xs:element name=“LETTER”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“[a-z]*”/>
</xs:restriction>
</xs:simpleType>
</xs:element> 95
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử gender mà giá trị của nó là một
trong hai giá trị male hoặc female
<xs:element name=“gender”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=“male|female”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
96
Lược đồ XML – Phần tử đơn

✓ Restriction trên một chuỗi các giá trị: ví dụ muốn


định nghĩa phần tử password mà giá trị của nó bắt
buộc phải là 8 kí tự có thể là hoa hoặc thường từ a-
z và chữ số từ 0 - 9
<xs:element name=“password”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:pattern value=[a-zA-Z0-9]{8}”/>
</xs:restriction>
</xs:simpleType>
</xs:element> 97
Lược đồ XML – Phần tử đơn

✓ Restriction trên chiều dài: ví dụ muốn định nghĩa


phần tử password mà giá trị của nó là một chuỗi 8
kí tự
<xs:element name=“password”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:lenght value=“8”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
98
Lược đồ XML – Phần tử đơn

✓ Restriction trên chiều dài: ví dụ muốn định nghĩa


phần tử password mà giá trị của nó là một chuỗi 8
kí tự>=5 và <=8 kí tự
<xs:element name=“password”
<xs:simpleType>
<xs:restriction base=“xs:string”>
<xs:minLenght value=“5”/>
<xs:maxLenght value=“8”/>
</xs:restriction>
</xs:simpleType>
99
</xs:element>
Lược đồ XML – Phần tử phức

✓ Phần tử phức là phần tử chứa các phần tử khác hay


các thuộc tính.
✓ Có 4 loại phần tử phức:

❖ Phần tử rỗng

❖ Phần tử chỉ chứa các thẻ con

❖ Phần tử chứa dữ liệu text

❖ Phần tử chứa cả dữ liệu text và các phần tử khác

✓ Mỗi loại phần tử này có thể chứa nhiều thuộc tính.

100
Lược đồ XML – Phần tử phức

✓ Cú pháp khai báo:


<xsd:element name=”tên thẻ”>
<xsd:complexType>
Nội dung của thẻ
</xsd:complexType>
</xsd:element>

101
Lược đồ XML – Phần tử phức

✓ Phần tử rỗng:
Ví dụ: <product prodid="1345" />
➢ Khai báo như sau:
<xsd:element name="product">
<xsd:complexType>
<xsd:attribute name="prodid" type="xsd:positiveInteger"/>
</xsd:complexType>
</xsd:element>
102
Lược đồ XML – Phần tử phức

✓ Phần tử chỉ chứa các thẻ con:


Ví dụ:
<person>
<firstname>John</firstname>
<lastname>Smith</lastname>
</person>

103
Lược đồ XML – Phần tử phức

➢ Khai báo như sau:


<xsd:element name="person">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="firstname" type="xsd:string"/>
<xsd:element name="lastname" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
104
Lược đồ XML – Phần tử phức

✓ Phần tử chỉ chứa text:


Ví dụ: <shoesize country="france">35</shoesize>
Khai báo như sau:
<xsd:element name="shoesize">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:integer">
<xsd:attribute name="country" type="xsd:string" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType> 105

</xsd:element>
Lược đồ XML – Phần tử phức

✓ Phần tử chứa text và các phần tử khác :


Ví dụ:
<letter>
Dear Mr.<name>John Smith</name>
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
</letter>

106
Lược đồ XML – Phần tử phức

✓ Khai báo như sau:


<xsd:element name="letter">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="orderid" type="xsd:positiveInteger"/>
<xsd:element name="shipdate" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element> 107
BÀI TẬP 1

✓ Một chương trình quản lý thông tin sinh viên và điểm các môn học mà
họ đăng kí có các thông tin sau: sinh viên gồm mã sinh viên, họ tên
sinh viên, lớp. Một môn học mà sinh viên đăng kí học gồm có thông
tin mã môn học, tên môn học, số tín chỉ, với mỗi môn học mà sinh
viên đăng kí học thì sẽ có kết quả cuối kì chính là điểm thi mà sinh
viên đạt được trong môn đó.
✓ Yêu cầu định nghĩa lược đồ XML với yêu cầu như sau:
❖ MSSV: là một chuỗi các kí tự số có chiều dài 7 kí tự
❖ Lớp của sinh viên là một trong những giá trị của tập hợp các lớp
{KHMT60, KHMT61, KHMT62, KHMT63, KHMT64}
❖ Mã môn học là một chuỗi 4 kí tự, hai kí tự đầu là chữ cái, hai kí tự sau là
số.
❖ Số tín chỉ của môn học >=1 và <=5
❖ Điểm của sinh viên >=0 và <=10 108
BÀI TẬP 2

✓ Mỗi đơn hàng, người ta cần lưu các thông tin sau: mã KH, tên
KH, địa chỉ và một danh sách những mặt hàng người đó mua.
✓ Danh sách mặt hàng gồm có nhiều mặt hàng khác nhau, mỗi
mặt hàng gồm những thông tin sau: mã MH, tên MH, số
lượng, đơn giá.
✓ Định nghĩa lược đồ XML với yêu cầu như sau:
➢ Mã KH và và mã MH là một chuỗi 4 kí tự trong đó hai kí tự
đầu là chữ cái, hai kí tự sau là số.
➢ Diachi: là một chuỗi kí tự với định dạng như sau: bắt đầu
phải là số nhà, sau đến tên đường
➢ Số lượng và đơn giá là kiểu số và phải là kiểu số dương.

109
HƯỚNG DẪN TỰ HỌC

[1] Foundations of Semantic Web Technologies.


- Appendix A: Trang 353 - 361.
[2] A semantic web primer
- Appendix A: Trang 227-250.

110

You might also like