Vũ Thị Tuyết - CNTT
LỜI CAM ĐOAN
Tôi xin cam đoan, kết quả của luận văn là kết quả do bản thân tôi tự tìm
hiểu, nghiên cứu và tổng hợp từ nhiều nguồn tài liệu khác nhau. Luận văn tốt
nghiệp là kết quả của quá trình học tập, nghiên cứu và thực hiện hoàn toàn
nghiêm túc, trung thực của bản than. Các tài liệu tham khảo được trích dẫn và
chú thích đầy đủ.
Thái Nguyên, ngày 15/10/2010.
Người cam đoan
Vũ Thị Tuyết
LỜI CẢM ƠN
Trước tiên tôi xin gửi lời cảm ơn chân thành nhất đến thầy PGS. TS
Đoàn Văn Ban đã định hướng và nhiệt tình hướng dẫn, giúp đỡ tôi rất nhiều
về mặt chuyên môn trong quá trình làm luận văn.
Tôi xin gửi lời biết ơn sâu sắc đến các thầy, các cô đã dạy dỗ và truyền
đạt những kinh nghiệm quý báu cho chúng tôi trong suốt hai năm học cao học
tại khoa Công nghệ thông tin - Đại học Thái Nguyên.
Tôi xin cảm ơn bạn bè, đồng nghiệp và gia đình, những người luôn gần
gũi động viên, chia sẻ cùng tôi trong suốt thời gian làm luận văn tốt nghiệp.
Thái Nguyên, tháng 11 năm 2010.
i
MỤC LỤC
Trang
Trang phụ bìa
Lời cam đoan
Lời cảm ơn
MỤC LỤC .......................................................................................................... i
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT..................................... iii
MỞ ĐẦU ........................................................................................................... 1
CHƢƠNG 1: TỔNG QUAN VỀ XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ .... 4
1.1 Tổng quan về XML ................................................................................. 4
1.1.2 Cấu trúc của tài liệu XML ................................................................. 4
1.1.2.1 Tài liệu XML .............................................................................. 4
1.1.2.2 Cấu trúc của tài liệu XML .......................................................... 5
1.1.3 Các thành phần cơ bản trong tài liệu XML ....................................... 6
1.1.4 Cấu trúc tài liệu XML hợp khuôn dạng .......................................... 11
1.1.5 Định nghĩa kiểu tài liệu DTD (Document Type Definition) .......... 13
1.1.6 Lƣợc đồ XML (XML schema) ........................................................ 15
1.1.7 Bảng định kiểu CSS (Cascading Style Sheet)................................. 16
1.1.8 Mô hình DOM (Document Object Model) ..................................... 18
1.1.9 Phân tích tài liệu XML theo mô hình DOM ................................... 20
1.2 Cơ sở dữ liệu quan hệ ............................................................................ 21
1.2.1 Cấu trúc cơ sở dữ liệu quan hệ ........................................................ 21
1.2.2 Ràng buộc toàn vẹn trên một cơ sở dữ liệu quan hệ ....................... 24
1.2.2.1 Định nghĩa................................................................................. 24
1.2.2.2 Các yếu tố của ràng buộc toàn vẹn ........................................... 24
1.2.3 Chuẩn hóa một cơ sở dữ liệu quan hệ ............................................. 25
1.3 Kết luận ................................................................................................. 27
CHƢƠNG 2: TÍCH HỢP CÁC HỆ THỐNG CƠ SỞ DỮ LIỆU QUAN HỆ
VÀ XML ......................................................................................................... 28
2.1 Phƣơng pháp luận ................................................................................. 28
2.1.1 Đối sánh nội dung của một CSDL quan hệ và một tài liệu XML ... 29
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
ii
2.1.2 Cấu trúc và kiểu cơ chế của một tài liệu XML và một lƣợc đồ
CSDL quan hệ. ......................................................................................... 31
2.1.3 Tên duy nhất .................................................................................... 34
2.1.4 Các giá trị rỗng và các giá trị mặc định .......................................... 35
2.1.5 Quan hệ ........................................................................................... 36
2.1.6 Thứ tự .............................................................................................. 38
2.2 Chuyển một tài liệu XML sang một cơ sở dữ liệu quan hệ ................... 39
2.3 Chuyển một CSDL quan hệ thành một tài liệu XML............................ 41
2.3.1 Phi chuẩn các lƣợc đồ quan hệ ........................................................ 42
2.3.2 Kết nối các CSDL đã phi chuẩn ...................................................... 45
2.3.3 Ánh xạ một CSDL quan hệ đã kết nối thành một DOM chính và
chuyển thành một tài liệu XML ............................................................... 47
2.4 Kết luận .................................................................................................. 51
CHƢƠNG 3: THUẬT TOÁN TÍCH HỢP CÁC HỆ THỐNG CƠ SỞ DỮ
LIỆU QUAN HỆ VÀ XML ............................................................................ 52
3.1 Thuật toán .............................................................................................. 52
3.1.1 Đọc tài liệu XML dƣới dạng sơ đồ hình cây................................... 52
3.1.2 Hiển thị tài liệu XML dƣới dạng bảng ............................................ 54
3.1.3 Chuyển một CSDL quan hệ sang một tài liệu XML ....................... 55
3.2 Cài đặt thuật toán ................................................................................... 55
3.3 Đánh giá kết quả .................................................................................... 59
3.4 Kết luận .................................................................................................. 59
CHƢƠNG IV: CÀI ĐẶT THỬ NGHIỆM .................................................... 60
4.1 Yêu cầu cài đặt: ..................................................................................... 60
- Phần mềm: ................................................................................................. 60
4.2 Giao diện của chƣơng trình nhƣ sau: ..................................................... 60
KẾT LUẬN ..................................................................................................... 67
TÀI LIỆU THAM KHẢO............................................................................... 69
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
CSDL
Cơ sở dữ liệu quan hệ
CSS
Cascading Style Sheets
DOM
Document Object Model
DTD
Document Type Definition
HTML
Hyperlink Text Markup Language
ODBC
Open Database Connectivity
SGML
Standard Generalized Markup Language
SQL
Structured Query Language
URL
Uniform Resource Locator
URI
Uniform Resource Identifier
W3C
World Wide Web Consortium
XML
eXtensible Markup Language
XSL
eXtensible Stylesheet Language
XSLT
eXtensible Stylesheet Language Transformations
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
1
MỞ ĐẦU
1. Lý do chọn đề tài
Hiện nay có rất nhiều các giao dịch, tƣơng tác thông qua Internet đƣợc
phát triển rầm rộ, hàng loạt các ngôn ngữ và các giao thức giao tiếp, thiết kế
trang web cũng ra đời để phục vụ cho những mục đích nhất định. Có thể kể
đến nhiều ngôn ngữ đã phổ biến nhƣ HTML, DHTML, Java, PHP, ASP,…
mỗi loại có ƣu và nhƣợc điểm riêng.
Ngôn ngữ XML (eXtensible Markup Language) mới phát triển trong
thời gian gần đây và đƣợc phổ biến rộng rãi (ở các ngôn ngữ .NET). Không
giới hạn và định nghĩa sẵn nhƣ HTML, XML cho phép ngƣời dùng tự định
nghĩa ra các thành phần riêng và mở rộng tuỳ ý.
XML trở nên phổ biến có rất nhiều nguyên nhân. Điểm quan trọng nhất
là XML cho phép dễ dàng xử lý, chuyển tải và trao đổi dữ liệu giữa nhiều ứng
dụng và tài liệu ngƣời dùng với các định dạng khác nhau.
Nhận thấy tính thiết thực của vấn đề này và đƣợc sự gợi ý của giáo viên
hƣớng dẫn, em đã chọn đề tài “Tích hợp cơ sở dữ liệu quan hệ và XML” làm
đề tài cho luận văn tốt nghiệp của mình.
2. Mục đích nghiên cứu
Luận văn tập trung tìm hiểu về XML và mô hình DOM, phƣơng pháp
sử dụng mô hình DOM để chuyển một cơ sở dữ liệu quan hệ sang tài liệu
XML và ngƣợc lại.
3. Đối tƣợng nghiên cứu
Tìm hiểu về công nghệ XML.
Tìm hiểu về cơ sở dữ liệu quan hệ.
Cách chuyển đổi một tài liệu XML sang một cơ sở dữ liệu.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
2
Cách chuyển một cơ sở dữ liệu quan hệ sang một tài liệu XML.
4. Giả thiết khoa học
Nếu chúng ta sử dụng công nghệ XML thì chúng ta không những có thể
phát triển một tài liệu XML mới trong khi vẫn sử dụng các cơ sở dữ liệu đang
tồn tại mà còn có thể trích rút các dữ liệu từ các tài liệu XML.
5. Nhiệm vụ nghiên cứu
Nghiên cứu về XML.
Nghiên cứu giải pháp thực hiện chuyển đổi giữa XML và cơ sở dữ
liệu quan hệ.
Xây dựng đƣợc một ứng dụng cụ thể dựa trên các kết quả nghiên
cứu ở trên.
Đồng thời luận văn cũng mong muốn nêu ra đƣợc một số hƣớng
nghiên cứu tiếp theo căn cứ vào các kết quả đã đạt đƣợc.
6. Phạm vi nghiên cứu
Luận văn tập trung nghiên cứu các kiến thức có liên quan, các cơ sở lý
thuyết: tài liệu XML, mô hình DOM, lý thuyết cơ sở dữ liệu, thuật toán
chuyển đổi giữa cơ sở dữ liệu quan hệ và XML.
7. Phƣơng pháp nghiên cứu
Đọc tài liệu: sách, báo và các tài liệu liên quan.
Phân tích - tổng hợp lý thuyết và xây dựng các thuật toán chuyển đổi
một cơ sở dữ liệu quan hệ sang dạng tài liệu XML và ngƣợc lại.
Khai thác ngôn ngữ lập trình C# để viết chƣơng trình Demo.
Luận văn đƣợc trình bày gồm bốn chƣơng:
Chƣơng 1: “Tổng quan về XML và cơ sở dữ liệu quan hệ” – Trình
bày tổng quan về cấu trúc một tài liệu XML, định nghĩa kiểu tài liệu DTD,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
3
lƣợc đồ, mô hình đối tƣợng tài liệu DOM, phân tích tài liệu XML theo mô
hình DOM và các khái niệm cơ sở về cơ sở dữ liệu (CSDL) quan hệ.
Chƣơng 2: “Tích hợp các hệ thống cơ sở dữ liệu và XML” – Giới
thiệu phƣơng pháp luận chuyển một tài liệu XML sang một CSDL quan hệ và
ngƣợc lại.
Chƣơng 3: “Thuật toán tích hợp các hệ thống cơ sở dữ liệu quan hệ và
XML” – Đƣa ra thuật toán tích hợp các hệ thống cơ sở dữ liệu quan hệ và
XML.
Chƣơng 4: “Cài đặt thử nghiệm” – Trình bày việc cài đặt thuật toán
bằng ngôn ngữ lập trình C# trong môi trƣờng ASP.NET, trên cơ sở xây dựng
ứng dụng trang web “Đăng ký học tín chỉ” của trƣờng Đại học Hàng Hải Việt
Nam.
Và phần cuối Kết luận – Tóm tắt các nội dung chính, các kết quả đạt
đƣợc và hƣớng nghiên cứu tiếp theo của luận văn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
4
CHƢƠNG 1: TỔNG QUAN VỀ XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ
1.1 Tổng quan về XML
1.1.1 Giới thiệu công nghệ XML
XML (viết tắt từ tiếng Anh eXtensible Markup Language, “Ngôn ngữ
Đánh dấu Mở rộng”) [2], [11] là ngôn ngữ đánh dấu với mục đích chung do
W3C đề nghị, để tạo ra các ngôn ngữ đánh dấu khác. Đây là một tập con đơn
giản của SGML, có khả năng mô tả nhiều loại dữ liệu khác nhau. 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. Các ngôn ngữ dựa
trên XML (thí dụ: RDF, RSS, MathML, XHTML, SVG, GML và Cxml) đƣợc
định nghĩa theo cách thông thƣờng, cho phép các chƣơng trình sửa đổi và
kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trƣớc về
hình thức của chúng.
1.1.2 Cấu trúc của tài liệu XML
1.1.2.1 Tài liệu XML
Một tài liệu HTML có thể tồn tại một số thẻ không đúng quy định
(trình biên dịch sẽ bỏ qua những thẻ này). Tuy nhiên với một tài liệu XML thì
điều này không thể xảy ra. Khi xây dựng một tài liệu XML, nó phải tuân thủ
theo một số quy luật nào đó. Những tài liệu XML tuân thủ đúng những quy
luật này đƣợc gọi là well-formed (tạm dịch là định dạng đúng). Với một tài
liệu không phải là well–formed, Internet Explorer sẽ thông báo lỗi khi nạp tài
liệu này.
Một tài liệu XML well–formed chƣa chắc là một tài liệu hợp lệ. Một tài
liệu XML đƣợc xem là hợp lệ nếu nó đảm bảo những quy tắc đặc tả trong tài
liệu Document Type Definition (DTD) hay giản đồ (schema). Một DTD hay
schema sẽ định nghĩa mọi thứ từ cấu trúc dữ liệu tới kiểu dữ liệu, những thuộc
tính đƣợc yêu cầu, và những ràng buộc về thành phần và thuộc tính đƣợc kết
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
5
hợp trong tài liệu. Phƣơng thức kiểm tra tài liệu này thƣờng đƣợc sử dụng
trong giao tiếp giữa ứng dụng – ứng dụng, đảm bảo dữ liệu trao đổi hợp lệ
tránh dẫn tới những ảnh hƣởng của dữ liệu không hợp lệ trên toàn hệ thống.
Tài liệu XML có thể viết bằng trình soạn thảo thông thƣờng (Notepad),
hay các trình soạn thảo chuyên dụng của XML: XML Notepad, XMLWriter,
XML Spy, ....
1.1.2.2 Cấu trúc của tài liệu XML
Tài liệu XML chỉ chứa đựng dữ liệu và cách lƣu trữ dữ liệu mà không
hề đề cập tới cách thức trình bày dữ liệu. Một tài liệu XML sẽ chứa những
đặc tả về cấu trúc dữ liệu. Mỗi cấu trúc gồm nhiều phần tử (element), mỗi
phần tử đƣợc bắt đầu với một thẻ bắt đầu (Start–tag) và kết thúc với một thẻ
kết thúc (End–tag). Giữa Start–tag và End–tag là nội dung của phần tử này.
Nội dung có thể bao gồm dữ liệu văn bản hay có thể là một phần tử khác.
Một tài liệu XML có thể đƣợc chia thành 2 thành phần chính, mỗi
thành phần có thể có các thành phần theo quy định khác nhau.
Phần mở đầu
Khai báo
Mô tả cấu trúc tài liệu
Phần nội dung
Hình 1.1 Cấu trúc tài liệu XML
Phần mở đầu (PROLOG) chứa các khai báo trong tài liệu XML nhƣ:
khai báo phiên bản sử dụng của XML, cách thức mã hóa dữ liệu, chỉ thị xử
lý, định nghĩa kiểu tài liệu cho tài liệu DTD, các chú thích, các khoảng trắng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
6
Chuẩn XML không bắt buộc phải khai báo phần mở đầu của XML. Tuy nhiên
W3C khuyến khích chúng ta nên sử dụng phần khai báo này, ít nhất cũng là
phần khai báo phiên bản sử dụng của XML.
Phần thân (BODY) của tài liệu chứa nội dung của dữ liệu bao gồm một
hay nhiều thành phần (bắt buộc phải có ít nhất một thành phần), những thành
phần này bao gồm các phần tử (element). Mỗi phần tử bao gồm một cặp thẻ
(thẻ bắt đầu và thẻ kết thúc). Phần tử đầu tiên của tài liệu đƣợc coi là phần tử
gốc (root element). Tất cả các tài liệu XML đƣợc gọi là hợp khuôn dạng nếu
chứa đựng duy nhất một phần tử gốc. Phần tử gốc chứa đựng tất cả các phần
tử và các cặp thẻ khác trong tài liệu.
1.1.3 Các thành phần cơ bản trong tài liệu XML
Định dạng và dữ liệu kí tự:
Tài liệu XML đƣợc tạo thành từ thành phần định dạng và thành phần
dữ liệu kí tự. Trong tài liệu XML, định dạng giúp phân biệt các thành phần
khác nhau trong tài liệu XML hay các nút khác nhau trong cây XML. Định
dạng bao gồm các thẻ bắt đầu, thẻ kết thúc, các phần tử thẻ rỗng, các tham
chiếu thực thể, tham chiếu kí tự, lời chú thích, phân đoạn CDATA, khai báo
kiểu tài liệu và chỉ thị xử lý. Tất cả các dữ liệu còn lại trong tài liệu XML
không phải là định dạng đều đƣợc xem là dữ liệu kí tự.
Các khai báo XML:
Một tài liệu XML có thể bắt đầu khai báo cho biết tài liệu đƣợc viết
theo định dạng và đặc tả XML. Nếu sử dụng khai báo XML, khai báo này
phải đƣợc đặt ở dòng đầu tiên của tài liệu. Không đƣợc khai báo XML sau bất
kỳ dòng nào khác. Khai báo XML trong tài liệu đƣợc viết theo cấu trúc:
< ?xml [các kiểu khai báo] ?>
Các khai báo trong XML gồm:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
7
Khai báo phiên bản (version): Khai báo này cho biết phiên bản đặc tả
XML mà tài liệu sử dụng (khai báo này là tùy chọn nhƣng W3C khuyến cáo
nên sử dụng khai báo này).
Khai báo mã hóa (encoding): bộ mã đƣợc sử dụng trong tài liệu XML
mặc định là UTF-8. Ngoài ra có thể sử dụng các bộ mã khác nhƣ Unicode,
UCS-2, USC-4, .... (khai báo này là tùy chọn).
Khai báo thực thể độc lập (standalone): đƣợc đặt thuộc tính là „yes‟ nếu
tài liệu không tham chiếu đến các thực thể khác bên ngoài, ngƣợc lại đƣợc đặt
là „no‟ (khai báo này là tùy chọn).
Phần chú thích:
Chú thích trong XML tƣơng tự với chú thích trong HTML. Khi diễn
dịch nội dung tài liệu, các bộ phân tích thƣờng bỏ qua những dòng chú thích.
Chú thích trong XML đƣợc đặt trong cặp kí tự < !-- Nội dung chú
thích --!>.
Cần tuân theo một số quy tắc khi thêm dòng chú thích vào tài liệu
XML :
Chú thích không đƣợc đặt trƣớc các khai báo.
Không đƣợc đặt trƣớc chú thích vào bên trong phần định dạng.
Không dùng chuỗi -- bên trong chú thích.
Chỉ thị xử lý
Các chỉ thị xử lý đƣợc dùng để chỉ dẫn cho bộ phân tích cách xử lý tài
liệu XML trong quá trình phân tích. Những chỉ thị này thƣờng bắt đầu bằng
dấu kết thúc cũng bằng ?> tƣơng tự nhƣ phần khai báo.
Ví dụ: chỉ thị yêu cầu bộ phân tích kết hợp dữ liệu của XML với bảng
định kiểu CSS:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
8
Thẻ và các phần tử (element)
Cấu trúc tài liệu XML dựa trên các thành phần định dạng (markup).
Những thành phần này bao gồm các phần tử (element). Mỗi phần tử thƣờng
bao gồm một cặp thẻ, thẻ bắt đầu và thẻ kết thúc.Ngoại trừ các phần tử rỗng
sẽ đƣợc định nghĩa bằng một thẻ. Thẻ bắt đầu (còn đƣợc gọi là thẻ mở) và bắt
đầu bằng kí tự < và kết thúc bằng kí tự >. Thẻ kết thúc (còn gọi là thẻ đóng)
bắt đầu bằng cặp kí tự và kết thúc bằng kí tự >.
Tên thẻ có thể bắt đầu bằng kí tự, gạch chân (_) hoặc dấu hai chấm (:).
Các kí tự kế tiếp có thể là kí tự, kí số, gạch chân, gạch nối, dấu chấm, dấu hai
chấm nhƣng không đƣợc là khoảng trắng.
Mỗi phần tử trong cùng một tài liệu XML là duy nhất. Bộ phân tích tài
liệu XML phân biệt chữ hoa và chữ thƣờng nên khi đặt tên cho các thẻ và
thuộc tính và cần phân biệt chữ hoa và chữ thƣờng.
Phần tử rỗng: là phần tử chỉ có một thẻ duy nhất đƣợc đặt trong cặp dấu < />.
Phần tử gốc (root element): là phần tử chứa đựng tất cả các phần tử và
các cặp thẻ khác trong tài liệu. Phần tử gốc đƣợc xem là phần rất quan trọng
trong cấu trúc XML.
Thuộc tính (attribute)
Thuộc tính của các thẻ trong tài liệu XML tƣơng tự nhƣ thuộc tính của
các thẻ HTML. Thuộc tính đƣợc kết hợp theo cặp name = value. Thuộc tính
cho phép xác định thêm thông tin và thuộc tính của thẻ. Thuộc tính đƣợc đặt
trong thẻ mở và thẻ rỗng. Để gán giá trị cho thuộc tính thƣờng dùng dấu bằng (=).
Thuộc tính luôn đƣợc gán giá trị là kiểu text (do phần định dạng luôn là
văn bản text). Trong XML, giá trị của thuộc tính phải đặt trong cặp dấu nháy
kép “”. Tuy nhiên, nếu giá trị chuỗi truyền cho thuộc tính bao gồm luôn cả
dấu nháy kép ta có thể sử dụng nháy đơn thay thế.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
9
Phân đoạn CDATA
Phân đoạn CDATA cũng là một phần tử trong tài liệu XML nhƣng chỉ
gồm một thẻ. Thẻ này bắt đầu bằng . Toàn bộ
nội dung đƣợc đặt trong phân đoạn CDATA sẽ không đƣợc trình phân tích coi
nhƣ cấu trúc XML mà chúng chỉ đƣợc xem nhƣ là dữ liệu thuần túy.
Không gian tên (namespace)
XML cho phép tự định nghĩa và đặt tên cho các thẻ. Nếu tài liệu XML
chỉ sử dụng cho một mục đích nào đó và không cần phải kết hợp với các tài
liệu XML khác thì điều này không thành vấn đề. Nhƣng một khi các ứng
dụng phát triển, tập định nghĩa các thẻ XML cần sống chung và kết hợp với
nhau thì đó là một vấn đề.
Để định nghĩa không gian tên cho các thẻ, ta đƣa vào thuộc tính
xmlns:prefix vào gốc phần tử. Trong đó prefix là tên miền hay không gian tên
mà ta muốn chỉ định, mỗi không gian tên có một định danh duy nhất (có thể là
định danh URL hoặc URI). Sau đó áp dụng không gian tên này cho tất cả các
thẻ trong tài liệu XML mà ta muốn chúng thuộc không gian tên đã định nghĩa
theo cú pháp:
đối với thẻ mở,
đối với thẻ đóng.
Ví dụ 1.1: Cho một tài liệu XML chƣa định nghĩa không gian tên nhƣ sau:
Nguyen Thanh Nam
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
10
14
Ha Noi
0986735461
Không gian tên danhsachsv đƣợc tạo cho thƣ viện sau:
< Danh_Sach_SV>
xmlns:danhsachsv=http://www.danhsachsv.com.vn/ds>
< SinhVien SinhVienID="0001">
Nguyen Thanh Nam
14
Ha Noi
0986735461
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
11
Sau đó áp dụng không gian tên cho các thẻ trong tài liệu XML nhƣ sau:
xmlns:danhsachsv=http://www.danhsachsv.com.vn/ds>
Nguyen Thanh Nam
14
Ha Noi
0986735461
1.1.4 Cấu trúc tài liệu XML hợp khuôn dạng
Một tài liệu XML đƣợc coi là một tài liệu hợp khuôn dạng nếu tuân
theo các quy tắc sau:
Các khai báo XML cần đƣợc đặt ở dòng đầu tiên của tài liệu. Khai báo chỉ
thị xử lý XML đầu tiên không bắt buộc , tuy nhiên nếu sử dụng thì phải đặt
chúng ở ngay dòng đầu tiên của tài liệu. Nếu không thực hiện đƣợc yêu cầu
này, tài liệu XML đƣợc xem là không hợp lệ.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
12
Tài liệu XML chỉ có một phần tử gốc, các phần tử khác nếu có phải là con
của phần tử gốc.
Mọi phần tử XML khác rỗng phải bao gồm đầy đủ thẻ đóng và thẻ mở.
Trong tài liệu XML hợp khuôn dạng, mọi thẻ mở (trừ thẻ rỗng) phải có thẻ
đóng tƣơng ứng. Nếu bộ phân tích XML phát hiện một phần tử bị thiếu thẻ
đóng hay thẻ mở thì quá trình phân tích tài liệu sẽ kết thúc.
Đóng phần tử rỗng với chuỗi đóng />. Phần tử rỗng là phần tử chỉ có một
thẻ. Dấu kết của phần tử rỗng phải là /> nếu không tài liệu sẽ đƣợc coi là
không hợp khuôn dạng.
Mọi phần tử trong tài liệu XML khác phần tử gốc (root) đều phải nằm giữa
cặp thẻ gốc.
Các phần tử lồng nhau phải có thẻ đóng, mở hợp vị trí.
Sử dụng tên thuộc tính là duy nhất. Các thuộc tính trong thẻ không đƣợc đặt
cùng tên.
Chỉ nên sử dụng 5 tham chiếu thực thể đƣợc định nghĩa trƣớc trong XML.
Trong ngôn ngữ định dạng XML, một số kí tự nhận dạng đặc biệt nhƣ <, >,
„, “, và & không thể sử dụng trong tài liệu theo cách thể hiện dữ liệu thông
thƣờng. Muốn sử dụng những kí hiệu này phải dùng tham chiếu thực thể
đƣợc XML định nghĩa trƣớc nhƣ sau:
Tham chiếu thực thể
Ý nghĩa của kí tự tƣơng ứng
&
&
<
<
>
>
'
„
"
“
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
13
Bảng 1.1 Bảng tham chiếu thực thể trong XML
Bao giá trị thuộc tính bằng cặp dấu nháy. Tất cả các thuộc tính đƣợc thể
hiện ở dạng chuỗi và phải bao giá trị gán cho thuộc tính bằng cặp nháy kép
(“ ”) hoặc nháy đơn („ ‟).
Chỉ nên sử dụng kí tự < và & đối với thẻ mở và các thực thể.
1.1.5 Định nghĩa kiểu tài liệu DTD (Document Type Definition)
Khi định nghĩa thẻ XML, ta tùy ý quyết định cách sử dụng chúng. Ta
có thể quyết định thẻ chỉ chứa nội dung là dữ liệu text thuần túy hoặc có thể
chứa các phần tử con khác. Tuy nhiên, để tài liệu rõ ràng chúng ta nên định
nghĩa kiểu tài liệu mà mỗi phần tử sẽ biểu diễn.
Một tài liệu XML đƣợc coi là hợp lệ và có giá trị khi toàn bộ các phần
tử trong tài liệu đƣợc định nghĩa kiểu (type definition) mà nó sẽ chứa. Việc
định nghĩa kiểu tài liệu (DTD – Document Type Definition) cần theo cú pháp
quy định của tổ chức XML W3C.
Định nghĩa kiểu tài liệu DTD:
Sử dụng thẻ khai báo để bắt đầu định nghĩa cho các
phần tử XML. Mẫu khai báo nhƣ sau:
Trong đó: DTD là định nghĩa cho các phần tử trong tài liệu.
Mỗi phần tử đƣợc định nghĩa theo cú pháp:
Trong đó: NAME là tên của phần tử muốn định nghĩa; CONTENT_MODEL
có thể đƣợc đặt là EMPTY hay ANY hoặc trộn lẫn cả hai nội dung (bao gồm
dữ liệu có thể dùng phân tích hoặc các phần tử con khác).
Ví dụ 1.2: Khai báo và định nghĩa DTD trong tài liệu XML:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
14
]>
Nguyen Thanh Nam
14
Ha Noi
0986735461
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn
15
1.1.6 Lược đồ XML (XML schema)
XML Schema là một tài liệu XML đƣợc viết dƣới dạng thức thuần văn
bản với phần mở rộng .xsd. Tài liệu này mở đầu bằng khai báo chuẩn XML,
tiếp theo dùng tiếp đầu ngữ xsd: để khai báo không gian tên XML Schema,
theo cú pháp sau:
………….....
Để chƣơng trình xử lý XML có thể sử dụng tập tin lƣợc đồ (.xsd) cho tài
liệu XML, thì các bộ xử lý phải có cách cài đặt cụ thể của riêng nó để nhận ra
lƣợc đồ đi kèm với tài liệu XML. W3C cho phép khai báo không gian tên cho
tài liệu XML tham chiếu đến tập tin lƣợc đồ theo địa chỉ URL nhƣ sau:
………..
XML Schema đƣợc Microsoft đề xuất để thay thế cho định kiểu tài liệu
(Document Type Definition - DTD), đƣợc sử dụng để định nghĩa kiểu tài liệu
cho các phần tử XML, vốn xuất thân từ SGML, khó sử dụng và có một số
nhƣợc điểm nhƣ không định nghĩa chính xác đƣợc các loại dữ liệu. XML
Schema có một số ƣu điểm:
Dễ học và dễ dùng hơn DTD.
Định nghĩa chính xác đƣợc các kiểu dữ liệu (data type) .
Có hệ thống không gian tên (NS) tốt hơn.
Dùng lại đƣợc các phần tử bằng cách thừa kế.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn