03/08/2018, 10:23

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

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

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

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à tensv, namsinh 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.

<?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ụ:

<?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:

<?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:

<?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:

<?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:

<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:

Style Example Description
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).

BÀI KẾ SAU
BÀI KẾ TIẾP

Nguồn: code24h.com

0