XML: Bài 3.3. Tài liệu XML hợp lệ

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Trong bài học thứ ba này, Tài liệu XML hợp lệ, bạn sẽ học cách:

  • Xác định tính hợp lệ của tài liệu.
  • Mô tả ngắn gọn cách kiểm tra tính hợp lệ của tài liệu.

3.3.1. Tài liệu XML được định dạng tốt

Để tài liệu XML thực thi đúng cách, nó phải được định dạng tốt. Một tài liệu XML được định dạng tốt tuân theo các quy tắc cú pháp XML cơ bản. World Wide Web Consortium trong các thông số kỹ thuật của mình tuyên bố rằng các tài liệu XML có lỗi không được xử lý bằng bất kỳ chương trình nào. Các quy tắc cú pháp XML cơ bản như sau:

  • Tất cả các phần tử phải được bao bởi phần tử gốc
  • Tất cả các phần tử phải có thẻ đóng
  • Tất cả các thẻ phải phân biệt chữ hoa chữ thường
  • Tất cả các phần tử phải được lồng đúng cách
  • Tất cả các giá trị thuộc tính phải luôn được trích dẫn

Hình 3.4 cho thấy một ví dụ về tài liệu XML được định dạng tốt.

Tài liệu XML được định dạng tốt

Hình 3.4: Tài liệu XML được Định dạng Tốt

3.3.2. Các tài liệu XML hợp lệ

Tài liệu XML hợp lệ là tài liệu XML được định dạng tốt tuân theo DTD của nó. Tính hợp lệ của một tài liệu XML được xác định bằng cách kiểm tra nó với DTD của nó. Khi đã được xác nhận rằng các thành phần được sử dụng trong tài liệu XML tuân theo các khai báo trong DTD, một tài liệu XML được định dạng tốt có thể được gọi là tài liệu XML hợp lệ.

Tính hợp lệ của các tài liệu XML đóng một vai trò quan trọng trong tất cả các ứng dụng XML. Có thể là tạo ra các phần mô-đun của mã, hoặc trao đổi dữ liệu, hoặc xử lý dữ liệu được truyền, hoặc truy cập cơ sở dữ liệu, v.v., tính hợp lệ của tài liệu XML là một tính năng được khuyến nghị. Đoạn mã sau thể hiện một tài liệu XML hợp lệ.

Đoạn mã:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Mail [
  <!ELEMENT Mail (To, From, Date, Time, Cc, Bcc, Subject, Message, Signature)>
<!ELEMENT To (#PCDATA)>
<!ELEMENT From (#PCDATA)>
<!ELEMENT Date (#PCDATA)>
<!ELEMENT Time (#PCDATA)>
<!ELEMENT Cc (#PCDATA)>
<!ELEMENT Bcc (#PCDATA)>
<!ELEMENT Subject (#PCDATA)>
<!ELEMENT Message (#PCDATA)>
<!ELEMENT Signature (#PCDATA)>
]>
<Mail>
  <To> anne@xyz.com </To>
  <From> bob@xyz.com </From>
  <Date> 27th February 2007 </Date>
  <Time> 11:30 am </Time>
  <Cc> </Cc>
  <Bcc> </Bcc>
  <Subject> Meeting at Main Conference Room at 4:30pm </Subject>
  <Message> Hi, Kindly request you to attend the cultural body general meeting in the main conference room at 4:30 pm. Please be present to learn about the new activities being planned for the employees for this year.
    Yours sincerely, Bob </Message>
  <Signature> </Signature>
</Mail>

3.3.3. Kiểm tra tính hợp lệ của XML

  Tính hợp lệ là một đặc điểm mong muốn, nó là cần thiết để có thể xác thực các tài liệu XML sau khi tạo chúng. Tính hợp lệ của các tài liệu XML có thể được xác định bằng cách sử dụng trình phân tích cú pháp xác thực như Trình phân tích cú pháp MSXML 6.0.

MSXML cho phép trình duyệt Internet Explorer (IE) xác thực mã. Khi mã được hiển thị trong IE, hãy nhấp chuột phải vào mã để hiển thị menu ngữ cảnh. Menu cung cấp tùy chọn xác thực mã. Khi lựa chọn, IE xác nhận nội bộ mã so với DTD của mã.

Hình ảnh đầu tiên của hình 3.5 hiển thị kết quả xác thực của tệp mobile.xml hợp lệ.

Hình ảnh thứ hai của hình 3.5 hiển thị kết quả xác nhận sau khi loại bỏ phần tử chữ ký khỏi DTD của tài liệu.

Kết quả sau khi loại bỏ phần tử

Hình 3.5: Kiểm tra tính hợp lệ của tệp XML

Kiểm tra kiến thức 3

1. Đoạn mã XML nào sau đây là hợp lệ?

(A)

<!DOCTYPE mobile [
  <!ELEMENT Mobile (Company, Model, Price, Accessories)>
<!ELEMENT Company (#PCDATA)>
<!ELEMENT Model (#PCDATA)>
<!ELEMENT Accessories (#PCDATA)>
<!ATTLIST Model Type CDATA "Camera">
<!ENTITY HP SYSTEM "hp.txt">
<!ENTITY CH SYSTEM "ch.txt">
<!ENTITY SK SYSTEM "sk.txt">
]>
<Mobile>
  <Company> Nokia </Company>
  <Model Type="Camera"> 6600 </Model>
  <Price> 9999 </Price>
  <Accessories> &HP;, &CH; and a &SK; </Accessories>
</Mobile>

hp.txt
Head Phones

ch.txt Charger

sk.txt
Starter's Kit
(B)
<!DOCTYPE Mobile [
  <!ELEMENT Mobile (Company, Model, Price, Accessories)>
<!ELEMENT Company (#PCDATA)>
<!ELEMENT Model (#PCDATA)>
<!ELEMENT Price (#PCDATA)>
<!ELEMENT Accessories (#PCDATA)>
<!ATTLIST Model Type CDATA "Camera">
<!ENTITY HP SYSTEM "hp.txt">
<!ENTITY SK SYSTEM "sk.txt">
]>
<Mobile>
  <Company> Nokia </Company>
  <Model Type="Camera"> 6600 </Model>
  <Price> 9999 </Price>
  <Accessories> &HP;, &CH; and a &SK; </Accessories>
</Mobile>

hp.txt
Head Phones

ch.txt Charger

sk.txt
Starter's Kit
(C)

<!DOCTYPE Mobile [

<!ELEMENT Mobile (Company, Model, Price, Accessories)>

<!ELEMENT Company (#PCDATA)>

<!ELEMENT Model (#PCDATA)>

<!ELEMENT Price (#PCDATA)>

<!ELEMENT Accessories (#PCDATA)>

<!ATTLIST Model Type CDATA "Camera">

<!ENTITY HP SYSTEM "hp.txt">

<!ENTITY CH SYSTEM "ch.txt">

<!ENTITY SK SYSTEM "sk.txt">

]>

<Mobile>

<Company> Nokia </Company>

<Model Type="Camera"> 6600 </Model>

<Price> 9999 </Price>

<Accessories> &HP;, &CH; and a &SK; </Accessories>

</Mobile>

 

hp.txt

Head Phones

 

ch.txt Charger

 

sk.txt

Starter's Kit
(D)
<!DOCTYPE Mobile [
  <!ELEMENT Mobile (Company, Model, Price, Accessories)>
<!ELEMENT Company (#PCDATA)>
<!ELEMENT Model (#PCDATA)>
<!ELEMENT Price (#PCDATA)>
<!ELEMENT Accessories (#PCDATA)>
<!ATTLIST Model Type CDATA "Camera">
<!ENTITY HP SYSTEM "hp.txt">
<!ENTITY CH SYSTEM "ch.txt">
<!ENTITY SK SYSTEM "sk.txt">
]>
<Mobile>
  <Company> Nokia </Company>
  <Model Type="Camera"> 6600 </Model>
  <Price> 9999
    <Accessories> &HP;, &CH; and a &SK; </Accessories>
</Mobile>

hp.txt
Head Phones

ch.txt Charger

sk.txt
Starter's Kit
» Tiếp: Bài 3.4. Khai báo
« Trước: Bài 3.2. Làm việc với DTD
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!