Cập nhật lần cuối: 25 Tháng 3, 2025

Tiêu đề - XML là gì: Hướng dẫn Toàn diện

XML là gì?

XML (Extensible Markup Language) là ngôn ngữ đánh dấu và định dạng tệp được sử dụng để lưu trữ, truyền tải, và tái cấu trúc dữ liệu. Nó cung cấp một phương pháp có cấu trúc để mã hóa thông tin, khiến nó vừa dễ đọc cho con người vừa dễ đọc cho máy tính.

Các tính năng chính của XML

1. Được định nghĩa bởi Tiêu chuẩn Mở

  • Được thiết lập bởi World Wide Web Consortium (W3C) vào năm 1998 theo Tiêu chuẩn XML 1.0.
  • Tuân thủ các quy tắc nghiêm ngặt để đảm bảo dữ liệu có cấu trúc và dễ hiểu.

2. Mục tiêu Thiết kế

  • XML được thiết kế với đơn giản, tính tổng quát và tính khả dụng trên các nền tảng khác nhau.
  • Sử dụng định dạng dựa trên văn bản, dễ dàng đọc và chỉnh sửa.

3. Hỗ trợ Unicode

  • XML hỗ trợ Unicode, cho phép lưu trữ và xử lý văn bản bằng nhiều ngôn ngữ.

4. Tính đa dụng

  • Ban đầu được tạo ra cho các tài liệu, XML hiện được sử dụng rộng rãi cho biểu diễn dữ liệu trên nhiều lĩnh vực khác nhau, bao gồm dịch vụ web, API, và các tệp cấu hình.

5. Lược đồ và API

  • Cấu trúc XML có thể được xác định bằng Document Type Definition (DTD), XML Schema (XSD), hoặc Relax NG.
  • Các API khác nhau, như DOM (Document Object Model)SAX (Simple API for XML), cho phép xử lý XML.

6. Các ứng dụng phổ biến của XML

  • Trao đổi dữ liệu giữa các hệ thống khác nhau (ví dụ: dịch vụ web, API).
  • Các tệp cấu hình trong ứng dụng phần mềm.
  • Lưu trữ thông tin có cấu trúc (ví dụ: nguồn cấp RSS, đồ họa SVG, định dạng tài liệu như DOCX).
  • Phát triển web (ví dụ: XHTML, SOAP, ứng dụng dựa trên AJAX).

Tổng quan về XML

1. Mục đích chính của XML: Tuần tự hóa

Tuần tự hóa trong XML có nghĩa là:

  • Lưu trữ dữ liệu dưới dạng cấu trúc.
  • Truyền tải dữ liệu giữa các hệ thống khác nhau.
  • Tái cấu trúc dữ liệu dưới dạng có thể sử dụng.

Khi hai hệ thống cần trao đổi thông tin, XML cung cấp một định dạng tệp tiêu chuẩn để tương tác. Nó hoạt động như một “ngôn ngữ chung” cho trao đổi dữ liệu có cấu trúc.

2. XML là Ngôn ngữ Đánh dấu

XML là một ngôn ngữ đánh dấu, có nghĩa là nó:

  • Gắn nhãn dữ liệu bằng các thẻ để tạo cấu trúc rõ ràng.
  • Tổ chức thông tin theo thứ bậc.
  • Phân loại dữ liệu bằng métadữ liệu.

Ví dụ:

<book>
    <title>XML Basics</title>
    <author>John Doe</author>
</book>

Ở đây, <book>, <title>, và <author> là các thẻ định nghĩa các phần tử dữ liệu.

3. XML Schema (XSD) và Kiểm tra Hợp lệ

Một XML Schema (XSD) định nghĩa các quy tắc cấu trúc cho các tài liệu XML.

Các tài liệu XML có thể là:

  • Đúng cấu trúc → Tuân thủ các quy tắc cú pháp cơ bản (gắn kết chính xác, thẻ đóng đúng cách).
  • Hợp lệ → Tuân thủ các quy tắc của lược đồ (các phần tử bắt buộc, kiểu dữ liệu đúng).

Ví dụ về Quy tắc XSD:

<xs:element name="title" type="xs:string"/>

Điều này đảm bảo rằng <title> phải chứa một giá trị chuỗi.

4. Các loại Phương tiện XML (RFC 7303)

IETF RFC 7303 định nghĩa các loại phương tiện XML cho việc truyền tải dữ liệu:

  • application/xml → Dữ liệu XML tiêu chuẩn.
  • application/xml-external-parsed-entity → Thực thể XML đã được phân tích.
  • application/xml-dtd → Tài liệu DTD XML.

Đối với các định dạng dựa trên XML, hậu tố +xml được sử dụng (ví dụ: image/svg+xml cho hình ảnh SVG).

5. XML trong Ứng dụng Mạng (RFC 3470 / IETF BCP 70)

IETF BCP 70 (RFC 3470) nêu bật các thực tiễn tốt nhất cho việc sử dụng XML trong ứng dụng dựa trên mạng, đảm bảo khả năng tương tác dữ liệu liền mạch giữa các hệ thống.


1. Ứng dụng của XML

XML là ngôn ngữ đánh dấu linh hoạt được thiết kế cho trao đổi dữ liệu qua Internet. Cú pháp của nó đã ảnh hưởng đến nhiều định dạng tài liệu và giao thức giao tiếp, làm cho nó trở thành công nghệ nền tảng trong nhiều ngành công nghiệp.

Các định dạng dựa trên XML phổ biến:

  • Nguồn cấp Web: RSS, Atom
  • Tài liệu văn phòng: Office Open XML, OpenDocument
  • Đồ họa và Mô hình 3D: SVG, COLLADA
  • Công nghệ Web: XHTML
  • Giao thức trao đổi dữ liệu: SOAP, XMPP
  • AJAX: Sử dụng XML để trao đổi dữ liệu không đồng bộ

Tiêu chuẩn ngành sử dụng XML:

  • Chăm sóc sức khỏe: HL7 (Health Level 7)
  • Ngành du lịch: OpenTravel Alliance
  • Tài chính: FpML (Financial products Markup Language)
  • Bất động sản & Thế chấp: MISMO
  • Trao đổi dữ liệu trong chính phủ: National Information Exchange Model

XML trong Khoa học:

Trong khí tượng học, XML được sử dụng để biểu diễn dữ liệu thời tiết hoạt động theo tiêu chuẩn IWXXM. Tương tự, Darwin Information Typing Architecture (DITA) là một tiêu chuẩn XML được sử dụng rộng rãi trong xuất bản.


2. Thuật ngữ chính trong XML

Hiểu rõ thuật ngữ cốt lõi trong XML là điều quan trọng để làm việc với các tài liệu XML một cách hiệu quả.

Ký tự

Một tài liệu XML là một chuỗi các ký tự Unicode. XML 1.1 cho phép gần như tất cả các ký tự Unicode, trừ ký tự Null (U+0000), hoàn toàn bị cấm.

Bộ xử lý và Ứng dụng

  • Bộ xử lý XML (hoặc bộ phân tích cú pháp) đọc và phân tích cú pháp đánh dấu XML.
  • Ứng dụng nhận dữ liệu có cấu trúc từ bộ xử lý và hoạt động dựa trên chúng.

Đánh dấu và Nội dung

XML phân chia các ký tự thành đánh dấu và nội dung:

  • Đánh dấu: Bao gồm các phần tử, thuộc tính, và thực thể (ví dụ: <tag>&amp;).
  • Nội dung: Dữ liệu thực sự bên trong các phần tử.
  • Phần CDATA: Cho phép văn bản không nên được phân tích cú pháp như đánh dấu, được bao quanh bởi <![CDATA[ ... ]]>.

Thẻ và Phần tử

  • Thẻ: Các cấu trúc đánh dấu nằm trong < >.
    • <section> (Thẻ bắt đầu)
    • </section> (Thẻ kết thúc)
    • <line-break /> (Thẻ phần tử rỗng)
  • Phần tử: Các thành phần logic được định nghĩa bởi các thẻ.
    • Ví dụ: <greeting>Hello, world!</greeting>

Thuộc tính

Thuộc tính cung cấp métadữ liệu cho các phần tử sử dụng cặp tên-giá trị. Ví dụ:

<img src="image.jpg" alt="Mô tả" />
  • src="image.jpg"alt="Mô tả" là các thuộc tính của phần tử <img>.

3. Ký tự và Kỹ thuật chuyển đổi trong XML

Ký tự Unicode hợp lệ trong XML

Tài liệu XML chỉ cho phép các ký tự Unicode cụ thể để đảm bảo phân tích cú pháp đúng.

Ký tự được phép trong XML 1.0:

  • Ký tự điều khiển:
    • U+0009 (Tab)
    • U+000A (Dòng mới)
    • U+000D (Carriage Return)
  • Ký tự văn bản:
    • U+0020–U+D7FF
    • U+E000–U+FFFD
    • U+10000–U+10FFFF

Cải tiến XML 1.1:

  • Cho phép tất cả các ký tự điều khiển U+0001–U+001F nhưng yêu cầu phải được chuyển đổi.
  • U+0000 (ký tự Null) vẫn bị cấm.

4. Mã hóa trong XML

Các mã hóa XML phổ biến:

XML hỗ trợ mã hóa dựa trên Unicode, bao gồm:

  • UTF-8 (Mặc định được khuyến nghị)
  • UTF-16 (Phải được hỗ trợ bởi tất cả các bộ phân tích XML)
  • ASCII, ISO-8859-X (Mã hóa cũ)

Khai báo mã hóa trong XML:

Tiêu đề XML có thể chỉ định mã hóa:

<?xml version="1.0" encoding="UTF-8"?>
  • Nếu không có mã hóa được chỉ định, UTF-8 là mặc định.
  • UTF-16 yêu cầu một BOM (Dấu thứ tự byte) để phát hiện chính xác.

5. Kỹ thuật chuyển đổi ký tự đặc biệt trong XML

Do cú pháp XML dành riêng cho một số ký tự, chúng phải được chuyển đổi để tránh xung đột.

Các thực thể XML được định nghĩa trước:

Ký tựHình thức chuyển đổiVí dụ
< (Nhỏ hơn)&lt;I &lt;3 XMLI <3 XML
> (Lớn hơn)&gt;x &gt; yx > y
& (Ampersand)&amp;AT&amp;TAT&T
' (Dấu ngoặc đơn)&apos;"O&apos;Reilly"O’Reilly
" (Dấu ngoặc kép)&quot;She said &quot;hello&quot;She said “hello”

Tham chiếu ký tự số:

Đối với các ký tự đặc biệt không thể nhập, sử dụng tham chiếu số:

  • Thập phân:
    &#20013;  <!-- Ký tự Trung Quốc "中" -->
    
  • Thập lục phân:
    &#x4E2D;  <!-- Ký tự Trung Quốc "中" -->
    
  • Ví dụ:
    <message>I &lt;3 J&#xF6;rg</message>
    
    Hiển thị dưới dạng: I <3 Jörg

Xử lý dữ liệu nhị phân:

XML không hỗ trợ dữ liệu nhị phân thô. Thay vào đó, sử dụng mã hóa Base64.


6. Nhận xét trong XML

Cú pháp nhận xét XML:

<!-- Đây là một nhận xét hợp lệ của XML -->

Quy tắc cho nhận xét XML:

  • Không thể xuất hiện trước khai báo XML.
  • Không thể chứa -- (dấu gạch ngang đôi) bên trong nhận xét.
  • Tham chiếu thực thể bị bỏ qua trong nhận xét.

Ví dụ:

<!-- Đây là một nhận xét với ký tự < và & -->

Kết luận

XML là một công nghệ thiết yếu cho trao đổi dữ liệu có cấu trúc, hỗ trợ nguồn cấp web, tài liệu văn phòng, dữ liệu khoa học, và tiêu chuẩn ngành. Hiểu biết về thuật ngữ XML quan trọng, quy tắc mã hóa, và cơ chế chuyển đổi đảm bảo rằng các tài liệu XML được xây dựng đúng cấu trúc và hoạt động chính xác trên các hệ thống khác nhau.

Bằng cách tuân theo các thực tiễn tốt nhất trong mã hóa và chuyển đổi ký tự, các nhà phát triển có thể tránh lỗi phân tích cú pháp và đảm bảo tính tương thích trong các ứng dụng dựa trên XML.