Thân tài liệu XML nằm trong phần tử gốc (root). Phần tử gốc này là duy nhất, nó chứa tất cả các phần tử và cặp thẻ khác trong tài liệu.
a. Thẻ và phần tử
Cấu trúc tài liệu XML dựa trên các thành phần định dạng. Các thành phần này bao gồm các phần tử. Mỗi phần tử bao gồm một cặp thẻ: thẻ bắt đầu (thẻ mở) – ký hiệu là <tên thẻ> và thẻ kết thúc (thẻ đóng) – ký hiệu là </tên thẻ>. Trong đó, tên thẻ có thể bắt đầu bằng ký tự, dấu _. Sau đó có thể là ký tự, chữ số, gạch nối nh−ng không chứa khoảng trắng. Cần l−u ý phân biệt chữ hoa, chữ th−ờng khi đặt tên thẻ. Thẻ đóng và thẻ mở phải hoàn toàn khớp với nhau.
Giữa thẻ đóng và thẻ mở có thể chứa dữ liệu ký tự hoặc các cặp thẻ khác. Khác với HTML, các thẻ trong XML phải đặt đúng thứ tự, không xen kẽ nhau.
Ví dụ đặt thứ tự các thẻ nh− sau là sai: <hoten> Nguyễn Văn A <ngaysinh> 21-10-1954 </hoten> </ngaysinh>
Tuy nhiên cũng có phần tử chỉ có một thẻ, nó đ−ợc gọi là phần tử rỗng, không kèm theo dữ liệu. Cú pháp của phần tử này là <tên thẻ/>
b. Thuộc tính của các thẻ
Thuộc tính của thẻ cho phép xác định thêm thông tin và ý nghĩa của thẻ, nó đ−ợc đặt bên trong thẻ mở và thẻ thể hiện phần tử rỗng theo cú pháp t−ơng ứng nh−
sau:
<tên thẻ thuộc tính của thẻ = giá trị> <tên thẻ thuộc tính của thẻ = giá trị/>
Tên thuộc tính đ−ợc đặt theo qui tắc đặt tên thẻ, còn giá trị gán cho thuộc tính đặt trong cặp dấu “”.
Nếu trong giá trị gán cho thuộc tính hay trong dữ liệu ký tự có chứa các ký tự định dạng nh− <, >, hay dấu “” thì ta sẽ giải quyết nh− thế nào vì nếu gõ đúng các
ký tự này, tài liệu sẽ không hợp khuôn dạng. Khi đó ta sử dụng tham chiếu thực thể tổng quát <, >, &, ", ' lần l−ợt thay cho >, <, &, “, ‘.
Ví dụ, tài liệu XML sau là hợp khuôn dạng:
<?xml version=”1.0” standalone=”yes”?> <chao>
Đây lμ nội dung trong phần tử < chao >.
Chμo mừng bạn đến với XML!
</chao>
Nếu ta gõ chính xác “Đây lμ nội dung trong phần tử <chao>” thì tài liệu sẽ không hợp khuôn dạng (do không có thẻ đóng </chao> t−ơng ứng).
c. Phân đoạn CDATA
Phân đoạn CDATA cũng là một phần tử nh−ng bao gồm một thẻ, bắt đầu bằng “<[[CDATA” và kết thúc bằng “]]>”. Giữa chúng là nội dung văn bản mà trình phân tích không đụng đến. Phân đoạn CDATA rất hữu ích khi ta muốn đ−a nội dung dữ liệu XML ngoài vào tài liệu đích mà không bị xáo trộn, sẽ không có sự xung đột với các thẻ hay ký tự đặc biệt của XML. Tuy nhiên trong dữ liệu giữa phân đoạn CDATA tránh dùng ký tự nhận dạng kết thúc “]]>”. Ví dụ: <?xml version=”1.0” standalone=”yes”?> <chao> Chμo mừng bạn đến với XML! <[[CDATA
Trong ví dụ nμy ta dùng phần tử gốc có tên lμ <chao>
]]> </chao>