Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc

Tại sao XML sử dụng XML Schema?

 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 (data facet)

 Dễ dàng định nghĩa dữ liệu mẫu (data

patterns)

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

liệu khácVí dụ

 Note.xml

Tove

Jani

Reminder

Don't forget me this weekend!

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 1

Trang 1

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 2

Trang 2

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 3

Trang 3

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 4

Trang 4

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 5

Trang 5

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 6

Trang 6

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 7

Trang 7

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 8

Trang 8

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 9

Trang 9

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 59 trang duykhanh 7900
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc

Bài giảng Công nghệ XML và WEB ngữ nghĩa - Bài 2: Lược đồ XML - Trần Nguyên Ngọc
Lược đồ XML
(XML Schema)
Mục tiêu
 Đọc và tạo XML Schema
 Làm thế nào để sử dụng được XML Schema 
trong ứng dụng.
 Vì sao XML Schema mạnh hơn DTD
Giới thiệu
 Vì sự phức tạp của khai báo DTD, tổ chức 
W3C đưa ra một giải pháp tổng quát hơn 
DTD đó là khai báo và định nghĩa các phần 
tử trong tài liệu XML theo lược đồ XML (XML 
Schema).
 Để kiểm tra tính hợp lệ của tài liệu XML bằng 
lược đồ XML Schema, ta dùng các bộ kiểm 
tra cú pháp lược đồ (Schema Checker). 
Giới thiệu
 Định nghĩa những phần tử xuất hiện trong tài liệu XML. 
 Định nghĩa những thuộc tính xuất hiện trong tài liệu. 
 Định nghĩa quan hệ phần tử cha con
 Định nghĩa thứ tự các phần tử con
 Định nghĩa số phần tử con 
 Định nghĩa phần tử rỗng hay chứa dữ liệu text 
 Định nghĩa kiểu dữ liệu của phần tử và thuộc tính 
 Định nghĩa giá trị mặc định của thuộc tính và phần tử
Tại sao XML sử dụng XML Schema?
 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 (data facet)
 Dễ dàng định nghĩa dữ liệu mẫu (data 
patterns) 
 Dễ chuyển đổi kiểu dữ liệu này sang kiểu dữ 
liệu khác 
Ví dụ
 Note.xml
Tove
Jani
Reminder
Don't forget me this weekend!
Ví dụ (tt)
 Note.dtd
Ví dụ (tt)
 Note.xsd
<xs:schema xmlns:xs="" 
targetNamespace="" 
xmlns="" elementFormDefault="qualified">
Ví dụ (tt)
 Tài liệu XML có tham chiếu file DTD
<!DOCTYPE note SYSTEM 
"">
Tove
Jani 
Reminder
Don't forget me this weekend!
Ví dụ (tt)
 Tài liệu XML tham chiếu lược đồ XML 
<note xmlns="" 
xmlns:xsi="" 
xsi:schemaLocation=" note.xsd">
Tove
Jani
Reminder
Don't forget me this weekend! 
Lược đồ XML – Phần tử 
 là phần tử gốc của mọi lược đồ XML Schema.
...
...
 Trong lược đồ XML Schema chứa một vài thuộc tính như sau:
<xs:schema xmlns:xs="" 
targetNamespace="" 
xmlns="" 
elementFormDefault="qualified">
...
...
Lược đồ XML – Phần tử 
 xmlns:xs="“ chỉ 
ra các phần tử và kiểu dữ liệu dùng trong lược đồ từ 
 Chỉ định này bảo cho 
bộ kiểm tra cú pháp lược đồ rằng tất cả các phần tử 
dùng trong tài liệu XML đều được khai báo trong 
namespace "”. 
 xsi:schemaLocation=" 
note.xsd" 
Định nghĩa phần tử đơn
 Phần tử đơn là phần tử chỉ chứa dữ liệu 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:
Định nghĩa phần tử đơn
 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. 
Một vài kiểu dữ liệu phổ biến:
 xs:string 
 xs:decimal 
 xs:integer 
 xs:boolean 
 xs:date 
 xs:time 
Ví dụ
 Trong tài liệu XML có các phần tử sau:
Refsnes 36
1970-03-27 
 Định nghĩa trong XML Schema như sau:
Đặt giá trị mặc định 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ụ:
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 một phần tử tên là AGE và giá trị của nó 
chỉ nằm từ 0 đến 120.
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một tập các giá trị:
Ví dụ: định nghĩa một phần tử CAR mà giá trị của nó nằm trong tập 
các giá trị sau: BMW, TOYOTA, FORD
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một tập các giá trị:
Với ví dụ trên có cách viết tương tự:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “LETTER” mà giá trị của nó chỉ là một 
trong các kí tự thường từ a đến z:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “initials” mà giá trị của nó là 3 kí tự 
chữ hoa a đến z:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “initials” mà giá trị của nó là 3 kí tự 
chữ hoa a đến z hoặc chữ thường từ a đến z:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “choice” mà giá trị của nó là 3 kí tự 
chữ thường từ x, y hoặc z:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “prodid” mà giá trị của nó là một số 5 
chữ số từ 0 đến 9:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một 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:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “letter” mà giá trị của nó là một hoặc 
nhiều cặp kí tự mà mỗi cặp là một kí tự thường kèm theo một kí tự 
hoa sau nó: (sToP, không được là STOP hay StOp):
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “gender” mà giá trị của nó là một trong 
hai giá trị male hoặc female:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên một chuỗi các giá trị:
Ví dụ: định nghĩa một phần tử “password” mà giá trị của nó bắt buộc 
phải là 8 kí tự, các kí tự có thể là hoa hoặc thường từ a đến z và chữ 
số từ 0 đến 9:
Tạo các kiểu dữ liệu đơn giản
 Restriction trên chiều dài:
Ví dụ: định nghĩa một phần tử “password” mà giá trị của nó là một 
chuỗi 8 kí tự
Tạo các kiểu dữ liệu đơn giản
 Restriction trên chiều dài:
Ví dụ: định nghĩa một phần tử “password” mà giá trị của nó là một 
chuỗi >= 5 và <= 8 kí tự:
Bài tập
 Bài 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í lưu các thông 
tin sau: sinh viên gồm mã số 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 Schema với 
yêu cầu như sau:
Bài tập
 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 gồm các lớp {CTK28, CTK28CD, CTK29, 
CTK29CD, CTK30, CTK30CD, CTK31, 
CTK31CD}.
 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
Bài tập
 Bài 4
 Mỗi đơn hàng, người ta cần lưu các thông tin 
sau: Mã khách hàng, tên khách hàng, địa chỉ liên 
lạc 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ã mặt hàng, tên mặt hàng, số lượng, 
đơn giá.
 Định nghĩa XMl Schema với yêu cầu như sau: 
Bài tập
 MaKH và MaMH: là một chuỗi 4 kí tự trong đó hai 
kí tự đầu là chữ cái, hai kí tự sau là kí số.
 DiaChi: là một chuỗi các 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à số 
dương.
Bài tập
 Bài 5: 
 Cho cấu trúc XML lưu trữ thông tin những cuốn sách đã 
được xuất bản theo từng lĩnh vực. Mỗi lĩnh vực có tên và 
có thể cha có sách xuất bản hoặc cũng có thể đã có nhiều 
cuốn. Mỗi cuốn sách có thông tin một tựa đề duy nhất, một 
hay nhiều tác giả, mỗi tác giả lại có thông tin mã tác giả, 
tên tác giả, địa chỉ, số điện thoại với mã tác giả, tên tác giả 
là duy nhất cho mỗi người, địa chỉ email, số điện thoại có 
thể không có hoặc chỉ có một thông tin độc nhất cho mỗi 
người
 Hãy định nghĩa XML Schema.
Bài tập
 Mã sách và mã tác giả là một chuỗi gồm 4 kí tự 
trong đó hai kí tự đầu là chữ và hai kí tự sau là 
số.
 Địa chỉ email là một chuỗi với định dạng 
##@##.##.
 Số điện thoại là một chuỗi các kí số với định dạng 
sau: MaVung.SoDT
Định nghĩa thuộc tính
 Một phần tử đơn giản thì không có thuộc tính. 
 Cú pháp định nghĩa thuộc tính:
 Trong đó:
 xxx là tên thuộc tính
 yyy là kiểu dữ liệu của thuộc tính
 Ví dụ: với phần tử có thuộc tính như sau:
Smith thì định 
nghĩa thuộc tính như sau:
Định nghĩa thuộc tính
 Các kiểu dữ liệu của thuộc tính:
 xs:string 
 xs:decimal 
 xs:integer 
 xs:boolean 
 xs:date 
 xs:time 
 Chỉ định ràng buộc và trị mặc định cho thuộc tính:
 Required: yêu cầu thuộc tính phải có và được gán giá trị trong thẻ
 Optional: thuộc tính có thể có hoặc không
 Fixed: giá trị thuộc tính phải đuợc gán cố định và không thay đổi.
 Default: nếu thuộc tính không được gán giá trị thì giá trị mặc định 
trong lược đồ sẽ là giá trị của thuộc tính.
 Sử dụng từ khóa use để chỉ định ràng buộc cho thuộc tính.
Ví dụ
Định nghĩa phần tử phức tạp
 Phần tử phức tạp 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 tạp:
 Những phần tử rỗng 
 Phần tử chứa các phần tử khác 
 Phần tử chứa dữ liệu text
 Phần tử chứa cả dữ liệu text và cả các phần tử
 Mỗi loại phần tử này có thể chứa nhiều thuộc tính
Một ví dụ phần tử phức
 Ví dụ phần tử rỗng:
 Phần tử Employee chứa các phần tử khác
John
Smith
 Phần tử Food chỉ chứa kiểu dữ liệu text
Ice cream 
 Phần tử description chứa cả text và phần tử khác
It happened on 03.03.99 ....
Định nghĩa phần tử phức tạp
 Ví dụ, với phần tử employee
John
Smith
ta có định nghĩa như sau:
Định nghĩa phần tử phức tạp
 Ví dụ, với phần tử employee
John
Smith
ta có thể dùng thuộc tính để tham chiếu đến phần tử khác:
Định nghĩa phần tử phức tạp
 Ta cũng có thể định nghĩa một phần tử phức tạp dựa trên cơ sở một phần tử phức 
tạp khác đã có và thêm vào một số phần tử.
Định nghĩa phần tử phức tạp
 Phần tử rỗng:
Ví dụ 1: 
Ví dụ 2:
<xs:attribute name="prodid" 
type="xs:positiveInteger"/>
tương tự
<xs:attribute name="prodid" 
type="xs:positiveInteger"/>
Định nghĩa phần tử phức tạp
 Phần tử chứa các phần tử khác:
Ví dụ: để định nghĩa phần tử person như sau:
John
Smith
ta định nghĩa như sau:
Chú ý: thẻ để đặt thứ tự xuất hiện của các phần tử trong tài liệu.
Định nghĩa phần tử phức tạp
 Định nghĩa phần tử chứa dữ liệu text
Ví dụ:
.... .... 
 hoặc
.... .... 
Định nghĩa phần tử phức tạp
 Định nghĩa phần tử chứa dữ liệu hỗn hợp
Ví dụ: ta định nghĩa phần tử như sau:
Dear Mr.John Smith.Your order 
1032will be shipped on 2001-07-
13.
Khi đó ta định nghĩa như sau:
Một số chỉ định
 Thứ tự:
 All: các phần tử con có thể xuất hiện theo thứ tự bất kì
 Choice: chỉ định hoặc điều này xảy ra hoặc điều khác xảy ra
Một số chỉ định
 Thứ tự:
 Sequence: yêu cầu các phần tử con xuất hiện theo đúng 
thứ tự
 Chỉ định số lần:
 maxoccur
ở ví dụ trên chỉ định rằng child_name xuất hiện ít nhất 1 lần và 
nhiều nhất 10 lần
 minoccur
Một số chỉ định
 Chỉ định nhóm: có thể định nghĩa và gom các phần tử lại 
thành một nhóm. Nhóm giống như biểu thức () trong DTD
 Để định nghĩa một nhóm ta dùng cú pháp sau:
...
 Ví dụ muốn độc giả có thể vừa mượn sách vừa mượn tạp 
chí, ta gom phần tử books và magazines vào thành một nhóm 
<xs:element ref=“magazines”
Một số chỉ định
 Ta có thể kết hợp all (các phần tử trong nhóm phải 
xuất hiện đồng thời trong tài liệu hoặc không xuất 
hiện lần nào cả), choice, sequence khi định nghĩa 
nhóm
Một số chỉ định
 Ta có thể định nghĩa một nhóm, và định nghĩa nhóm khác tham chiếu 
đến nó
Không gian tên miền (Namespace)
 Thuộc tính 
xsi:noNamespaceSchemaLocation
 Khi trong lược đồ XMLSchema không yêu cầu 
namespace. Để chỉ định vị trí cho lược đồ 
XMLSchema không dùng target namespace. 
Không gian tên miền (Namespace)
 Ví dụ: sinhvien.xsd
<xs:schema id="SinhVien" 
xmlns:xs="">
Không gian tên miền (Namespace)
 Ví dụ(tt): sinhvien.xml
<ThongTinSV xmlns:xs="
instance" xs:noNamespaceSchemaLocation="SinhVien1.xsd">
0413213
Nguyen Quang Dung
Không gian tên miền (Namespace)
 Thuộc tính xsi:SchemaLocation
 Thuộc tính này được dùng trong tài liệu 
XMLSchema có target namespace. Danh 
sách anyURI mỗi phần tử là một cặp gồm 
namesapce và mô tả vị trí chỉ định.
Không gian tên miền (Namespace)
 Ví dụ: sinhvien.xsd
<xs:schema id="SinhVien" targetNamespace="" 
elementFormDefault="qualified" xmlns:sv="" 
xmlns:mstns="" 
xmlns:xs="">
Không gian tên miền (Namespace)
 Ví dụ(tt): sinhvien.xml
<sv:ThongTinSV 
xmlns:xs="
instance" xs:schemaLocation="
SinhVien.xsd" xmlns:sv="" >
0413113
Nguyen Van Hung

File đính kèm:

  • pdfbai_giang_cong_nghe_xml_va_web_ngu_nghia_bai_2_luoc_do_xml_t.pdf