Giới Thiệu XML (GV Lương Hán Cơ – KHTN)
Trang 1ĐHKHTN-CNTT-Lương Hán Cơ 1
Giới thiệu XML
GV Lương Hán Cơ Khoa CNTT – ĐH KHTN
Trang 2N i dung ội dung
Trang 3ĐHKHTN-CNTT-Lương Hán Cơ 3
Binary files
chương trình tạo ra nó mới hiểu tất cả ý nghĩa của tất cả các bit
trình sẽ tạo binary file với định dạng riêng Người lập trình viết ct này quyết định mã nhị phân bao nhiêu sẽ tương ứng với bold text, break … Và chỉ
có MS Word thể hiện và in tài liệu đúng định dạng như lúc soạn thảo
Trang 4Binary files
gian lưu trữ meta data
Trang 5ĐHKHTN-CNTT-Lương Hán Cơ 5
Text files
kết hợp lại tạo thành mội dungt mã số Và mã số này
được ánh xạ thành mội dungt chữ cái
97, và được chuyển đổi thành kí tự ‘a’
soạn thảo văn bản đơn giản nhất
Trang 6Text files
ảnh
Trang 7ĐHKHTN-CNTT-Lương Hán Cơ 7
SGML
thể hiểu được bởi máy tính, lưu trữ được meta
data và dễ dàng được sử dụng bởi nhiều chương trình
Trang 8SGML
Trang 9ĐHKHTN-CNTT-Lương Hán Cơ 9
XML ?
liệu trên môi trường web. cần mội dungt ngôn ngữ
tương tự nhưng đơn giản hơn
duyệt Những tag này chỉ để mô tả cách hiển thị, không mô tả ý nghĩa của dữ liệu
của SGML được giản lược hóa
Trang 10root element
Trang 11ĐHKHTN-CNTT-Lương Hán Cơ 11
Tất cả start-tag đều có end-tag
Những tag không thể chồng chéo nhau
– Sai : <P> Some <STRONG> <STRONG> formatted <EM> <EM> text</ </
STRONG> , but</EM> </EM>
no grammar no good!</P> </P>
– Đúng : <P> <P> Some <STRONG> <STRONG> formatted <EM> <EM> text</ </
EM></STRONG><EM> , but</EM> </EM>
Trang 12Document Type ?
thông tin nào ta muốn
data)
cho biết cấu trúc của dữ liệu họ tên gồm 3 thành phần trong đó: họ, tên lót, tên
vocabulary
Trang 13ĐHKHTN-CNTT-Lương Hán Cơ 13
Document Type ?
– Element gốc phải là <name>
– <first>, <middle>, <last> phải là con của <name>
element.
– <first>, <middle>, <last> tuân theo thứ tự xác định.
– Phải có thông tin trong 2 element <first>, <last>.
– Không nhất thiết phải có thông tin trong <middle>
element.
tương đối, không đủ để mô tả toàn bội dung ý nghĩa
trong thế giới thực
chỉ cần thiết kế sao cho phù hợp với ứng dụng
chúng ta nhất và rồi sử dụng nó
Trang 14XML dùng đâU ? ở
ngữ (Visual Basic, Java)
dụng với nhau
Ứng dụng web: giảm thời gian load trang web
Chứa nội dung trang web : sử dụng XSLT hay CSS để chuyển đổi và hiện thị trang web
này gọi đối tượng ở máy khác Sử dụng XML và
HTTP
Trang 15ĐHKHTN-CNTT-Lương Hán Cơ 15
Element name
ngữ không thuội dungc Latin), kí tự “_”
hiệu khác
namespaces
Nhưng có thể khoảng trắng trước kí tự “>”
Trang 19ĐHKHTN-CNTT-Lương Hán Cơ 19
Whitespace in HTML
Mội dungt số kí tự đặc biệt được gọi là whitespace whitespace,
gồm những kí tự: khoảng trắng, xuống dòng, và tabs
– <p>This is a paragraph. It has a whole
bunch of space.</p>
Trang 22Whitespace in PCDATA
không bị loại bỏ như là trong HTML
– <tag>This is a paragraph. It has a whole bunch of
space.</tag>
– PCDATA sẽ là:
This is a paragraph It has a whole bunch of space.
Chú ý: nếu hiển thị XML trong IE5, chúng ta sẽ
thấy những kí tự whitespace bị loại bỏ Lý do bởi
vì IE không hiển thị trực tiếp nội dung XML mà sử dụng kỹ thuật XSL để chuyển đổi tài liệu XML
Trang 23ĐHKHTN-CNTT-Lương Hán Cơ 23
End-of-Line Whitespace
kí tự line feed line feed (10) và carriage return carriage return (13)
line feed làm kí tự xuống dòng
Trang 24Whitespace in Markup
liệu XML thực sự không có ý nghĩa Nói cách khác
có thể loại bỏ mà không ảnh hưởng đến tài liệu
Trang 25– Sai : <INPUT checked>
– Sai : <INPUT checked=true>
– Đúng : <INPUT checked='true'>
– Đúng : <INPUT checked="true">
– Sai : <INPUT checked="true'>
– Đúng : <info attr=“John's nickname”>
– Sai : <info attr=‘John's nickname’>
– Đúng : <info attr=‘I said “hi” to him’>
– Sai : <bad att="1" att="2"></bad>
Trang 26elements : case-sensitive, không bắt đầu bằng từ
“xml”, …
những attribute trong element
– <name first="John" middle="Fitzgerald Johansen"
last="Doe"></name>
thì ta nên đặt thông tin vào trong element hơn là
Trang 27– sử dụng attribute vì không phải quan tâm nhiều đến việc
lồng những tag với nhau, cũng như giải quyết hiện tượng chồng chéo.
Trang 28Why Use Attributes?
suất truyền?
– <name nickname='Shiny John' first='John'
middle='Fitzgerald Johansen' last='Doe'></name> (88
kí tự)
– <name nickname="Shiny John"> <first>John</first>
<middle>Fitzgerald Johansen</middle>
<last>Doe</last> </name> (112 kí tự)
Trang 29ĐHKHTN-CNTT-Lương Hán Cơ 29
Why Use Attributes?
thêm element khác để chia nhỏ thông tin
dữ liệu trong element đó Nói cách khác, attribute
dùng để chứa meta data.
với ứng dụng nhất, tiện nhất Và XML thì hổ trợ tất cả
Trang 30 <! nội dungi dung ghi chú >
Trang 32XML Declaration
<?xml version='1.0' encoding='UTF-16' standalone='yes'?>
– Bắt đầu bằng “<?xml”, kết thúc bằng “?>”.
– Bắt buội dungc phải có thuội dungc tính version.
– Tùy chọn đối với 2 thuội dungc tính encoding, standalone.
– Nếu sử dụng cả 3 thuội dungc tính thì phải theo thứ tự như ở ví
dụ trên.
Trang 33liệu tiếng Anh trên hđh Windows.
hay UTF-16
Trang 34đều nằm trên file XML này, không liên quan đến bất kỳ file nào khác
hạn external DTD
Trang 35<?xml version='1.0' encoding='UTF-16' standalone='yes'?>
<name nickname='Shiny John'>
Trang 36 Không cho phép sử dụng kí tự ‘<’ và ‘&’
Ví dụ:
– Sai : <comparison>6 is < 7 & 7 > 6</comparison>
Giải quyết: dùng kí tự escape, sử dụng bảng mã, hay đánh dấu trong đoạn CDATA
Trang 38 Parser: XML processor
Parser có nhiệm vụ parse tài liệu XML và cung cấp bất kỳ dữ liệu nào có trong XML cho chương trình ứng dụng
Mội dungt số parser:
– MSXML:
http://msdn.microsoft.com/downloads/webtechnology/xml/ msxml.asp
– Apache Xerces: http://xml.apache.org/
– Vivid Creations ActiveDOM:
http://www.vivid-creations.com
Trang 39ĐHKHTN-CNTT-Lương Hán Cơ 39
– errors: do quy phạm mội dungt số ràng buội dungc của tài liệu, dẫn
đến kết quả không xác định; parser cho phép phục hồi
và xử lý tiếp.
– fatal errors: lỗi do sai cú pháp, quy định của ngôn ngữ
XML Parser sẽ chấm dứt ngay.
Trang 40Why use Namespaces?
tài liệu XML với những từ khóa riêng
giống nhau nhưng mang ý nghĩa khác nhau
dụng đội dungc lập nhau
nhau (trao đổi dữ liệu) sẽ nãy sinh vấn đề xung
đội dungt về tên gọi
Trang 41<body> <h1>John Doe</h1>
<p>John's a great guy, you know?</p>
</body>
</html>
</résumé>
</person>
Trang 42Gi i pháp ả
của 2 element trong tài liệu
ứng với khác biệt về cấu trúc <title> trong
<person> sẽ có ý nghĩa là danh xưng, còn <title> trong <résumé> là tiêu đề của phần nội dungi dung lý lịch
trúc nhận diện
Trang 44Namespaces
Trang 45ĐHKHTN-CNTT-Lương Hán Cơ 45
Prefix chưa thực sự giải quyết trọn vẹn vấn đề
tự dùng để nhận diện tài nguyên trên Internet
Trang 46XML Namespaces
được gọi là qualified names qualified names (QName QName)
<pers pers :person xmlns xmlns:pers pers="http://mycompany.com/pers"/>
trong đó xmlns (xml namespace) dùng để khai báo sự tương đương giữa prefix và URI namespace.
Trang 47<pers pers:name>
<pers pers :title>Sir</pers pers:title>
<pers pers :first>John</pers pers:first>
<pers pers :middle>Fitzgerald Johansen</pers pers:middle>
<pers pers :last>Doe</pers pers:last>
</pers pers:name>
<pers pers :position>Vice President of Marketing</pers pers:position>
<pers pers :résumé> <html html :html> <html html:head>
<html html :title>Resume of John Doe</html html:title>
</html html:head>
<html html :body> <html html :h1>John Doe</html html:h1> <html html:p>John's
a great guy, you know?</html html :p> </html html :body> </html html:html>
</pers pers:résumé>
</pers pers:person>
Trang 48<pers pers:name>
<pers pers :title>Sir</pers pers:title>
<pers pers :first>John</pers pers:first>
<pers pers :middle>Fitzgerald Johansen</pers pers:middle>
<pers pers :last>Doe</pers pers:last>
</pers pers:name>
Trang 49<student student:name>
<student student :title>Sir</student student:title>
<student student :first>John</student student:first>
<student student :middle>Fitzgerald Johansen</student student:middle>
<student student :last>Doe</student student:last>
</student student:name>
<student student:ID
xmlns:student="http://uns.com/students">
321-23437</student student:ID>
<student student :grade xmlns: xmlns: student="http://uns.com/
students">
A</student student:grade>
</student student:person>
Trang 50Default namespaces
Cũng có ý nghĩa như mội dungt namespace bình thường, ngoại trừ
là không cần chỉ định prefix khi sử dụng.
Trang 51<html:body> <html:h1>John Doe</html:h1>
<html:p>John's a great guy, you know?</html:p>
</html:body>
</html:html>
</résumé>
</person>
Trang 52<head><title>Resume of John Doe</title></head>
<body> <h1>John Doe</h1> <p>John's a great guy, you know?</p></body> </html>
Trang 53ĐHKHTN-CNTT-Lương Hán Cơ 53
Đôi khi chúng ta muốn element không có sử dụng default namespace.
I've worked with <name>Jane Doe</name> <name>
for over a <em>year</em> now.</p>
<p xmlns="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml">I've worked
with <name xmlns="" <name xmlns="">Jane Doe</name> for over a
<em>year</em> now.</p>
</notes>
</employee>
Trang 54Khai báo namespaces
<pers:person xmlns:pers="http://mycompany.com/pers" xmlns:pers="http://mycompany.com/pers"
Trang 55ĐHKHTN-CNTT-Lương Hán Cơ 55
Namespaces & attributes
của element.
quan đến mội dungt element đó.
– <person>; <name>; <title> đều thuội dungc default namespace.
– Thuội dungc tính id không thuội dungc default namespace, mà liên quan đến name element.
Trang 56Namespaces & attributes
Trang 57ĐHKHTN-CNTT-Lương Hán Cơ 57
Namespaces & attributes
nhau
– <a: a: name id id="25">
– <a: a: name a: a: id="25">
xem cả 2 tương đương nhau
Trang 63</aaa> Xác định namespace của những
element trong tài liệu XML này
Trang 64Bài t p: ậ
<OOO xmlns = http://zvon.org/xnumber
ooo = "222" >
<aaa xmlns:lower = " http://zvon.org/lowercase " >
< lower:BBB xmlns:lower = " http://zvon.org/uppercase " >
Trang 65ĐHKHTN-CNTT-Lương Hán Cơ 65