XML là gì? Tìm hiểu về XML

XML là gì? Tìm hiểu về XML

Xml là gì

Trong lập trình ứng dụng web, XML được sử dụng nhiều nhất là xây dựng các API Service. Các API sẽ trả kết quả về dạng XML hoặc JSON để các hệ thống khác có thể nói nói chuyện với nhau được. Hiện nay tuy JSON được sử dụng phổ biến hơn, nhưng XML cũng vẫn đang được dùng bởi nhiều hệ thống lớn.

XML là gì?

XML là từ viết tắt của từ Extensible Markup Language là ngôn ngữ đánh dấu mở rộng. XML có chức năng truyền dữ liệu và mô tả nhiều loại dữ liệu khác nhau. Tác dụng chính của XML là đơn giản hóa việc chia sẻ dữ liệu giữa các nền tảng và các hệ thống được kết nối thông qua mạng Internet.

XML dùng để cấu trúc, lưu trữ và trong trao đổi dữ liệu giữa các ứng dụng và lưu trữ dữ liệu. Ví dụ khi ta xây dựng một ứng dụng bằng Php và một ứng dụng bằng Java thì hai ngôn ngữ này không thể hiểu nhau, vì vậy ta sẽ sử dụng XML để trao đổi dữ liệu. Chính vì vậy, XML có tác dụng rất lớn trong việc chia sẻ, trao đổi dữ liệu giữa các hệ thống.

Ưu và nhược điểm của XML

1. Ưu điểm của XML

Ưu điểm lớn nhất của XML là sự độc lập. XML được sử dụng để mô tả dữ liệu dưới dạng text, nên hầu hết các phần mềm hay các chương trình bình thường đều có thể đọc được chúng.

XML có thể đọc và phân tích nguồn dữ liệu khá dễ dàng nên nó được sử dụng với mục đích chính là trao đổi dữ liệu giữa các chương trình, các hệ thống khác nhau. XML được sử dụng cho Remote Procedure Calls nhằm phục vụ cho các dịch vụ của website.

2. Nhược điểm của XML

Tỷ lệ sai sót khi sử dụng XML để truyền dữ liệu khoảng từ 5-7%. Con số này tuy không quá cao, nhưng trên thực tế, người ta vẫn cần cân nhắc trước khi sử dụng nó để trao đổi thông tin.

So sánh XML với HTML

XML và HTML giống nhau đều là các thẻ (tag)

XML HTML XML cho phép người dùng tạo biểu tượng đánh dấu riêng để mô tả nội dung, tạo một biểu tượng không giới hạn và tự định nghĩa Được định nghĩa trước và người dùng phải tuân thủ Được thiết kế để chuyển tải và lưu trữ dữ liệu Được thiết kế để hiển thị dữ liệu

Tuy nhiên XML không phải là sự thay thế cho HTML.

  • Ví dụ:

<?xml version=”1.0″ encoding=”UTF-8″?> <article> <title>XML là gì</title> <author>TopDev Blog</author> <year>2021</year> </article>

XML thường được sử dụng làm cơ sở cho các định dạng tài liệu khác. Dưới đây là một số định dạng bạn có thể biết:

  • RSS
  • Microsoft .NET sử dụng XML cho các file cấu hình của nó.
  • Sitemap

Cú pháp của XML

Một XML đầy đủ:

<?xml version=”1.0″?> <contact-info> <name>Nhat</name> <company>TopDev</company> <phone>(084) 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ư <contact-info>
  • Text, hoặc dữ liệu là ký tự, như TopDev và (084) 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:

1. 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.

2. 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 “<?xml>” ở đâ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.

3. Tags và Elements

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>

4. 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>TopDev <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>TopDev</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ụ, <contact-info> là khác với <Contact-Info>.

5. 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=”https://topdev.vn/”>TopDev</a>

Ở đây href là tên thuộc tính và https://topdev.vn/ là giá trị thuộc tính.

6. 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à, HREFhref 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:

<a b=”x” c=”y” b=”z”>….</a>

    • 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>….</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.

7. 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ụ: &amp;amptê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”.

8. 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ế Miêu tả < &lt; Nhỏ hơn > &gt; Lớn hơn & &amp; Và ‘ &apos; Dấu nháy đơn “ &quot; Trích dẫn kép