Lập trình PHP với MySQL - Bài 5: XML, XHTML

Nội dung

1. Giới thiệu về XML

2. Cú pháp của XML

3. Không gian tên của XML

4. Tài liệu XML hợp lệ

5. Document Object Model (DOM)

6. Simple API for XML (SAX)

7. XML và CSS

8. Extensible Stylesheet Language (XSL)

pdf26 trang | Chuyên mục: MySQL | Chia sẻ: dkS00TYs | Lượt xem: 2584 | Lượt tải: 1download
Tóm tắt nội dung Lập trình PHP với MySQL - Bài 5: XML, XHTML, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
▫ Kết hợp dữ liệu của XML với CSS
<?xml-stylesheet type=“text/css” 
href=“ten_file_css”>
▫ Tạo dòng ghi chú: tương tự HTML 
▫ Tạo thẻ gốc: mỗi file XML phải có một thẻ gốc
▫ Tạo thuộc tính:
 Dạng ten_thuoc_tinh=“gia_tri”
 Giá trị được bao trong nháy kép “” hoặc nháy đơn „‟
12
2.1. Quy tắc chung trong XML
• Tạo khai báo XML
▫ Thuộc tính xml:lang
Hello
▫ Search engine sẽ sử dụng để nhận dạng ngôn ngữ
sử dụng.
▫ Tên quốc gia theo chuẩn ISO 693 gồm 2 kí tự tắt
8/2/2010
7
13
2.2. Tạo tài liệu XML hợp khuôn 
dạng
• Các trình dịch XML thường yêu cầu rất nghiêm 
ngặt về kiểm tra cú pháp
• Một tài liệu XML được coi là đúng cú pháp khi 
nào hợp khuôn dạng
• Khuôn dạng: các quy tắc khai báo, thẻ, thuộc 
tính, đặt tên thẻ…
14
2.2. Tạo tài liệu XML hợp khuôn 
dạng
• Quy tắc cơ bản
▫ Các khai báo XML cần đặt ở dòng đầu tiên
▫ Mỗi tài liệu chỉ có một phần tử gốc
▫ Thẻ đầy đủ bao gồm thẻ đóng và thẻ mở hoặc thẻ
với dấu / ở cuối
▫ Các thẻ lồng nhau phải có thẻ đóng, thẻ mở hợp vị
trí
▫ Tên thuộc tính trong một thẻ là duy nhất
▫ Giá trị (kể cả số) nằm trong cặp dấu nháy đơn hoặc 
nháy kép
8/2/2010
8
15
3. Không gian tên của XML
• XML cho phép tự định nghĩa và đặt tên các thẻ
• Kết hợp các tài liệu XML từ các ứng dụng khác 
nhau sẽ gặp phải khả năng trùng tên thẻ
16
3. Không gian tên của XML
• Cần có sự phân biệt về phạm vi hay không gian 
tên mà mỗi thẻ có ý nghĩa
• Namespace: cho phép tạo và sử dụng các thẻ
cùng tên độc lập mà không gây ra lỗi
• Sử dụng:
▫ 
▫ URI là xâu xác định một tài nguyên trên mạng 
Internet, dùng để tạo namespace duy nhất
▫ Thường trỏ tới URL chứa thông tin liên quan
8/2/2010
9
3. Không gian tên của XML
• Ví dụ
• Giả sử thông tin về sinh viên do phòng Đào tạo 
tạo ra và quản lý. Viện CNTT muốn bổ sung thêm 
thông tin về sinh viên. Để phân biệt thông tin do 
phòng Đào tạo hay Viện đưa ra, tránh các thẻ
trùng tên chúng ta định nghĩa các không gian tên 
khác nhau
17
18
3. Không gian tên của XML
<Daotao:document 
xmlns: Daotao=“” 
xmlns:CNTT=“”>
Nguyễn Bích Ngọc
10/10/1990
Hà Nội
Tin 1
8/2/2010
10
19
3. Không gian tên của XML
• Thuộc tính xmlns:prefix có thể được đặt ở bất kỳ 
thẻ nào chứ không chỉ giới hạn ở phần tử gốc
=> Có thể đặt định nghĩa không gian tên đến nơi 
nó bắt đầu được sử dụng
20
3. Không gian tên của XML
<Daotao:document 
xmlns: Daotao=“”>
Nguyễn Bích Ngọc
10/10/1990
Hà Nội
<CNTT:comment 
xmlns:CNTT=“”>
Tin 1
8/2/2010
11
3. Không gian tên của XML
• Không gian tên mặc định
▫ Định nghĩa một không gian tên mặc định cho tất cả
các thẻ trong tài liệu
 
 prefix=“”
▫ Khi kết hợp hai tài liệu XML với nhau => chỉ cần 
mô tả không gian tên của tài liệu thứ hai
21
22
3. Không gian tên của XML
<document 
xmlns=“”>
Nguyễn Bích Ngọc
10/10/1990
Hà Nội
<CNTT:comment 
xmlns:CNTT=“”>
Tin 1
8/2/2010
12
4. Tài liệu XML hợp lệ
Vấn đề
• Thẻ trong XML do người sử dụng tự định nghĩa
• Kiểm tra xem tài liệu XML có các thẻ được phép 
hay không (tương tự như trong CSDL một bảng 
gồm các trường và bản ghi chỉ gồm dữ liệu các 
trường) => XML hợp lệ
• Documents Type Definitions (DTDs): định nghĩa 
kiểu tài liệu
• Schemas: giản đồ tương tự DTD nhưng cho phép 
định nghĩa nhiều kiểu dữ liệu hơn
23
4.1. Documents Type Definitions
• DTD chứa định nghĩa cấu trúc một tài liệu XML.
• DTD có thể được định nghĩa trong tài liệu XML 
hoặc định nghĩa ở một file bên ngoài và được liên 
kết đến trong tài liệu XML
• DTD không phải là XML, nó có cú pháp riêng
• Khai báo
▫ 
▫ 
24
8/2/2010
13
4.1. Documents Type Definitions
• Định nghĩa DTD
…..
• Trong đó
▫ element-content: các thẻ nằm trong element-name
▫ category: kiểu dữ liệu thành phần. Với dữ liệu văn 
bản là #PCDATA
25
26
<!DOCTYPE document[
]>
. . .
8/2/2010
14
27
student.dtd
student.xml
. . .
4.1. Documents Type Definitions
• Hạn chế
▫ DTD hợp lệ tài liệu XML nhưng bản thân lại không 
phải là XML
▫ Tài liệu XML chỉ có duy nhất một DTD
▫ XML có thể có nhiều namespace tuy nhiên DTD 
không hỗ trợ khả năng này
▫ DTD chỉ hỗ trợ kiểu xâu text
• => Schema
28
8/2/2010
15
4.2. Schema
• Schema 
▫ định nghĩa các thành phần (element) trong tài liệu
▫ định nghĩa các thuộc tính trong tài liệu
▫ định nghĩa các thành phần con trong một thành 
phần
▫ định nghĩa thứ tự xuất hiện, kiểu dữ liệu…cho các 
thành phần
• Schema là khuyến cáo sử dụng của W3C vào ngày 
2/5/2001
29
4.2. Schema
• Ưu điểm của Schema so với DTD
▫ Nhiều kiểu dữ liệu hơn: boolean, dates and times, 
URIs, integer, bytes, lóng, decimals…
▫ Hỗ trợ namespaces
▫ DTD là mô hình “closed”: mô tả tất cả các thành 
phần có thể xuất hiện trong tài liệu; Schema cho 
phép mô hình “open” mô tả các thành phần ngoài 
các thành mô tả
▫ Là định dạng XML
30
8/2/2010
16
31
<xs:schema xmlns:xs=""
targetNamespace=""
xmlns=""
elementFormDefault="qualified">
32
<document
xmlns=""
xmlns:xsi="
XMLSchema-instance"
xsi:schemaLocation=“student.xsd">
…
8/2/2010
17
4.2. Schema
• Tập giá trị cho một thành phần
33
4.2. Schema
• Khai báo một danh sách các thành phần thông 
qua 
34
File xml:
 CNPM TTM HTTT KHMT KTMT 
8/2/2010
18
35
5. Document Object Model (DOM)
• DOM là một API đối với HTML và XML, định 
nghĩa cấu trúc logic của tài liệu và các xử lý của 
chúng
• DOM được sử dụng để xử lý dữ liệu lưu trong 
XML
• Tài liệu XML sẽ là một cây bao gồm tập hợp các 
nút chứa: phần tử, dữ liệu, thuộc tính…
36
5. Document Object Model (DOM)
Các loại nút
trong DOM
Nút Mô tả
Element Phần tử XML
Attribute Thuộc tính
Text Dữ liệu
Entity Thực thể
Processing Instruction Chỉ thị xử lý
Comment Chú thích
Document Tài liệu
Document Type Kiểu tài liệu
Document Fragment Đoạn tài liệu
Notation Ghi chú
8/2/2010
19
37
5. Document Object Model (DOM)
• Ví dụ
N V An 1/10/1990 Hà Nội
38
5. Document Object Model (DOM)
• Các đối tượng cơ bản của DOM
Đối tượng Mô tả
Node Một nút đơn trong kiến trúc
NodeList Một tập hợp nút
NamedNodeMap Một tập các nút, cho phép truy 
xuất theo tên cũng như chỉ số
8/2/2010
20
39
5. Document Object Model (DOM)
• Một số phương thức trong DOM
Phương thức Mô tả
childNodes Trả về NodeList chứa các nút con
firstChild Trả về nút con đầu tiên
lastChild Trả về nút con cuối cùng
parentNode Trả về nút cha
previousSibling Trả về nút cùng mức đứng trước
nextSibling Trả về nút cùng mức kế tiếp
nodeName Trả về tên của nút
nodeValue Trả về giá trị của nút
40
5. Document Object Model (DOM)
• Ví dụ
▫ nodeRoot trỏ tới nút gốc document
▫ nodeRoot.childNodes(0)=> student đầu tiên
▫ nodeRoot.childNodes(0).parentNode()=> document
▫ nodeRoot.childNode(1).firstChild().nodeValue() => 
N V An
8/2/2010
21
41
function readXML(){
var xmlObj, rootNode, childNode, nameNode;
var name;
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("student.xml");
rootNode = xmlDoc.documentElement;
childNode = rootNode.firstChild;
nameNode = childNode.firstChild;
name = nameNode.text;
alert("Name: "+name);
}
6. Simple API for XML (SAX)
• DOM: 
▫ coi tài liệu như một cấu trúc cây
▫ cung cấp thuộc tính và phương thức duyệt nút trên cây
▫ => phải chủ động tìm dữ liệu
• SAX
▫ xử lý tài liệu XML theo mô hình hướng sự kiện
▫ dữ liệu sẽ tự động được gửi đến khi có sự kiện phát sinh
▫ Nguồn gốc là API của Java, các phiên bản hiện nay hỗ
trợ nhiều ngôn ngữ lập trình khác
▫ SAX 2.0 gồm 2 gói chuẩn: org.xml.sax, 
org.xml.sax.helpers
42
8/2/2010
22
43
7. XML và CSS
• Sử dụng CSS để định nghĩa cách hiển thị các thẻ
XML
• Thực hiện
▫ Tạo ra tài liệu XML
▫ Tạo ra file CSS (kiểu External Style) có chứa định 
nghĩa các style của các thẻ trong tài liệu XML
▫ Chèn đoạn mã khai báo việc sử dụng CSS
<?xml-stylesheet type=“text/css” 
href=“ten_file_css”?>
44
7. XML và CSS
student{font-size:16pt;margin-left:10;
font-style:italic;}
name,date,place{font-size:14;}
8/2/2010
23
8. Extensible Stylesheet Language 
(XSL)
• XSL là một ngôn ngữ dựa trên XML để tạo ra 
bảng biểu (stylesheet)
• XML và XSL stylesheet là đầu vào của XSLT 
processor. Đầu ra là một cây, mỗi thành phần 
trong XML chuyển thành một nút có giá trị, 
thuộc tính xác định
• XSLT processor sử dụng XSL stylesheet để
chuyển dịch và định dạng XML đầu vào.
45
8. XSL
• Bao gồm:
▫ XSLT: chuyển XML thành một XML khác
▫ XPath: định hướng cho XSL như tìm kiếm các 
thành phần..
▫ XSL-FO (XSL-Formatting Object): định dạng 
XML đầu ra để các browsers có thể hiển thị với bố
cục và cấu trúc phù hợp
46
8/2/2010
24
8. XSL
• Khai báo Stylesheet
47
<xsl:stylesheet version=“1.0” xmlns:xsl=
“”>
hoặc
<xsl:transform verion=“1.0” xmlns:xsl=“
”>
8. XSL
• XPATH
• Tài liệu XML được xem như một cây, trong đó 
mỗi thành phần được biểu diễn bằng một nút.
48
Root
Comment
Processing 
Instruction
Element
Comment
Processing 
Instruction
Element Text
8/2/2010
25
Phần tử Mô tả
<xsl:apply-
templates>
Áp dụng các mẫu của tài liệu XSL vào con của nút 
hiện hành
<xsl:apply-templates 
match=“expression”>
Áp dụng các mẫu của tài liệu XSL vào nút trong biểu 
thức. Phần tử gốc là “/”
 Chứa đựng các quy tắc để áp dụng khi một nút xác 
định được chọn
<xsl:value-of
select=“expression”>
Thiết lập giá trị của một phần tử XML và thêm nó vào 
cây. Yêu cầu select chứa một phần tử XPATH
 Định nghĩa định dạng đầu ra được tạo bởi stylesheet
 Thêm nút hiện hành vào cây xuất ra
<xsl:for-each
select=“expression”>
Chứa đựng hoàn toàn một mẫu được áp dụng cho mỗi 
nút được chọn bởi XPATH bằng thuộc tính lựa chọn
<xsl:sort
select=“expression”>
Sắp xếp các nút được chọn để các nút này được xử lý 
theo thứ tự
49
8. XSL
50
Nguyễn Bích Ngọc
10/10/1990
Hà Nội
Trần Văn Đức
10/10/1991
Hải Phòng
8/2/2010
26
51
<xsl:stylesheet version="1.0" 
xmlns:xsl="">
8. XSL
52

File đính kèm:

  • pdfLập trình PHP với MySQL - Bài 5 XML, XHTML.pdf
Tài liệu liên quan