Dokumen tutoria...login
Dokumen tutorial dalam talian DTD
pengarang:php.cn  masa kemas kini:2022-04-20 15:01:34

Perbandingan elemen dan atribut XML


XML Elemen lwn Atribut


Dalam XML, tiada peraturan tentang bila hendak menggunakan atribut dan bila Gunakan elemen kanak-kanak.


Menggunakan elemen vs atribut

Data boleh disimpan dalam elemen atau atribut anak.

Mari kita lihat contoh ini:

<person sex="female">
<nama pertama>Anna</nama pertama>
<nama keluarga>Smith</nama keluarga>
</orang>

<orang>
<seks>perempuan</seks>
<nama pertama>Anna</nama pertama>
<nama keluarga>Smith</nama keluarga>
</orang>

Dalam contoh pertama "seks" ialah atribut. Dalam contoh terakhir, "seks" ialah unsur kanak-kanak. Tetapi kedua-duanya memberikan maklumat yang sama.

Tiada peraturan khusus tentang masa untuk menggunakan atribut dan masa untuk menggunakan elemen anak. Pengalaman saya ialah dalam HTML, atribut sering digunakan, tetapi dalam XML, menggunakan elemen kanak-kanak akan berasa lebih seperti maklumat data.


Cara saya menyukainya

Saya suka menyimpan data dalam elemen kanak-kanak

Tiga dokumen XML berikut mengandungi maklumat yang sama:

Dalam contoh ini, atribut "date" digunakan:

<note date="12/11/2002">
<ke>Tove</to>
<dari>Jani</dari>
<heading>Peringatan</heading>
<body>Jangan lupakan saya hujung minggu ini!</body>
</note>

Dalam contoh ini, elemen "tarikh" digunakan:

<nota>
<tarikh>12/11/2002</tarikh>
<ke>Tove</to>
<dari>Jani</dari>
<heading>Peringatan</heading>
<body>Jangan lupakan saya hujung minggu ini!</body>
</note>

Contoh ini menggunakan elemen "tarikh" lanjutan: (ini cara kegemaran saya):

<nota>
<tarikh>
' <hari>12</hari>
' <bulan>11</bulan>
' <tahun>2002</tahun>
</tarikh>
<ke>Tove</to>
<dari>Jani</dari>
<heading>Peringatan</heading>
<body>Jangan lupakan saya hujung minggu ini!</body>
</note>


Elakkan menggunakan atribut?

Perlukah anda mengelak daripada menggunakan atribut?

Sesetengah atribut mempunyai isu berikut:

  • Atribut tidak boleh mengandungi berbilang nilai (elemen anak boleh)

  • Atribut tidak mudah untuk diperluaskan (untuk perubahan masa hadapan dalam keperluan)

  • Atribut tidak boleh menggambarkan struktur (sub-elemen boleh)

  • Atribut lebih sukar Memanipulasi kod program

  • nilai atribut tidak mudah untuk diuji, berbanding DTD

jika anda menggunakan atribut sebagai bekas data, dokumen XML akhir akan sukar Dibaca dan diselenggara. Cuba gunakan elemen untuk menerangkan data. kepada huraikan data Kami mengesyorkan menggunakan atribut hanya apabila data yang diberikan adalah maklumat yang tidak berkaitan.

Jangan sampai begini (ini bukan XML yang sepatutnya digunakan):

<note day="12" month="11" year=" 2002"
to ="Tove" from="Jani" heading="Reminder"
body="Jangan lupakan saya hujung minggu ini!">
</note>


Pengecualian kepada peraturan atribut

Selalu ada peraturan lain

Saya mempunyai pengecualian kepada peraturan berkenaan atribut.

Kadangkala elemen digunakan pada ID yang saya nyatakan. Aplikasi ID ini boleh mengakses elemen XML sebagai atribut NAME atau ID dalam banyak situasi yang sama seperti dalam HTML. Contoh berikut menunjukkan pendekatan ini:

<mesej>
<nota id="p501">
, <ke>Tove</to>
, <dari>Jani</dari>
, <heading>Peringatan</heading>
, <body>Jangan lupakan saya hujung minggu ini!</body>
</note>

<nota id="p502">
, <ke>Jani</ke>
, <from>Tove</from>
, <heading>Re: Peringatan</heading>
, <body>Saya tidak akan!</body>
</note>
</messages>

Dalam fail XML contoh di atas, ID hanyalah pembilang atau pengecam unik, untuk mengenal pasti nota berbeza, bukan sebagai sebahagian daripada data.

Apa yang saya ingin katakan di sini ialah metadata (data tentang data) harus disimpan sebagai atribut dan data itu sendiri harus disimpan sebagai elemen.

Laman web PHP Cina