Nội dung chính
Cú pháp của XML
Bài này trình bày cho bạn các qui tắc cú pháp đơn giản để viết một tài liệu XML. Ví dụ dưới là một tài liệu XML đầy đủ:
<?xml version="1.0"?> <contact-info> <name>Vinh Phan</name> <company>VietTuts</company> <phone>(84) 123-4567</phone> </contact-info>
Bạn để ý trong ví dụ trên có hai loại thông tin:
- Thông tin đánh dấu, như
và - Text, hoặc dữ liệu là ký tự, như VietTuts và (84) 123-4567.
Sơ đồ sau minh họa qui tắc cú pháp để viết các kiểu đánh dấu và text khác nhau trong một tài liệu XML.
Chúng ta đi vào giải thích chi tiết cho từng phần:
Khai báo XML (XML Declaration)
Tài liệu XML có thể tùy ý có một phần khai báo XML. Nó được viết như sau:
<?xml version="1.0" encoding="UTF-8"?>
Ở đây, version là phiên bản XML và encoding xác định mã hóa ký tự được sử dụng trong tài liệu.
Các qui tắc cú pháp để khai báo XML
Khai báo XML (XML declaration) là phân biệt kiểu chữ và phải bắt đầu với "" ở đây "xml" viết ở dạng chữ thường.
Nếu tài liệu chứa khai báo XML, thì nó phải là lệnh đầu tiên của tài liệu XML.
Khai báo XML phải là lệnh đầu tiên của tài liệu XML.
Một HTTP Protocol có thể ghi đè giá trị của encoding mà bạn đặt trong khai báo XML.
Thẻ (Tag) và phần tử (Element)
Một XML file được cấu thành bởi một số phần tử XML (Element), còn được gọi là XML-node hoặc XML-tags. Tên các phần tử XML được bao trong các dấu < > như sau:
<element>
Qui tắc cú pháp (Syntax Rules) cho các thẻ và phần tử
Cú pháp phần tử: Mỗi phần tử XML cần được bao trong hoặc với phần tử bắt đầu hoặc kết thúc như sau:
<element>....</element>
Hoặc đơn giản theo cách:
<element/>
Lồng các phần tử: Một phần tử XML có thể chứa nhiều phần tử XML khác như là con của nó, nhưng các phần tử con này phải không đè lên nhau, ví dụ: Một thẻ đóng của một phần tử phải có cùng tên như thẻ mở kết nối với nó.
Ví dụ sau minh họa các thẻ lồng nhau sai cú pháp:
<?xml version="1.0"?> <contact-info> <company>VietTuts <contact-info> </company>
Ví dụ sau minh họa các thẻ lồng nhau đúng cú pháp:
<?xml version="1.0"?> <contact-info> <company>VietTuts</company> <contact-info>
Phần tử gốc (Root Element): Một tài liệu XML có thể chỉ có một phần tử gốc. Ví dụ sau minh họa một tài liệu XML sai cú pháp, bởi vì cả hai phần tử x và y xuất hiện ở cấp cao nhất mà không phải là một phần tử gốc.
<x>...</x> <y>...</y>
Còn đây là ví dụ về đúng cú pháp:
<root> <x>...</x> <y>...</y> </root>
Phân biệt kiểu chữ: Tên của các phần tử XML là phân biệt kiểu chữ. Nghĩa là tên của thẻ mở và thẻ đóng phải cùng kiểu.
Ví dụ,
Thuộc tính (Attributes)
Một thuộc tính xác định thuộc tính cho phần tử, sử dụng một cặp tên/giá trị. Một phần tử XML có thể có một hoặc nhiều thuộc tính. Ví dụ:
<a href="viettuts.vn">VietTuts!</a>
Ở đây href là tên thuộc tính và viettuts.vn là giá trị thuộc tính.
Qui tắc cú pháp cho thuộc tính trong XML
- Tên thuộc tính trong XML là phân biệt kiểu chữ (không giống như HTML). Tức là, HREF và href là hai thuộc tính khác nhau trong XML.
- Cùng một thuộc tính không thể có hai giá trị trong một cú pháp. Ví dụ sau là sai cú pháp bởi vì thuộc tính b được xác định hai lần:
- Tên thuộc tính được định nghĩa không có sự trích dẫn, trong khi giá trị thuộc tính phải luôn luôn trong các dấu trích dẫn. Ví dụ sau là sai cú pháp:
<a b="x" c="y" b="z">....</a>
<a b=x>....</a>
Trong ví dụ này, giá trị thuộc tính không được định nghĩa trong các dấu trích dẫn.
Tham chiếu trong XML
Tham chiếu (References) thường cho phép bạn thêm hoặc bao phần text hoặc phần đánh dấu bổ sung trong một tài liệu XML. Các tham chiếu luôn luôn bắt đầu với biểu tượng "&" , đây là ký tự dành riêng và kết thúc với ký tự ";". XML có hai kiểu tham chiếu:
Tham chiếu thực thể (Entity Reference): Một tham chiếu thực thể chứa một tên giữa dấu tách mở và dấu tách đóng. Ví dụ: & có amp là tên. Tên tham chiếu tới một chuỗi văn bản hoặc đánh dấu đã được định nghĩa trước.
Tham chiếu ký tự (Character Reference): Chứa các tham chiếu, ví dụ A, chứa một dấu băm (#) được theo sau bởi một số. Số này luôn luôn tham chiếu tới mã hóa Unicode của ký tự. Trong ví dụ này, 65 tham chiếu tới chữ cái "A".
Text trong XML
- Tên của phần tử XML và thuộc tính XML là phân biệt kiểu chữ, nghĩa là tên của phần tử mở và phần tử đóng phải ở được viết cùng kiểu.
- Để tránh các vấn đề về mã hóa ký tự, tất cả XML file nên được lưu ở dạng Unicode UTF-8 hoặc UTF-16.
- Các ký tự whitespace như khoảng trắng, tab và ngắt dòng giữa các phần tử XML và giữa các thuộc tính XML sẽ bị bỏ qua.
- Một số ký tự được dành riêng trong cú pháp XML. Vì thế, chúng không thể được sử dụng một cách trực tiếp. Để sử dụng chúng, một số thực thể thay thế được sử dụng, các thực thể này được liệt kê trong bảng dưới:
Ký tự không được phép sử dụng | Thực thể thay thế | Mô tả |
---|---|---|
< | < | Nhỏ hơn |
> | > | Lớn hơn |
& | & | Và |
' | ' | Dấu nháy đơn |
" | " | Trích dẫn kép |