Công cụ
VI

XML là gì?

XML (Extensible Markup Language) là định dạng văn bản dùng để lưu trữ và trao đổi dữ liệu có cấu trúc. Bài viết này giải thích XML là gì, cú pháp XML hoạt động ra sao, file .xml là gì và bạn bắt gặp XML ở đâu hằng ngày – từ sitemap, ảnh SVG đến tài liệu Office và hóa đơn điện tử.

Ý nghĩa của XML

XML là viết tắt của Extensible Markup Language (ngôn ngữ đánh dấu mở rộng). XML trở thành Khuyến nghị của W3C năm 1998 và mô tả dữ liệu bằng các thẻ do chính bạn đặt tên – đó chính là ý nghĩa của từ “extensible” (mở rộng). Khác với HTML, XML không có thẻ định sẵn: một danh mục sản phẩm có thể dùng <product> và <price>, còn một hóa đơn dùng <item> và <total>.

Một tài liệu XML nhỏ trông như sau: <book id="1"><title>XML Basics</title><year>2026</year></book>. XML là văn bản thuần túy, nên con người đọc được và mọi ngôn ngữ lập trình đều xử lý được. XML chỉ lưu trữ và tổ chức dữ liệu – tự nó không làm gì cả. Chính các chương trình quyết định dữ liệu mang ý nghĩa gì và hiển thị ra sao.

Quy tắc cú pháp XML

Mọi tài liệu XML đều phải tuân theo một vài quy tắc nghiêm ngặt. Tài liệu tuân thủ các quy tắc này được gọi là well-formed (đúng cú pháp):

Chú thích được viết dưới dạng <!-- … -->. Công cụ kiểm tra XML (XML validator) kiểm tra tất cả các quy tắc này trong một giây và chỉ ra dòng chứa lỗi.

Phần tử và thuộc tính trong XML

Phần tử (element) gồm thẻ mở, nội dung và thẻ đóng: <price>19.90</price>. Phần tử có thể chứa văn bản, các phần tử khác hoặc cả hai. Thuộc tính (attribute) là một cặp tên–giá trị nằm trong thẻ mở: <price currency="EUR">.

Phần tửThuộc tính
Ví dụ<color>red</color>color="red"
Có thể lặp lạiCóKhông, mỗi phần tử một lần
Có thể chứa phần tử conCóKhông, chỉ chứa văn bản
Thứ tự có ý nghĩaCóKhông

Quy ước phổ biến: dùng phần tử cho chính dữ liệu và cho những gì có thể lặp lại hoặc có cấu trúc, còn thuộc tính cho siêu dữ liệu như ID, đơn vị hoặc kiểu.

XML đúng cú pháp (well-formed) và XML hợp lệ (valid)

XML well-formed (đúng cú pháp) tuân theo các quy tắc cú pháp; parser sẽ từ chối mọi thứ khác. XML valid (hợp lệ) là XML đúng cú pháp và còn khớp với một schema quy định những phần tử và thuộc tính nào được phép, theo thứ tự nào và với kiểu dữ liệu nào.

Namespace trong XML

Vì ai cũng có thể tự đặt tên thẻ, hai bộ từ vựng có thể dùng cùng một tên – <title> của một cuốn sách (tên sách) và <title> của một người (chức danh). Namespace tách biệt chúng bằng cách gắn tên với một URI. xmlns:cfdi="http://www.sat.gob.mx/cfd/4" khai báo tiền tố cfdi, nên <cfdi:Comprobante> thuộc bộ từ vựng CFDI 4.0 của Mexico. Namespace mặc định, xmlns="…" không có tiền tố, áp dụng cho mọi phần tử không có tiền tố nằm bên trong nó. URI chỉ là một định danh; không có gì được tải xuống từ đó.

So sánh XML, JSON và HTML

XMLJSONHTML
Mục đíchLưu trữ và trao đổi dữ liệu có cấu trúc và tài liệuTrao đổi dữ liệu, đặc biệt trong web APIHiển thị trang web
Tên thẻ hoặc tên khóaDo bạn tự đặtDo bạn tự đặtCố định theo chuẩn HTML
Kiểu dữ liệuVăn bản, trừ khi schema định nghĩa kiểuChuỗi, số, boolean, null, mảng, objectVăn bản
Thuộc tínhCóKhôngCó
Chú thíchCóKhôngCó
SchemaDTD, XSDJSON Schema–
Lỗi cú phápBị parser từ chốiBị parser từ chốiĐược trình duyệt tự sửa

JSON ngắn gọn hơn và ánh xạ trực tiếp sang object trong JavaScript, vì vậy hầu hết web API đã chuyển sang JSON. XML vẫn mạnh ở những nơi tài liệu trộn lẫn văn bản và markup, cần namespace hoặc phải được kiểm tra nghiêm ngặt theo schema – đó là lý do cơ quan thuế, nhà xuất bản và các định dạng văn phòng vẫn dựa vào XML.

File .xml là gì và cách mở file XML

File .xml là một file văn bản thuần chứa tài liệu XML, thường được mã hóa UTF-8. Vì là văn bản, bạn có thể mở nó bằng bất kỳ trình soạn thảo văn bản nào – Notepad trên Windows, TextEdit trên Mac hoặc trình soạn thảo code như VS Code. Chrome và Firefox hiển thị file XML dưới dạng cây khi bạn kéo file vào cửa sổ trình duyệt, còn Excel có thể nhập dữ liệu XML vào bảng tính.

Nhiều file dùng XML mà không có đuôi .xml: ảnh .svg, feed .rss, schema .xsd, stylesheet .xsl, file .config trong .NET và file .plist trên macOS (có thể được lưu dưới dạng XML). File Word, Excel và PowerPoint (.docx, .xlsx, .pptx) thực chất là các kho nén ZIP chứa đầy file XML.

XML được dùng ở đâu?

Câu hỏi thường gặp

XML là viết tắt của từ gì?

Extensible Markup Language (ngôn ngữ đánh dấu mở rộng). “Extensible” (mở rộng) nghĩa là bạn tự định nghĩa thẻ của mình, còn “markup” (đánh dấu) nghĩa là cấu trúc được viết dưới dạng các thẻ bao quanh dữ liệu.

XML có phải là ngôn ngữ lập trình không?

Không. XML là một định dạng dữ liệu: nó mô tả và tổ chức thông tin nhưng không thể tính toán gì. Các công nghệ liên quan như XPath và XSLT dùng để truy vấn và biến đổi XML.

Ngày nay XML còn được sử dụng không?

Có. JSON đã thay thế XML trong nhiều web API, nhưng XML vẫn là chuẩn cho sitemap, feed RSS, SVG, tài liệu văn phòng, layout Android, dịch vụ SOAP và hóa đơn điện tử ở nhiều quốc gia.

Cập nhật lần cuối: