XML đ−ợc xây dựng để chứa dữ liệu. XML không thay thế HTML, XML và HTML đ−ợc xây dựng để đạt các mục tiêu khác nhau:
XML HTML
XML xây dựng để mô tả và tập trung xem dữ liệu đó là gì
XML để mô tả thông tin
HTML xây dựng để hiển thị và tập trung biểu diễn dữ liệu nh− thế nào
HTML để hiển thị thông tin
XML đ−ợc xây dựng không để thực thi: XML đ−ợc xây dựng chỉ để tạo ra cấu trúc, l−u trữ và gửi thông tin
XML đ−ợc sử dụng tự do và có thể mở rộng
XML HTML
Các thẻ không đ−ợc định nghĩa tr−ớc mà phải tự định nghĩa.
XML cho phép tác giả tự định nghĩa các thẻ cho riêng mình và cấu trúc tài liệu cho riêng mình. Ví dụ các thẻ <to>, <from> không đ−ợc định nghĩa tr−ớc trong chuẩn XML mà tác giả tự định nghĩa trong tài liệu XML.
Các thẻ th−ờng sử dụng đánh dấu tài liệu HTML và cấu trúc tài liệu HTML là đ−ợc định nghĩa tr−ớc
Tác giả của tài liệu HTML chỉ đ−ợc sử dụng các thẻ đ đ−ợc định nghĩa trong chuẩn HTML. Ví dụ: <p>, <h1>, …
XML hoàn thiện hơn HTML: XML không thay thế HTML mà nó bổ sung cho HTML, XML và HTML có thể đ−ợc kết hợp sử dụng cùng nhau: XML sử dụng để mô tả dữ liệu trong khi HTML sử dụng để định dạng và hiển thị dữ liệu đó.
Trong t−ơng lai, XML sử dụng để phát triển ứng dụng trên nền Web: Trong t−ơng lai XML sẽ là thành phần quan trọng của Web giống nh− HTML đ là một phần cơ bản của Web. XML sẽ là công cụ phổ biến cho việc thao tác và chuyển dịch dữ liệu trên nền Web.
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
29 2.1.3. Sử dụng XML [16]
XML sử dụng riêng biệt dữ liệu với HTML: dữ liệu đ−ợc l−u trữ ngoài HTML. Khi sử dụng HTML để biểu diễn dữ liệu thì dữ liệu đ−ợc l−u trữ bên trong HTML, còn với XML dữ liệu có thể đ−ợc l−u trữ riêng trong các tệp XML Do đó ta sử dụng XML để l−u trữ dữ liệu, cấu trúc dữ liệu còn sử dụng HTML để hiển thị và biểu diễn dữ liệu nh−ng phải đảm bảo chắc chắn khi có sự thay đổi dữ liệu thì không làm thay đổi HTML, dữ liệu đó có thể l−u trữ trong trang HTML giống nh− “ốc đảo dữ liệu”
XML sử dụng để thay đổi dữ liệu: Dữ liệu có thể đ−ợc thay đổi giữa các hệ thống t−ơng thích. Hệ thống máy tính và cơ sở dữ liệu chứa dữ liệu theo định dạng của từng cơ sở dữ liệu. Trong nhiều tr−ờng hợp, trong quá trình phát triển dữ liệu giữa các hệ thống thông qua Internet dữ liệu đ−ợc chuyển sang XML để giảm tính phức tạp và tạo ra dữ liệu có thể đ−ợc đọc bởi các ứng dụng khác nhau.
XML sử dụng trong lĩnh vực B2B: các thông tin tài chính có thể đ−ợc trao đổi thông qua Internet. Trong t−ơng lai XML sẽ trở thành ngôn ngữ chủ yếu cho việc trao đổi thông tin tài chính giữa các th−ơng gia thông qua Internet.
XML có thể đ−ợc sử dụng để chia sẻ dữ liệu: Kể từ khi dữ liệu XML đ−ợc l−u trữ trong định dạng thuần văn bản, XML cung cấp cách thức để chia sẻ dữ liệu độc lập với phần mềm, phần cứng. Điều này dễ dàng tạo ra dữ liệu mà các ứng dụng khác nhau có thể thực thi.
XML sử dụng để l−u trữ dữ liệu: XML cũng có thể sử dụng để l−u trữ dữ liệu trong các tệp hoặc trong các cơ sở dữ liệu. Các ứng dụng có thể đọc dữ liệu, hiển thị dữ liệu và truy lục thông tin từ kho l−u trữ.
Sử dụng XML làm cho dữ liệu trở nên mạnh mẽ hơn: Dữ liệu có thể đ−ợc sử dụng bởi nhiều ng−ời dùng. XML độc lập phần cứng, phần mềm và ứng dụng. Do đó dữ liệu có thể đ−ợc thay đổi sử dụng trong nhiều ứng dụng hơn là mỗi chuẩn HTML.
XML có khả năng tạo ra ngôn ngữ mới: XML có khẳ năng tạo ra ngôn ngữ mới phục vụ cho các ứng dụng khác nhau, nh− ngôn ngữ WML th−ờng sử dụng cho các ứng dụng Internet để điều khiển các thiết bị cầm tay nh− điện thoại di động, ..
XML độc lập với Server: Sử dụng XML có thể tạo ra tài liệu sử dụng độc lập với Server. Tài liệu nằm ngay trên máy khi ng−ời dùng tải về và tiếp tục đ−ợc sử dụng mà không phụ thuộc vào Server [16].
Một số qui tắc khi phát triển các ứng dụng XML phải tuân theo [19, 20]: • XML sử dụng trên Internet dễ dàng
• Hỗ trợ mở rộng các ứng dụng
• Tài liệu XML phải rõ ràng, dành mạch hơn đối với ng−ời đọc • Đảm bảo xử lý nhanh chóng
• Tài liệu đảm bảo ngắn gọn, xúc tích 2.1.4. Cấu trúc và cú pháp của XML [20]
a. Cấu trúc XML
Điều quan trọng nhất của XML là khả năng đ−a ra cấu trúc của tài liệu. Tất cả các tài liệu XML đều có hai phần: cấu trúc vật lý và cấu trúc logic.
– Cấu trúc logic giống nh− một template cho ta biết các thành phần kết hợp trong tài liệu
– Cấu trúc vật lý chứa dữ liệu sử dụng trong tài liệu.
Hình 2.1. Cấu trúc tài liệu XML a1. Cấu trúc logic
Cấu trúc logic cho phép tổ chức các thành phần khác nhau trong tài liệu XML, chỉ ra một tài liệu đ−ợc xây dựng nh− thế nào mà không đề cập tới tài liệu đó chứa
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
31
những gì. Ví dụ: Trong một tài liệu HTML, ta có thể phân biệt các thành phần của tài liệu gồm các phần: Head, Title, Body. Body là thành phần nằm trong HTML, Title là thành phần nằm trong Head.
Phần mở đầu: Thành phần đầu tiên trong tài liệu XML là phần mở đầu. Phần mở đầu gồm hai phần lựa chọn: Khai báo XML và khai báo kiểu tài liệu DTD
Khai báo XML: Cho biết phiên bản XML mà tài liệu phải tuân theo, là thành phần bắt buộc trong tài liệu XML. Ví dụ: <?xml version="1.0"?>
Khai báo kiểu tài liệu DTD: Chứa các m đánh dấu chỉ ra các qui tắc hoặc các định nghĩa tài liệu hay các lớp riêng của tài liệu. Khai báo kiểu tài liệu đi sau khai báo XML
Phần tài liệu: Phần tài liệu đ−ợc xem nh− những thành phần đơn, chứa toàn bộ dữ liệu trong tài liệu XML. Thành phần đơn này có thể bao gồm các thành phần con và các thực thể mở rộng.
Ví dụ: <?xml version="1.0"?> <!DOCTYPE note [
<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
a2. Cấu trúc vật lý
Cấu trúc vật lý của một tài liệu XML xác định tất cả nội dung của tài liệu đó. Nếu cấu trúc logic là bản thiết kế một gara để xe thì cấu trúc vật lý xem nh− là không gian thực tế bên trong gara. Không gian hay các đơn vị l−u trữ đ−ợc gọi là các thực thể, các thực thể có thể là một phần của tài liệu hay là một phần mở rộng của tài liệu.
Mỗi thực thể xác định một định danh tên và chứa nội dung. Trong cấu trúc của tài liệu XML, các thực thể đ−ợc khai báo ở phần mở đầu của tài liệu và tham chiếu tới các thành phần của tài liệu, các thực thể đ−ợc sử dụng bất cứ chỗ nào trong tài liệu bằng cách tham chiếu thực thể.
<HOTEN> &SV; </HOTEN>
Thành phần: <! ENTITY>: là thẻ khai báo thực thể “SV” là tên thực thể
“Nguyễn Văn Bốn” là nội dung của thực thể SV
Khi thành phần <HOTEN> đ−ợc xử lý thì nội dung của nó là nội dung của thực thể SV.
&SV; : tham chiếu tới thực thể SV b. Cú pháp XML
Cú pháp XML t−ơng ứng với các qui luật cấu trúc XML hay các qui luật của ngôn ngữ. Cú pháp của XML cũng sử dụng các thẻ để cấu trúc tài liệu XML. Tuy nhiên, không giống nh− HTML một thành phần của XML phải bắt đầu bằng một thẻ mở và kết thúc bởi một thẻ đóng, các thẻ trong XML phân biệt chữ hoa, chữ th−ờng. Trong mỗi thẻ cũng có thể có các thuộc tính riêng của nó và một thẻ có thể không có nội dung (thẻ rỗng). Tài liệu XML tuân theo đúng cú pháp và qui tắc viết tài liệu thì gọi là tài liệu hợp khuân dạng (well-formed XML document). Ví dụ:
Với HTML Với XML
<p> This is Example <p> This is Example </p>
<h1> This is Example Viết đúng: <h1> This is Example </h1> Viết sai: <h1> This is Example </H1>
<a href = “http://www.yahoo.com> Yahoo </a> (tag <a> có thuộc tính href)
2.1.5. Định nghĩa kiểu tài liệu - DTD [20]
Trong phần này ta tập trung tìm hiểu DTD, cấu trúc DTD và cách tạo ra DTD cho tài liệu. Nh− đ đề cập tr−ớc DTD hoạt động nh− tập các qui luật, cho phép ta tạo ra các tài liệu mới có cùng kiểu với một số đặc điểm của tài liệu cơ sở. Ví dụ nh− DTD đ−ợc tạo ra để sử dụng trong hiệp hội y học. Tài liệu tạo ra với DTD này có thể chứa một số mục nh− tên bệnh nhân, các loại thuốc, lịch sử của y học, … Các viện y học có thể dễ dàng đọc các thông tin này nếu nh− họ có sử dụng hệ thống tài liệu dựa
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
33
trên XML. Hệ thống này không chỉ cung cấp định dạng tài liệu chuẩn cho các tổ chức mà nó sẽ cung cấp định dạng tài liệu đ−ợc sử dụng trong các khoa, ban của các tổ chức riêng lẻ. Cùng một loại định dạng có thể đ−ợc sử dụng bởi bác sỹ, y tá, quản trị nhân sự, … Một DTD khác phát triển một cách ngắn gọn, DTD đó có thể thay đổi để phù hợp với mục đích của các ứng dụng riêng.
a. Cấu trúc DTD
DTD bao gồm hai loại: DTD ngoài và DTD trong.
– DTD ngoài là DTD tồn tại bên ngoài nội dung của tài liệu, loại này th−ờng sử dụng khi có nhiều tài liệu liên quan muốn dùng chung DTD.
– DTD trong là DTD kết hợp bên trong tài liệu XML.
Một tài liệu có thể chứa một hoặc nhiều kiểu DTD. Nếu tài liệu chứa cả hai loại thì trình biên dịch sẽ biên dịch các DTD trong tr−ớc, sau đó mới biên dịch các DTD ngoài.
Nếu ta muốn bổ sung DTD trong vào tài liệu, đơn giản ta viết nó trực tiếp trong phần định nghĩa của tài liệu. Với tài liệu DTD ngoài để bổ sung vào tài liệu ta phải thực hiện thông qua tham chiếu DTD, tại đó báo cho trình biên dịch biết sẽ tìm các DTD ngoài thông qua tên file chứa các DTD. Tham chiếu DTD cũng chứa một số thông tin về ng−ời tạo ra DTD, mục đích của DTD và ngôn ngữ sử dụng.
Ví dụ 1. Sử dụng DTD trong <?xml version = “1.0”> <?DOCTYPE EMAIL [
<!ELEMENT EMAIL (to, from, cc, subject, body)> <!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)> <!ELEMENT cc (#PCDATA)> <!ELEMENT subject (#PCDATA)>
<!ELEMENT body (#PCDATA)> ]> <EMAIL>
<to> Giang </to>
<from> Thanh Thao </from> <cc> Minh </cc>
<body>Document Type Difinition</body> </EMAIL>
Trong ví dụ trên thành phần EMAIL đ−ợc định nghĩa bên trong tài liệu XML. Ví dụ 2. Sử dụng DTD ngoài.
– Định nghĩa các thành phần ở tệp tệp email_t.dtd riêng: <!ELEMENT EMAIL (to, from, cc, subject, body)> <!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)> <!ELEMENT cc (#PCDATA)> <!ELEMENT subject (#PCDATA)> <!ELEMENT body (#PCDATA)>
– Sử dụng các thành đ định nghĩa trong tệp email_t.dtd vào trong tài liệu: <?xml version="1.0" standalone=”no”?>
<!DOCTYPE EMAIL SYSTEM “..\..\email_t.dtd”> <to> Giang </to>
<from> Thanh Thao </from> <cc> Minh </cc>
<subject> XML </subject>
<body> Document type Difinition </body>
– Nếu thành phần DTD ngoài là công cộng thì thay từ khoá SYSTEM (cá nhân) bằng PUBLIC
b. Khai báo thành phần
Mỗi thành phần khai báo bao gồm tên thành phần và kiểu nội dung của thành phần. Kiểu nội dung có thể là một trong bốn kiểu sau:
• Tập hợp các thành phần: gọi là mô hình nội dung • Kiểu EMPTY
• Kiểu ANY
• Kiểu có nội dung phức hợp
Cú pháp để khai báo thành phần: <!ELEMENT tênthànhphần kiểu> Trong đó: <!ELEMENT> là thẻ khai báo thành phần
tênthànhphần là tên của thành phần đ−ợc khai báo Kiểu là kiểu của thành phần đ−ợc khai báo
Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ Luận văn tốt nghiệp thạc sỹ
Luận văn tốt nghiệp thạc sỹ Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo Nguyễn Thanh Thảo
ứ ứứ
ứng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Webng dụng công nghệ h−ớng đối t−ợng và XML để phát triển hệ thống trên nền Web
35 b1. Mô hình nội dung
Một thành phần đ−ợc khai báo có các thành phần con đ−ợc gọi là mô hình nội dung. Các thành phần con của mô hình nội dung đ−ợc đặt trong cặp dấu “(“ và “)”. Các thành phần con khai báo trong mô hình nội dung khai báo phải xuất hiện đúng nh− trong mô hình đ khai báo.
b2. Khai báo thành phần rỗng
Một thành phần có thể không chứa nội dung gì, gọi là thành phần rỗng (EMPTY). Để khai báo một thành phần rỗng, ta sử dụng từ khoá EMPTY trong khai báo thành phần.
b3. Khai báo thành phần ANY
Thành phần đ−ợc khai báo là ANY có thể chứa bất cứ nội dung gì. Ta sử dụng từ khoá ANY để khai báo một thành phần có nội dung bất kỳ.
b4. Khai báo thành phần có nội dung phức hợp
Dữ liệu của một thành phần có thể là kiểu này hoặc kiểu kia. Nếu một thành phần lúc chứa dữ liệu kiểu này lúc chứa dữ liệu kiểu khác thì trong khai báo thành phần giữa các kiểu nội dung phải ngăn cách nh− bởi dấu “|”.
c. Qui định số l−ợng đơn vị
– ? cho biết đơn vị xuất hiện nhiều nhất là một lần trong thành phần.
– + cho biết đơn vị phải xuất hiện ít nhất một lần và bao nhiều lần cũng đ−ợc trong thành phần.
– * cho biết đơn vị có thể xuất hiện bao nhiêu lần cũng đ−ợc hoặc không xuất hiện trong thành phần.
Ví dụ: <!ELEMENT EMAIL (to+, from+, cc*, subject?, body)> <!ELEMENT COUNTRY ANY>
<!ELEMENT EXAMPLE (#PCDATA|x|y|z)*> d. Thuộc tính
Để mô tả cấu trúc một thành phần hoặc kiểu nội dung của thành phần đó ta có thể sử dụng thuộc tính để bổ sung thông tin về một thành phần hoặc nội dung của thành phần đó.
Để khai báo thuộc tính ta sử dụng cú pháp sau:
<!ATTLIST tênthànhphần tênthuộctính kiểu default> Trong đó: + <!ATTLLIST> là thẻ để khai báo thuộc tính
+ tênthànhphần là thành phần sẽ đ−ợc gán thuộc tính + tênthuộctính là tên thuộc tính gán cho thành phần + kiểu là kiểu của thuộc tính
+ default là giá trị mặc định của thuộc tính nếu không định rõ Một số kiểu thuộc tính trong XML:
+ CDATA: thuộc tính chỉ chứa nội dung là ký tự