http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 2 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Chương mở đầu
Trong thời đại Công nghệ Thông tin hiện nay XML (eXtensible Markup Language)
chiếm vị trí số một và rất quan trọng trong việc chuyển tải, trao đổi dữ liệu và liên lạc giữa
các ứng dụng. Điều này càng được khẳn định khi trong các hệ điều hành từ WindowsXP
trở đi, bên trong nó chứa đầy XML. Hơn nữa khi bộ .Net ra đời thì càng làm cho XML trở
nên thịnh hành.
Sử dụng kỹ thuật XML không chỉ có tập đoàn Microsoft mà ngay cả
Sun, IBM, Oracles
điều hỗ trợ XML và dùng nó trong các ứng dụng.
1 XML là gì?
XML là ngôn ngữ xây dựng cấu trúc tài liệu văn bản, dựa theo chuẩn SGML
(Standard Generalized Markup Language: siêu ngôn ngữ có khả năng sinh
ngôn ngữ khác). SGML được phát triển cho việc định cấu trúc và nội dung tài
liệu điện tử, do tổ chức ISO (International Organization for Standards) chuẩn
hoá năm 1986.
SGML là do IBM đưa ra, song không thể không kể đến những đóng góp của
các công ty khác. XML được W3C (World Wide Web Consortium: tổ chức độc
lập định ra tiêu chuẩn cho trình duyệt Web, máy chủ và ngôn ngữ) phát triển,
nhưng đặc t
ả XML lại do Netscape, Microsoft và các thành viên của dự án
Text Encoding Initiative (TEI) xây dựng. Tổ chức W3C XML Special Interest
Group có đại diện từ hơn 100 công ty cùng nhiều chuyên gia được mời khác.
Lý do ra đời của XML vì SGML rất rắc rối, và HTML có nhiều giới hạn nên
năm 1996 tổ chức W3C thiết kế XML. XML version 1.0 được định nghĩa trong
hồ sơ February 1998 W3C Recommendation.
Điểm quan trọng của kỹ thuật XML là nó không thuộc riêng về một công ty
nào, nó là một sản phẩm mà trí tuệ của nó thuộc v
ề cả thế gới, nó là một tiêu
chuẩn được mọi người công nhận vì được soạn ra bởi World Wide Web
Consortium - W3C (một ban soạn thảo với sự hiện diện của tất cả các chuyên
gia Tin học) và những ý kiến đóng góp bằng cách trao đổi qua Email.
Bản thân của XML rất là đơn giản, nhưng các công cụ chuẩn được định ra để
làm việc với XML như Document Object Model - DOM, XPath, XSL, v.v thì
rất hữu hiệu, và chính các chuẩn này được phát triển không ngừng.
XML cũng giống như HTML đều là ngôn ngữ đánh dấu, nhưng đi
ều cần nói ở
đây là sự ra đời của XML để khắc phục cho một số yếu kém của HTML.
HTML và XML đều sử dụng các tag nhưng các tag của HTML là một bộ dữ
liệu tag được xây dựng và định nghĩa trước, tức là người lập trình phải tuân
thủ theo các thẻ đã định nghĩa của HTML, hiện HTML có khoản hơn 400 tag,
để nhớ hết 400 tag này cũng không có gì khó khăn đối với người l
ập trình web
chuyên nghiệp nhưng thật khó đối với những người không chuyên. Hơn nữa
các tag của HTML không nói lên được mô tả dữ liệu trong đó. Nhưng đối với
XML thì hoàn toàn khác bởi vì tag trong XML là do người lập trình định nghĩa
và mỗi tag là một mô tả dữ liệu mà người lập trình muốn truyền đạt.
2 Các nội dung sẽ trình bày
Khi XML ra đời thì có hàng loạt các ngôn ngữ chuẩn được đưa ra để làm việc
với XML, nhưng trong tài liệu này tôi chỉ xin được trình bày các phần chính
sau:
1. Ngôn ngữ XML(eXtensible Markup Language )
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 3 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Ngôn ngữ xây dựng cấu trúc tài liệu văn bản, dựa theo chuẩn SGML
(Standard Generalized Markup Language
2. Ngôn ngữ DTD (Document Type Definition)
Ngôn ngữ dùng để định nghĩa kiểu dữ liệu cho các phần tử trong tài
liệu XML
3. Ngôn ngữ Xpath (XML Path Language)
Ngôn ngữ dung để duyệt tài liệu XML
4. XSL (eXtensible style sheet)
Ngôn ngữ dùng để chuyển đổi tài liệu XML thành một định dạng khác
5. Ngôn ngữ Xlink(XML Link Language) và Xpointer(XML Pointer Language)
Ngôn ngữ lien kết và định vị tài liệu
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 4 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Chương 1
XML (eXtensible Markup Language)
1 Phần lý thuyết
1.1 Các quy tắc cần lưu ý
Để viết được một trang XML cũng rất đơn giãn, chúng ta chỉ cần tuân thủ
những quy tắc sau:
•
Phải có một Phần tử gốc duy nhất, nó chứa tất cả các Phần tử khác trong
tài liệu.
<Catalog>
<Product ProductID="1">Chair</Product>
<Product ProductID="2">Desk</Product>
</Catalog>
• Mỗi Tag mở phải có một Tag đóng giống như nó.
1
2
3
4
5
6
7
8
9
10
11
<Order>
<OrderDate>2002-6-14</OrderDate>
<Customer>Helen Mooney</Customer>
<Item>
<ProductID>2</ProductID>
<Quantity>1</Quantity>
<Item>
<ProductID>4</ProductID>
<Quantity>3</Quantity>
</Item>
</Order>
Ví dụ trên không thỏa qui tắc 2 vì thiếu Tag đóng </Item>, ta cần thêm Tag
đóng </item> vào sau dòng thứ 6
• Trong một cặp Tag đóng và mở phải được đánh vần như nhau, có nghĩa là
các cặp ký tự của cặp Tag đóng mở này phải giống nhau hoàn toàn.
1
2
3
4
<Order>
<OrderDate>2001-01-01</Orderdate>
<Customer>Graeme Malcolm</Customer>
</Order>
Ví dụ này không thỏa quy tắc 3 vì Tag mở <OrderDate> và Tag đóng
</Orderdate> đánh vần không giống nhau, ta phải sửa Tag đóng
</Orderdate> thành </OrderDate> hoặc sửa thẻ <OrderDate> thành
<Orderdate>
• Mỗi Phần tử con phải nằm trọn bên trong Phần tử cha của
nó.
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 5 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
1
2
3
4
5
6
7
<Catalog>
<Category CategoryName="Beverages">
<Product ProductID="1">
Coca-Cola
</Category>
</Product>
</Catalog>
Ví dụ này không thỏa quy tắc 4 vì Tag đóng
</Product> đặt không đúng vị trí, ta
cần đổi vị trí của dòng 5 cho dòng 6
• Giá trị của thuộc tính phải được đặt trong cặp dấu nháy kép hoặc cặp dấu
nháy đơn.
1
2
3
4
<Catalog>
<Product ProductID=1>Chair</Product>
<Product ProductID='2">Desk</Product>
</Catalog>
Ví dụ này không đúng quy tắc 5 vì giá trị của thuộc tính ProductID ở dòng 3
đặt trong cặp dấu nháy không đúng, ta cần sửa lại ProductID='2" thành
ProductID=”2" hoặc ProductID='2’
1.2 Chỉ thị xử lý (Processing Instructions) và lời chú thích (Comments)
Chúng ta thường thấy dòng lệnh
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
nằm ở đầu file XML. Đây chính là chỉ thị xử lý, chỉ thị xử lý được đặt trong cặp
Tag <? và ?>. Nó cho biết phiên bản đặc tả XML mà bộ phân tích cần làm
theo, ngoài ra nó cho phép người lập trình cho biết dữ liệu trong XML dùng
encoding nào, còn thuộc tính standalone sẽ cho biết tài liệu XML có cần đến
một tài liệu khác không (có hai giá trị cho thuộc tính này đó là “yes” nếu không
cần đến một tài liệu khác và “no” nếu cần).
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Order>
<OrderDate>2002-6-14</OrderDate>
<Customer>Helen Mooney</Customer>
<Item>
<ProductID>1</ProductID>
<Quantity>2</Quantity>
</Item>
<Item>
<ProductID>4</ProductID>
<Quantity>1</Quantity>
</Item>
</Order>
Trong mỗi tài liệu XML có thể có hoặc không có phần này
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 6 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Để file XML trở nên dễ hiểu và dể chỉnh sửa sau này thì các dòng chú thích là
không thể thiếu, các dòng chú thích đuợc đặt trong cặp tags <! và >.
1.3 Không gian tên (namespace).
XML cho phép chúng ta tự do định nghĩa các thẻ, như nó cho chúng ta dùng
cùng một tên nhưng lại nói đến nhiều loại dữ liệu khác nhau trong cùng một
tài liệu XML. Xem ví dụ sau:
<?xml version="1.0"?>
<BookOrder OrderNo="1234">
<OrderDate>2001-01-01</OrderDate>
<Customer>
<Title>Mr.</Title>
<FirstName>Graeme</FirstName>
<LastName>Malcolm</LastName>
</Customer>
<Book>
<Title>Treasure Island</Title>
<Author>Robert Louis Stevenson</Author>
</Book>
</BookOrder>
Ta thấy trong ví dụ trên có phần tử Title nói đến hai loại dữ liệu khác nhau,
một nói về tên tác giả một nói về tiêu đề sách, điều này làm cho ta nhầm lẫn
giữa hai loại dữ liệu. Hơn thế nữa nếu tài liệu của chúng ta được sử dụng chỉ
cho một mục đích riêng rẻ thì không có vấn đề gì nhưng khi tài liệu của chúng
ta kết hợp với một tài liệu khác khác thì tài liệu kết h
ợp này sẽ có vấn đề vì
chúng ta đâu chắc chắn rằng tài liệu khác mà chúng ta muốn kết hợp không
có sử dụng thẻ trùng với thẻ của chúng ta định nghĩa hay không.
Ví dụ như khi chúng ta tích hợp tài liệu XML của chúng ta với ứng dụng khác
như VML hay MathML mà chẳng may giữa các tài liệu này có cùng định nghĩa
thẻ NAME chẳng hạn. Lúc này trình phân tích sẽ không biết nên hiểu thẻ
NAME của tài liệu của bạn hay của VML hay của MathML.
Vì v
ậy chúng ta cần phải khai báo không gian tên để khắc phục điều này.
1.3.1 Khai báo không gian tên (namespace)
Để khai báo một không gian tên ta chỉ cần đưa thêm thuộc tính xmlns:prefix
vào bên trong phần tử gốc, prefix là tên của không gian tên, mỗi không gian
tên cần mang một định danh duy nhất. Một không gian tên có thể là một địa
chỉ internet hoặc một địa chỉ nào đó miễn là địa chỉ này phải duy nhất. Ví dụ
sau đây sẽ tạo ra một không gian tên hs và áp dụng cho tất cả các phần tử
con:
<?xml version="1.0"?>
<BookOrder xmlns:hs="http://www.northwindtraders.com/customer">
<hs:Customer >
<hs:Title>Mr.</Title>
<hs:FirstName>Graeme</FirstName>
<hs:LastName>Malcolm</LastName>
</hs:Customer>
</BookOrder>
1.3.2 Không gian tên mặc định (namespace default)
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 7 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Nếu tài liệu của chúng ta các phần tử chỉ sử dụng duy nhất một không gian
tên thì chúng ta có thể khai báo không gian tên mặc định cho các phần tử con
của một phần tử cha bằng cách chỉ ghi thuộc tính xmlns và bỏ đi prefix
<?xml version="1.0"?>
<BookOrder xmlns ="http://www.northwindtraders.com/customer">
< Customer >
< Title>Mr.</Title>
< FirstName>Graeme</FirstName>
< LastName>Malcolm</LastName>
</ Customer>
</BookOrder>
Chúng ta xem tiếp ví dụ sau:
<?xml version="1.0"?>
<BookOrder >
<OrderDate>2001-01-01</OrderDate>
<Customer xmlns="http://www.northwindtraders.com/customer">
<Title>Mr.</Title>
<FirstName>Graeme</FirstName>
<LastName>Malcolm</LastName>
</Customer>
<Book xmlns="http://www.northwindtraders.com/book">
<Title>Treasure Island</Title>
<Author>Robert Louis Stevenson</Author>
</Book>
</BookOrder>
Ví dụ trên chúng ta thấy có hai không gian tên mặc định, một cho phần tử
Customer và một cho phần tử Book. Nhưng điều đáng nói ở đây là nếu như
trong tài liệu có nhiều Customer và nhiều Book thì chúng ta không thể viết đi
viết lại không gian tên mãi được, rất mất thời gian.
Cách giải quyết tốt nhất là ta khai báo các không gian tên này ngay ở đầu tài
liệu và mỗi không gian tên được phân biệt bởi các định danh.
<?xml version="1.0"?>
<BookOrder xmlns="http://www.northwindtraders.com/order"
xmlns:cus="http://www.northwindtraders.com/customer"
xmlns:bok ="http://www.northwindtraders.com/book” >
<OrderDate>2001-01-01</OrderDate>
<cus:Customer >
<cus:Title>Mr.</cus:Title>
<cus:FirstName>Graeme</cus:FirstName>
<cus:LastName>Malcolm</cus:LastName>
</cus:Customer>
<bok:Book >
<bok:Title>Treasure Island</bok:Title>
<bok:Author>Robert Louis Stevenson</bok:Author>
</bok:Book>
</BookOrder>
Ví dụ trên dùng 3 không gian tên, một không gian tên mặc định và hai không
gian tên có định danh là cus và bok. Trong ví dụ trên những phần tử không
có định danh của không gian tên đi trước thì được hiểu là sử dụng không gian
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 8 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
tên mặc định http://www.northwindtraders.com/order, như phần tử
<OrderDate>2001-01-01</OrderDate>
1.4 CDATA
Đoạn dữ liệu của CDATA là đoạn dữ liệu nằm giữa <![CDATA [ và ]]>. Những
đoạn dữ liệu nằm trong CDATA khi đi qua trình phân tích sẽ được giữ nguyên
như ban đầu, tức là khi gặp CDATA thì trình phân tích sẽ bỏ qua. Điều này rất
cần thiết khi chúng ta viết những đoạn mã script trong tài liệu.
<script language=”javascript”>
<![CDATA[
function mag(){
alert(“This is CDATA! ”);
}
]]
</script>
1.5 Thực thể định nghĩa sẵn trong XML
Trong ngôn ngữ định dạng XML có sử dụng một số ký tự định dạng đặc biệt:
<, >, ‘, “, &. Vì vậy để giúp cho chúng ta thể hiện tài liệu đúng theo nguyên
mẫu bằng cách định nghĩa 5 thực thể này như sau:
Thực
thể
Mô tả
' Tương đương với dấu nháy đơn (‘)
& Tương đương với dấu &
> Tương đương với dấu >
< Tương đương với dấu <
" Tương đương với dấu nháy kép (“)
Ví dụ:
<?xml version="1.0"?>
<LINK-TO>
< a href=" index.txt " > OPEN FILE INDEX.TXT < /a >
</LINK-TO>
(< a href=" index.txt " > OPEN FILE INDEX.TXT < /a >
tương đương với <a href=index.txt> OPEN FILE INDEX.TXT </a>)
Để hiểu rõ hơn về thực thể là gì, chúng ta sẽ tìm hiểu trong chương 2.
2 Phần ví dụ
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 9 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Chương 2
DTD (Document Type Definition)
1 DTD là gì?
DTD (Document Type Definition) là kiểu tài liệu dùng để định nghĩa kiểu dữ
liệu cho các phần tử trong tài liệu XML. Khi chúng ta định nghĩa các phần tử
trong XML là tùy thích, miễn sao cho nó hợp quy tắc của tài liệu XML. Tuy
nhiên để tường minh hơn thì ta nên định nghĩa kiểu dữ liệu cho từng phần tử
trong tài liệu XML.
Trong chương trước chúng ta đã học cách viết một tài liệu hợp khuôn dạng.
Tuy nhiên một tài liệu XML được xem là hợp khuôn dạng và có giá trị khi toàn
bộ các phần tử trong tài liệu được được định nghĩa kiểu dữ liệu mà nó chứa.
Với cách định nghĩa kiểu tư liệu (DTD) khi chúng ta đọc một tài liệu XML nào
thì chỉ cần đọc phần DTD thì chúng ta sẽ biết được cấu trúc của tài liệu XML.
Trước khi đi vào phần chi tiết về cách tạo một tài liệu DTD, chúng ta hãy xem
ví dụ sau:
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
Xem ví dụ trên chúng ta thấy phần được bôi đen là phần DTD dùng để mô tả
kiểu dữ liệu của tài liệu XML, phần có màu nhạt là các phần tử của tài liệu
XML.
Phần DTD trong ví dụ này được hiểu như sau: Tài liệu XML có một phần tử
gốc tên là note, phần tử gốc này có 3 phần tử con là from, heading, body và 3
phần tử con này có kiểu dữ liệu text.
2 Định nghĩa một tài liệu DTD
Để viết một tài liệu DTD cũng rất dễ, chỉ cần chúng ta tuân thủ đúng một số
quy tắc của W3C là được. Đầu tiên chúng ta hãy tìm hiểu về các phần tử
(emlement), thuộc tính, thực thể của DTD.
2.1 Phần tử <!DOCTYPE>
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 10 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
Phần tử này có chức năng dùng để khai báo bắt đầu định nghĩa kiểu tư liệu
DTD.
Định nghĩa kiểu tư liệu có 2 dạng, đó là DTD tham chiếu nội và DTD tham
chiếu ngoại. DTD tham chiếu nội là DTD được định nghĩa ngay trong tài liệu
XML còn DTD tham chiếu ngoại là DTD được định nghĩa bên ngoài tài liệu
XML. Bây giờ chúng ta sẽ tìm hiểu từng cú pháp một.
2.1.1 Định nghĩa DTD tham chiếu nội
Để bắt đầu định nghĩa kiểu tư liệu DTD tham chiếu nội chúng ta dùng cú pháp
sau:
<!DOCTYPE root-element [DTD]
Trong đó root-element là phần tử gốc của tài liệu XML, DTD là các định nghĩa
cho các phần tử trong tài liệu XML.
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note body>
<!ELEMENT body (#PCDATA)>
]>
<note>
<body>Don't forget me this weekend</body>
</note>
2.1.2 Định nghĩa DTD tham chiếu ngoại
Sử dụng định nghĩa DTD tham chiếu ngoại sẽ làm cho các ứng dụng XML của
chúng ta trở nên dẽ dàng chia sẽ và dùng chung với các ứng dụng khác. Có
hai cách để chỉ định một DTD tham chiếu ngoại: Tham chiếu ngoại riêng và
tham chiếu ngoại chung.
Những định nghĩa DTD tham chiếu ngoại riêng được sử dụng cho một nhóm
người mang tính cá nhân, chúng không được dùng cho mục đích chung rộng
lớn, mục đích phân phối. Còn những định nghĩa DTD tham chi
ếu ngoại chung
sẽ mang tính cộng đồng hơn.
• Để định nghĩa một DTD tham chiếu ngoại riêng chúng ta dùng cú pháp sau:
<!DOCTYPE root-element SYSTEM “filename”>
Trong đó root-element là tên của phần tử gốc trong tài liệu XML, filename là
tên file định nghĩa kiểu tư liệu DTD
Ví dụ:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
http://www.ebook.edu.vn Căn bản về XML
TRUNG TÂM CÔNG NGHỆ PHẦN MỀM THỪA THIÊN HUẾ Trang 11 / 59
Địa chỉ: Số 6 Lê Lợi, Huế
Điện thoại: (054).849.499 Fax: (054).849.498
Email: huesoft@dng.vnn.vn
website: http://www.huesoft.com.vn
<body>Don't forget me this weekend!</body>
</note>
File note.dtd với nội dung như sau:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
Địa chỉ chứa file DTD có thể một URL/URI.
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.w3schools.com/dtd/note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
• Để định nghĩa một DTD tham chiếu ngoại chung chúng ta dùng cú pháp sau:
<!DOCTYPE root-element PUBLIC “FPI” “URL”>
Trong đó FPI (Formal Public Identifier) là một định danh chung hình thức,
chúng ta cần tuân theo một số quy tắc áp dụng cho FPI sau:
o Trường đầu tiên của một FPI là xác định kết nối của DTD đến chuẩn hình
thức. Đối với các DTD chúng ta tự định nghĩa thì trường này là một dấu
chấm. Đối với các chuẩn hình thức trường này sẽ tự tham chiếu đến
chuẩn củ
a nó.
o Trường thứ hai là tên nhóm hay tên người chịu trách nhiệm bảo trì và
nâng cấp các định nghĩa DTD và tên này phải mang tính duy nhất.
o Trường thứ ba chỉ định kiểu của tài liệu được mô tả, thường thì trường
này kèm theo một số định danh duy nhất nào đó (chẳn hạn như version
1.0).
o Trương thứ ba chỉ định ngôn ngữ mà bạn định nghĩa DTD (ví dụ như ngôn
ngữ Tiếng Anh - EN)
o Mỗi trường c
ủa FPI cách nhau bởi dấu //
Ví dụ
<?xml version="1.0"?>
<!DOCTYPE note PUBLIC “.//w3schools//note XML version 1.0//EN”
"http://www.w3schools.com/dtd/note.dtd">
<note>
Không có nhận xét nào:
Đăng nhận xét