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

Bài 03: Tìm hiểu Element trong XML

XML Element chúng ta đã sử dụng rất nhiều ở các ví dụ trước. Tuy nhiên ta chưa bàn tới vấn đề cú pháp và quy tắc chúng khi đặt tên cho nó,  vì vậy trong bài này mình sẽ trình bày tất cả các vấn đề liên quan đến XML Elements.

Và để tiện cho việc viết tuts thì mình sẽ gọi là thẻ thay vì element nhé.

Mục lục

  • 1. Element trong XML là gì?
  • 2. Thẻ XML rỗng và rút gọn thẻ đóng
  • 3. Một số quy tắc liên quan đến XML Element
  • 3. Lời kết

1. Element trong XML là gì?

Như ta biết một tài liệu XML sẽ chưa nhiều thẻ XML, các thẻ XML bao gồm tất cả mọi thứ từ thẻ khai báo trên header cho đến thẻ Root, các thẻ con, ... cho đến thẻ cuối cùng trong tài liệu.

Một thẻ XML dùng để chứa dư liệu dạng đơn giản (number, string) cho đến phức tạp (thẻ XML chứa thẻ XML).

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

Ví dụ ta cần viết một file XML để lưu trữ danh sách sinh viên gồm các thông tin:

  • Tên sinh viên (tensv)
  • Năm sinh (namsinh)
  • Giới tính (gioitinh)

Lúc này ta sẽ có ba thẻ chứa dữ liệu đơn giản đó là tensvnamsinh và gioitinh. Có một thẻ chứa dữ liệu phức tạp đó là thẻ sinhvien. Nhưng chưa dừng lại ở đó, như ở bài tìm hiểu xml là gì chúng ta cần xác định thêm một thẻ Root nữa. Phân tích kỹ thì ta thấy mỗi sinh viên sẽ được mô tả bởi thẻ sinhvien và tài liệu sẽ chứa nhiều sinh viên, vì vậy mình sẽ đặt tên cho thẻ root là ds-sinhvien

Như vậy dưới đây là cấu cây XML của chúng ta.

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien>
        <tensv>[Data]</tensv>
        <namsinh>[Data]</namsinh>
        <gioitinh>[Data]</gioitinh>
    </sinhvien>
</ds-sinhvien>

2. Thẻ XML rỗng và rút gọn thẻ đóng

Một thẻ XML có thể chứa dữ liệu hoặc không chứa dữ liệu cũng được. Nếu không có dữ liệu thì ta để trống.

Ví dụ:

1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien></sinhvien>
</ds-sinhvien>

Trường hợp này bạn có thể rút gọn thẻ đóng bằng cách sau:

1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien/>
</ds-sinhvien>

Nghĩa là ta sẽ đóng ngay thẻ mở luôn.

Một ví dụ điển hình của trường hợp thẻ XML rỗng như sau: Giả sử cần bổ sung thêm một thuộc tính mô tả (mota) dùng để mô tả sinh viên ở ví dụ trên. Lúc này cấu trúc XML sẽ như sau:

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien>
        <tensv>[Data]</tensv>
        <namsinh>[Data]</namsinh>
        <gioitinh>[Data]</gioitinh>
        <mota>[Data]</mota>
    </sinhvien>
</ds-sinhvien>

Bây giờ mình sẽ lưu hai sinh viên thì cấu trúc XML sẽ như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<ds-sinhvien>
    <sinhvien>
        <tensv>Nguyễn Văn Cường</tensv>
        <namsinh>1990</namsinh>
        <gioitinh>Nam</gioitinh>
        <mota>Sinh viên đẹp zai thích viết tutorials.</mota>
    </sinhvien>
    <sinhvien>
        <tensv>Vũ Thị Thu Tình</tensv>
        <namsinh>1992</namsinh>
        <gioitinh>Nữ</gioitinh>
        <mota></mota>
    </sinhvien>
</ds-sinhvien>

Như vậy ở sinh viên thứ hai phần mô tả bị trống do không có mô tả cho sinh viên đó. Lúc này ta có thể ghi gọn cho thẻ mota như sau:

1
2
3
4
5
6
<sinhvien>
    <tensv>Vũ Thị Thu Tình</tensv>
    <namsinh>1992</namsinh>
    <gioitinh>Nữ</gioitinh>
    <mota/>
</sinhvien>

3. Một số quy tắc liên quan đến XML Element

Có một số quy tắc và điển hình nhất là các quy tắc sau.

Đặt tên thẻ:

  • Tên thẻ phải bắt đầu là một chữ cái hoặc ký tự gạch dưới.
  • Tên thẻ không được bắt đầu bằng XML (hoặc Xml, xMl, xmL) vì nó giống với thẻ khai báo header.
  • Tên thẻ không được chứa khoảng trắng.
  • Tên thẻ có thể chứa chữ cái, chữ số, dấu gạch dưới, dấu gạch ngang, dấu chấm và dấu hai chấm.

Cấu trúc thẻ:

  • Mỗi thẻ mở đều phải có thẻ đóng và chúng phải tuân theo đúng thứ tự.
  • Bạn có thể dùng thẻ đóng rút gọn nếu như thẻ đó rỗng

Naming styles:

Không có một chuẩn đặt tên thẻ nào trong XML cả nhưng người ta đề xuất ra một số cách đặt tên như sau:

StyleExampleDescription
Lower case<firstname>Tất cả đều chữ in thường
Upper case<FIRSTNAME>Tất cả đều chữ in hoa
Underscore<first_name>Các từ cách nhau bởi dấu gạch dưới
Pascal case<FirstName>Viết hoa ký tự đầu tiên trong các từ
Camel case<firstName>Viết hoa ký tự đầu tiên trong từ thứ hai trở đi.

Lời khuyên là bạn nên đặt tên thẻ là một danh từ, nên đặt tên bằng tiếng Anh vì nó đơn giản và là ngôn ngữ chuẩn trên thế giới.

3. Lời kết

Trên là một số nguyên tắc khi các bạn làm việc với thẻ XML (XML Element), những nguyên tắc này khá quan trọng nên bạn phải đọc và nhớ nhé, nếu không sau này bạn đặt tên sai thì ngôn ngữ lập trình không thể biên dịch được.

Bài này mình dừng ở đây, bài tiếp theo chúng ta sẽ tìm hiểu thuộc tính trong XML (XML Properties).

=============================
* 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