Chủ Nhật, 30 tháng 7, 2023

Bài 01: XML là gì? Cú pháp căn bản của XML

Ngoài cách lưu trữ dữ liệu trong các hệ quản trị CSDL ra thì bạn có thể lưu trữ dữ liệu trong file TXT, file JSON hay file XML đều được. Tuy nhiên với những hệ thống lớn thì bắt buộc ta phải lưu trữ trong hệ quản trị CSDL bởi vì nó cũng cấp những tính năng giúp quản lý dữ liệu tốt hơn. Còn đối với XML hay JSON thì ứng dụng lớn nhất của nó trong lập trình web đó là xây dựng các Service và API, nghĩa là các API đó sẽ trả kết quả về dạng JSON hoặc XML các hệ thống khác có thể hiểu được. Ví dụ để tạo một ứng dụng đặt phòng trên mobile thì bạn phải xây dựng một Service và nhiệm vụ của service đó là trả kết quả danh sách phòng về cho App Mobile, mà với ngôn ngữ lập trình Mobile khác hoàn toàn với PHP hay C# nên ta phải trao đổi dữ liệu thông qua XML hoặc JSON.

Hiện nay người ta hay sử dụng JSON hơn là XML nhưng mình đã có một loạt bài viết về JSON rồi nên trong loạt bài viết này ta sẽ tìm hiểu về XML. Bài đầu tiên này ta sẽ tìm hiểu khái niệm về XML là gì và cách tạo một file XML đơn giản.

Mục lục

  • 1. XML là gì?
  • 2. Cú pháp của tài liệu XML
    • Cú pháp của thẻ XML:
    • Khai báo Header (Chỉ thị xử lý):
    • Root node:
  • 3. Lời kết

1. XML là gì?

XML là viết tắt của từ eXtensible Markup Language, hay còn gọi là ngôn ngữ đánh dấu mở rộng do W3C đề nghị với mục đích tạo ra các ngôn ngữ đánh dấu khác. Đây là một tập hợp con đơn giản có thể mô tả nhiều loại dữ liệu khác nhau nên rất hữu ích trong việc chia sẻ dữ liệu giữa các hệ thống. Ví dụ khi bạn xây dựng một ứng dụng bằng C# và một ứng dụng bằng PHP 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.

Tất cả những đặc tả dữ liệu XML đều phải tuân theo quy luật và cú pháp của nó nên hầu như các file XML đều rất nghiêm khắc trong việc biên dịch. Tuy nhiên công nghệ này cần phải được xem xét bởi vì trong quá trình thao tác và truyền dữ liệu nó có tỉ lệ sai sót lên tới 5% - 7%. Con số này không cao nhưng cũng rất đáng để cân nhức khi sử dụng.

Bài viết này được đăng tại tranvanbinh.vn

Điển hình nhất là ngôn ngữ đánh dấu siêu văn bản HTML sử dụng cú pháp của XML để tạo nên và nó có các bộ phần tử và thuộc tính không mềm dẻo nên chỉ có tác dụng trong việc trình bày dữ liệu trên trình duyệt Browser.

Để rõ hơn về khái niệm XML là gì thì bạn nên đọc ở bài viết trên Wiki nhé.

2. Cú pháp của tài liệu XML

Nếu bạn đã học qua HTML rồi thì rất dễ dàng hiểu cú pháp của XML bởi vì HTML được xây dựng dựa trên cú pháp của XML.

File XML sẽ có phần mở rộng là .xml. Tuy nhiên bạn hoàn toàn có thể sử dụng ngôn ngữ lập trình để thay đổi phần mở rộng cho nó (sẽ tìm hiểu sau).

Cú pháp của thẻ XML:

XML được xây dựng dựa vào cấu trúc NODE lồng nhau, mỗi node sẽ có một thẻ mở và một thẻ đóng như sau:

1
<nodename>nội dung</nodename>

Trong đó:

  • <nodename> là thẻ mở, tên của thẻ này do bạn tự định nghĩa.
  • </nodename> là thẻ đóng, tên của thẻ này phải trùng với tên của thẻ mở.
  • content là nội dung của thẻ này

Ví dụ mình lưu trữ domain của mình thì cấu trúc như sau:

1
<domain>tranvanbinh.vn</domain>

Bạn hoàn toàn có thể bổ sung các thuộc tính vào các thẻ XML bằng cách sử dụng cú pháp sau:

1
<nodename ten_thuoc_tinh="giá trị">content</nodename>

Ví dụ bạn lưu trữ thông tin domain và chủ sở hữu của nó thì có thể lưu như sau:

1
<domain owner="Trần Văn Bình" email="tranbinh48ca@gmail.com">tranvanbinh.vn/domain>

Khai báo Header (Chỉ thị xử lý):

Trên đầu mỗi file XML bạn phải khai báo một thẻ để thông báo version XML đang sử dụng (thường là version 1.0), và còn có thể chứa các thông tin về mã hóa ký tự hoặc các phụ thuộc bên ngoài khác (sẽ tìm hiểu sau). Giá trị của encoding (kiểu mã hóa ký tự) thuộc một trong các định dạng sau: UTF-8, UTF-16, ISO-10646-UCS-2, ISO-10646-UCS-4, ISO-8859-1 to ISO-8859-9, ISO-2022-JP, Shift_JIS, EUC-JP.

Cú pháp của thẻ chỉ thị xử lý như sau:

1
<?xml version="1.0" encoding="UTF-8"?>

Như vậy với các ví dụ trên thì cấu trúc đúng sẽ phải là:

1
2
<?xml version="1.0" encoding="UTF-8"?>
<domain>tranvanbinh.vn</domain>

Và:

1
2
<?xml version="1.0" encoding="UTF-8"?>
<domain owner="Trần Văn Bình" email="tranbinh48ca@gmail.com">tranvanbinh.vn</domain>

Root node:

Mỗi tài liệu XML nên có một thẻ ngoài cùng và ta gọi thẻ này là root node. Thẻ này sẽ khai báo tên chính của tài liệu XML.

Ví dụ mình cần lưu trữ danh sách domain thì có thể viết như sau:

1
2
3
4
5
<?xml version="1.0" encoding="UTF-8"?>
<domains>
    <domain owner="Trần Văn Bình" email="tranbinh48ca@gmail.com">tranvanbinh.vn</domain>
    <domain owner="Trần Văn Bình" email="tranbinh48ca@gmail.com">qa.tranvanbinh.vn</domain>
</domains>

Không có một quy tắc đặt tên nào cả mà quy tắt do lập trình viên đặt ra, tuy nhiên lời khuyên là bạn nên đặt tên sao cho ngữ nghĩa phù hợp với nội dung của file.

Phần này chúng ta sẽ tìm hiểu rõ hơn ở bài tiếp theo.

3. Lời kết

Về khái niệm XML là gì thì bạn nên tham khảo thêm ở trang trên trang W3C, riêng với bài thứ nhất này mục đích là giới thiệu cú pháp căn bản của một tài liệu XML nên mình không viết nhiều. Bài tiếp theo chúng ta sẽ tìm hiểu cấu trúc cây của tài liệu XML.

=============================
* Nếu bạn muốn tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ kinh nghiệm, thủ tục, quy trình, bí kíp thực chiến mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
+ Oracle cơ bản: https://bit.ly/admin1_1200
+ Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master