XML (Extensible Markup Language) là ngôn ngữ đánh dấu được thiết kế để mô tả, lưu trữ và trao đổi dữ liệu một cách có cấu trúc. Nhờ tính linh hoạt, XML cho phép các hệ thống khác nhau dễ dàng kết nối và chia sẻ thông tin. Trong nội dung này Xanh Cloud sẽ cùng bạn tìm hiểu XML là gì cách hoạt động cũng như cấu trúc cơ bản của ngôn ngữ này.

XML là gì?

XML (viết tắt của Extensible Markup Language, nghĩa là Ngôn ngữ đánh dấu mở rộng) là một ngôn ngữ đánh dấu do W3C (World Wide Web Consortium) phát triển, công bố lần đầu vào năm 1998. XML được thiết kế nhằm lưu trữ và trao đổi dữ liệu một cách có cấu trúc, độc lập với nền tảng và ngôn ngữ lập trình.

Khác với HTML vốn tập trung vào việc hiển thị nội dung trên trình duyệt, XML chỉ tập trung vào dữ liệu: mô tả, tổ chức và truyền tải dữ liệu giữa các hệ thống. Các thẻ trong XML không được định sẵn mà người dùng có thể tự định nghĩa thẻ theo nhu cầu giúp XML có tính mở rộng cao và phù hợp cho nhiều lĩnh vực khác nhau như:

  • Tạo file cấu hình cho phần mềm (.xml trong .NET, Android, Spring Framework).
  • Định dạng dữ liệu trao đổi trong API (SOAP, RSS, SVG, GML…).
  • Lưu trữ thông tin trong các hệ thống cơ sở dữ liệu hoặc tài liệu.

Với định dạng văn bản thuần (plain text), XML dễ đọc, dễ hiểu đối với cả con người và máy tính. Chính nhờ ưu điểm này, XML đã trở thành một trong những tiêu chuẩn quan trọng trong việc tích hợp hệ thống và truyền tải dữ liệu qua Internet, mặc dù hiện nay JSON được ưa chuộng hơn trong nhiều ứng dụng web hiện đại.

XML
XML là một ngôn ngữ đánh dấu

Cấu trúc cơ bản của một tài liệu XML

Cấu trúc cơ bản của một tài liệu XML
Cấu trúc cơ bản của một tài liệu XML

Tuyên bố XML (XML Prolog)

Một tài liệu XML hợp lệ thường bắt đầu bằng dòng khai báo phiên bản và bộ mã hóa ký tự:

<?xml version=”1.0″ encoding=”UTF-8″?>

Trong đó:

  • version=”1.0″ cho biết tài liệu đang sử dụng chuẩn XML 1.0.
  • encoding=”UTF-8″ chỉ định bộ mã hóa ký tự được sử dụng. UTF-8 là lựa chọn phổ biến nhất, đảm bảo tính tương thích quốc tế.

Khai báo XML không bắt buộc, nhưng thường được sử dụng để giúp các trình phân tích cú pháp (parser) hiểu rõ hơn về dữ liệu.

Phần tử (Element)

Phần tử là đơn vị cơ bản nhất trong XML, được xác định bằng thẻ mở và thẻ đóng:

<tag> Nội dung </tag>

  • Thẻ mở: <tag>
  • Thẻ đóng: </tag>
  • Nội dung: phần dữ liệu nằm giữa hai thẻ.

Các phần tử có thể chứa văn bản, thuộc tính hoặc các phần tử con khác, tạo thành một cấu trúc phân cấp rõ ràng.

Phần tử gốc (Root Element)

Mọi tài liệu XML hợp lệ phải có duy nhất một phần tử gốc bao bọc toàn bộ nội dung. Nếu có nhiều hơn một phần tử gốc, tài liệu sẽ không được coi là XML hợp lệ.

Ví dụ:

<bookstore>

<book>

<title>XML Cơ Bản</title>

<author>Nguyễn Văn A</author>

</book>

</bookstore>

Trong ví dụ này, <bookstore> là phần tử gốc của toàn bộ tài liệu.

Thuộc tính (Attribute)

Thuộc tính cung cấp thông tin bổ sung cho phần tử, được đặt trong thẻ mở và có dạng cặp tên=”giá trị”.

Ví dụ:

<book id=”101″ category=”kỹ thuật”>

<title>Học XML</title>

</book>

Ở đây, id=”101″ và category=”kỹ thuật” là các thuộc tính của phần tử <book>.

Quy tắc đặt tên thẻ và thuộc tính

Để tránh lỗi cú pháp, XML tuân theo các quy tắc sau:

  • Tên thẻ và tên thuộc tính phân biệt chữ hoa và chữ thường.
  • Không được bắt đầu bằng số hoặc ký tự đặc biệt, chỉ được bắt đầu bằng chữ hoặc dấu gạch dưới _.
  • Không được chứa dấu cách.
  • Không được trùng với từ khóa đã dành riêng trong XML (như xml).

Ví dụ hợp lệ: <EmployeeName> hoặc <emp_name>

Ví dụ không hợp lệ: <123name> hoặc <emp name>

Ví dụ minh họa

<?xml version=”1.0″ encoding=”UTF-8″?>

<library>

<book id=”B01″ category=”Lập trình”>

<title>Học XML từ cơ bản</title>

<author>Trần Văn B</author>

<year>2023</year>

</book>

</library>

Trong ví dụ:

  • Tuyên bố XML: <?xml version=”1.0″ encoding=”UTF-8″?>
  • Phần tử gốc: <library>
  • Phần tử con: <book>, <title>, <author>, <year>
  • Thuộc tính: id=”B01″ và category=”Lập trình”

Cách XML hoạt động trong thực tế

1. Lưu trữ dữ liệu

XML thường được sử dụng như một phương thức lưu trữ dữ liệu có cấu trúc. Thay vì chỉ lưu dữ liệu thô, XML tổ chức thông tin theo dạng thẻ, giúp dữ liệu trở nên trực quan và có tính mô tả. Nhờ vậy, file XML có thể lưu được nhiều loại thông tin khác nhau như tài liệu kỹ thuật, dữ liệu sản phẩm, thông tin nhân sự, hay thậm chí cả hóa đơn điện tử.

Ví dụ:

<employee>

<id>001</id>

<name>Nguyễn Văn A</name>

<position>Kỹ sư phần mềm</position>

</employee>

Trong ví dụ trên, dữ liệu nhân viên được lưu trữ rõ ràng, có cấu trúc và dễ dàng tái sử dụng ở các hệ thống khác.

2. Truyền tải dữ liệu

Một trong những thế mạnh nổi bật của XML là khả năng truyền tải dữ liệu giữa các hệ thống khác nhau. XML đóng vai trò như “ngôn ngữ chung”, giúp các ứng dụng không cùng nền tảng (ví dụ: một hệ thống viết bằng Java và một hệ thống viết bằng PHP) có thể trao đổi dữ liệu dễ dàng.

Trong thực tế, nhiều API và dịch vụ web trước đây (SOAP, RSS, ATOM) đã sử dụng XML làm định dạng trao đổi dữ liệu chuẩn. Dữ liệu được định nghĩa bằng XML có thể gửi qua mạng, đọc bởi nhiều ứng dụng và hiển thị theo nhiều cách khác nhau.

3. Vai trò của XML Schema và DTD

Để đảm bảo dữ liệu XML được nhất quán và tuân thủ quy tắc, người ta sử dụng:

  • DTD (Document Type Definition): Định nghĩa cấu trúc cơ bản của tài liệu XML, bao gồm các phần tử, thuộc tính và mối quan hệ của chúng.
  • XML Schema (XSD): Phiên bản nâng cao và linh hoạt hơn DTD, hỗ trợ nhiều kiểu dữ liệu hơn, cho phép kiểm soát chặt chẽ dữ liệu (ví dụ: số nguyên, chuỗi, ngày tháng…).

Nhờ có DTD và XML Schema, các tài liệu XML có thể được kiểm tra (validate) để đảm bảo đúng định dạng và cấu trúc đã định nghĩa trước.

xml

4. Sử dụng với các ngôn ngữ khác

XML thường được kết hợp với nhiều ngôn ngữ lập trình và công nghệ khác nhau để xử lý và hiển thị dữ liệu:

  • JavaScript (AJAX): XML được sử dụng trong AJAX để truyền dữ liệu giữa trình duyệt và máy chủ mà không cần tải lại toàn bộ trang web.
  • PHP: PHP có thể đọc và ghi dữ liệu XML, thường dùng trong việc lưu trữ cấu hình hoặc trao đổi dữ liệu với dịch vụ web.
  • Java: Java hỗ trợ thư viện xử lý XML mạnh mẽ (JAXP, DOM, SAX) để phân tích cú pháp và thao tác trên tài liệu XML.
  • .NET / C#: XML thường dùng để cấu hình ứng dụng và lưu trữ dữ liệu trong hệ sinh thái Microsoft.

Nhờ sự kết hợp này, XML trở thành một công cụ trung gian linh hoạt, giúp dữ liệu có thể được lưu trữ, trao đổi và trình bày trên nhiều nền tảng khác nhau.

Hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan về XML và tầm quan trọng của nó. Mặc dù có vẻ đơn giản, nhưng XML là nền tảng của nhiều hệ thống dữ liệu ngày nay, giúp các ứng dụng và máy chủ “nói chuyện” với nhau một cách dễ dàng. Việc nắm vững XML chính là chìa khóa để bạn tiến sâu hơn vào thế giới phát triển web và lập trình.