Apakah ada konvensi penamaan standar untuk elemen XML? [Tutup]

97

Apakah ada standar, de facto atau sebaliknya, untuk dokumen XML? Misalnya, manakah cara "terbaik" untuk menulis tag?

<MyTag />
<myTag />
<mytag />
<my-tag />
<my_tag />

Begitu juga jika saya memiliki nilai yang disebutkan untuk atribut yang lebih baik

<myTag attribute="value one"/>
<myTag attribute="ValueOne"/>
<myTag attribute="value-one"/>
tpower
sumber
2
Secara teknis, Anda juga dapat menggunakan <my.tag />. Mungkin bukan ide yang bagus dalam beberapa konteks ...
PhiLho
Ada beberapa "standar" yang ditemukan online ..
user2864740

Jawaban:

47

Saya menduga nilai yang paling umum adalah camelCased - yaitu

<myTag someAttribute="someValue"/>

Secara khusus, spasi menyebabkan beberapa gangguan jika dicampur dengan generator kode (yaitu untuk [de] membuat serial xml ke objek), karena tidak banyak bahasa yang mengizinkan enum dengan spasi (menuntut pemetaan di antara keduanya).

Marc Gravell
sumber
36
Hm ... jawaban terbaik ... Saya rasa itu adalah jawaban yang layak, tapi itu hanya pendapat. Memiliki semacam referensi akan menyenangkan.
Hamish Grubijan
4
Saya tidak setuju, saya tidak terbiasa melihat XML dengan casing unta.
Rafa
Saya tahu ini adalah jawaban lama, tetapi sebagian besar XML Microsoft yang lebih baru yang saya lihat cenderung tidak setuju dengan pilihan format ini. Tapi IIS suka dot.naming so ..
user2246674
4
Seperti semua orang menyebutkan itu pribadi, tetapi saya mengikuti pendekatan Anda karena saya selalu mendefinisikan XML saya menggunakan XMLSchema, dan XMLSchema mengikuti pendekatan ini. w3.org/2001/XMLSchema.xsd . Bagi saya itu tidak ada hubungannya dengan bahasa pemrograman. Kami menggunakan XML karena ini adalah standar antarmuka yang dapat dioperasikan. Bahasa pemrograman hanyalah detail implementasi dan setiap bahasa memiliki konvensi sendiri.
dan carter
2 sen saya - Saya telah melihat CamelCase, dan semua huruf kecil; jarang semua atas (HTML lama), dan saya telah melihat huruf kecil. Saya tidak ingat pernah melihat camelBack. Saya lebih suka CamelCase atau huruf kecil. Atribut, bagaimanapun, saya cenderung melihat semua huruf kecil.
Kit10
30

Aturan Penamaan XML

Elemen XML harus mengikuti aturan penamaan ini:

    - Element names are case-sensitive 
    - Element names must start with a letter or underscore
    - Element names cannot start with the letters xml(or XML, or Xml, etc) 
    - Element names can contain letters, digits, hyphens, underscores, and periods 
    - Element names cannot contain spaces

Nama apa pun dapat digunakan, tidak ada kata yang dicadangkan (kecuali xml).

Praktik Penamaan Terbaik

    - Create descriptive names, like this: <person>, <firstname>, <lastname>.
    - Create short and simple names, like this: <book_title> not like this: <the_title_of_the_book>.
    - Avoid "-". If you name something "first-name", some software may think you want to subtract "name" from "first".
    - Avoid ".". If you name something "first.name", some software may think that "name" is a property of the object "first".
    - Avoid ":". Colons are reserved for namespaces (more later).
    - Non-English letters like éòá are perfectly legal in XML, but watch out for problems if your software doesn't support them.

Gaya Penamaan

Tidak ada gaya penamaan yang ditentukan untuk elemen XML. Tapi berikut beberapa yang biasa digunakan:

    - Lower case    <firstname> All letters lower case
    - Upper case    <FIRSTNAME> All letters upper case
    - Underscore    <first_name>    Underscore separates words
    - Pascal case   <FirstName> Uppercase first letter in each word
    - Camel case    <firstName> Uppercase first letter in each word except the first

referensi http://www.w3schools.com/xml/xml_elements.asp

Farhad Maleki
sumber
13

Bagi saya, ini seperti membahas gaya kode untuk bahasa pemrograman: beberapa akan memperdebatkan gaya, yang lain akan mempertahankan alternatif. Satu-satunya konsensus yang saya lihat adalah: "Pilih satu gaya dan konsisten"!

Saya hanya mencatat bahwa banyak dialek XML hanya menggunakan nama huruf kecil (SVG, Ant, XHTML ...).

Saya tidak mendapatkan aturan "tidak ada spasi di nilai atribut". Entah bagaimana, ini mengirimkan ke perdebatan "apa yang harus dimasukkan ke dalam atribut dan apa yang harus dimasukkan sebagai teks?".
Mungkin ini bukan contoh terbaik, tetapi ada beberapa format XML terkenal yang menggunakan spasi di atribut:

  • XHTML, khususnya atribut kelas (Anda dapat menempatkan dua atau lebih kelas) dan tentu saja atribut alt dan judul.
  • SVG, dengan misalnya atribut d dari tag jalur.
  • Keduanya dengan atribut gaya ...

Saya tidak sepenuhnya memahami argumen yang menentang praktik tersebut (tampaknya hanya berlaku untuk beberapa penggunaan) tetapi setidaknya legal, dan cukup banyak digunakan. Dengan kekurangan, rupanya.

Oh, dan Anda tidak membutuhkan spasi sebelum garis miring penutup otomatis. :-)

PhiLho
sumber
Argumen melawan spasi adalah, dan ini hanya karena itu ditanyakan secara khusus dalam pertanyaan, jika nilainya disebutkan maka untuk mendukung parsing, tidak banyak bahasa yang mendukung enumerasi dengan spasi, namun banyak dari kita yang menggunakan XML dalam C / C ++, C # , atau Java (bahasa yang saya gunakan, tetapi tidak terbatas pada) akan sering memetakan nilai atribut ke enumerasi. Kami kemudian dapat mengurai literal ke peta / kamus (atau lebih mudah dalam kasus Java dan C #). Pada akhirnya saya setuju bahwa ini tampaknya menjadi masalah semangat daripada standar. Saya hanya mengikuti filosofi "ketika di Roma".
Kit10
12

Saya menyukai TitleCase untuk nama elemen, dan camelCase untuk atribut. Tidak ada spasi untuk keduanya.

<AnElement anAttribute="Some Value"/>

Selain itu, saya melakukan pencarian cepat untuk Praktik Terbaik dalam XML, dan menemukan tautan yang agak menarik ini: skema XML: Praktik Terbaik .

Raithlin
sumber
8

Saya akan cenderung mendukung huruf kecil atau CamelCase tag dan karena atribut harus biasanya mencerminkan nilai-nilai data - tidak puas - saya akan tetap ke nilai yang dapat digunakan sebagai nama variabel di platform apa saja / bahasa mungkin akan tertarik, yaitu menghindari ruang tapi yang lain dua bentuk bisa jadi ok

annakata
sumber
1 untuk memikirkan nama variabel / fungsi
Ates Goral
@ downvoter: tolong bantu saya menjelaskan diri sendiri.
annakata
8

Ini subjektif, tetapi jika ada dua kata dalam tag elemen, readibility dapat ditingkatkan dengan menambahkan garis bawah antar kata (misalnya <my_tag>) daripada menggunakan tanpa pemisah. Referensi: http://www.w3schools.com/xml/xml_elements.asp . Jadi menurut w3schools jawabannya adalah:

<my_tag attribute="some value">

Nilai tidak perlu menggunakan garis bawah atau pemisah, karena Anda diperbolehkan spasi dalam nilai atribut tetapi tidak dalam nama tag elemen.

alistair
sumber
2
+1 karena Anda mengutip referensi yang memiliki bagian "Praktik Penamaan Terbaik" (bukan hanya opini)
Fuhrmanator
2
@Fuhrmanator "Referensi" itu sendiri adalah opini, meskipun memberikan beberapa pembenaran. Ini bukan standar dengan cara apapun - dan (meskipun jauh lebih buruk dari sebelumnya) saya tidak merekomendasikan atau menggunakan w3schools sebagai "referensi". Ada banyak sumber yang lebih orisinal dan komprehensif.
pengguna2864740
@ user2864740 seperti? Anda menyelesaikan komentar Anda sebelum memberikan sumber yang lebih orisinal dan komprehensif. Poin dari +1 saya adalah OP meminta standar tetapi sebagian besar jawaban memberikan pendapat.
Fuhrmanator
Jawaban ini hanya memberikan opini , link ke w3schools tidak relevan dan tidak menghapus opini tersebut. Mengenai standar, lihat aturan implementasi (seperti dalam RSS ) atau aturan organisasi (seperti dalam OAGi ) - pada tingkat tertentu "standar" hanya diterapkan pada aplikasi / tingkat bisnis tertentu. Menghubungkan W3Schools hanya menyediakan itu sendiri pendapat / praktek terbaik dalam sangat samar-samar rasa (memberikan beberapa tips dan mengatakan "di sini adalah beberapa cara yang itu dilakukan").
pengguna2864740
Artinya, hanya menyertakan tautan tidak membuat jawaban (atau sumber daya tertaut) berwibawa.
pengguna2864740
7

Banyak dialek XML yang berpusat pada dokumen menggunakan huruf kecil Latin dasar dan tanda hubung. Saya cenderung setuju dengan itu.

Generator kode yang memetakan XML secara langsung ke pengenal bahasa pemrograman sangatlah rapuh, dan (dengan pengecualian serialisasi objek yang naif, seperti XAML) harus dihindari dalam format dokumen portabel; untuk penggunaan kembali terbaik dan umur panjang informasi, XML harus mencoba mencocokkan domainnya, bukan implementasinya.

Pete Kirkham
sumber
3

rss mungkin salah satu skema xml yang paling banyak dikonsumsi di dunia dan berbasis unta.

Spec ada di sini: http://cyber.law.harvard.edu/rss/rss.html

Memang tidak memiliki atribut node dalam skema, tetapi semua nama elemen node adalah camelCased. Sebagai contoh:

lastBuildDate managingEditor pubDate

evermeire
sumber
2

Saya biasanya menyelaraskan konvensi penamaan XML dengan konvensi penamaan yang sama di bagian lain dari kode. Alasannya adalah ketika saya memuat XML ke dalam Objek, atribut dan nama elemennya dapat disebut sebagai konvensi penamaan yang sama yang saat ini digunakan dalam proyek.

Misalnya, jika javascript Anda menggunakan camelCase maka XML Anda juga menggunakan camelCase.

micksatana.dll
sumber
1
Meskipun berguna untuk pekerjaan intraproyek, ini dengan cepat rusak saat XML digunakan sebagai format pertukaran bahasa-agnostik ..
user2864740
Jadi komponen dalam proyek Anda konsisten, tetapi bagaimana Anda merancang standar awal proyek tersebut?
Gqqnbig
2

Microsoft menganut dua konvensi:

  1. Untuk konfigurasi , Microsoft menggunakan camelCase . Lihat file konfigurasi Visual Studio. Untuk VS2013, disimpan di:

    C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe.config

Contoh:

<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
  1. Microsoft juga menggunakan UpperCase untuk XAML mereka. Saya rasa itu untuk membedakan dengan HTML (yang menggunakan huruf kecil).

Contoh:

<MenuItem Header="Open..." Command="ApplicationCommands.Open">
    <MenuItem.Icon>
        <Image Source="/Images/folder-horizontal-open.png" />
    </MenuItem.Icon>
</MenuItem>
Jeson Martajaya
sumber
1

Tidak ada rekomendasi eksplisit. Berdasarkan rekomendasi lain dari W3C, yang untuk XHTML , saya memilih huruf kecil:

4.2. Nama elemen dan atribut harus menggunakan huruf kecil

Dokumen XHTML harus menggunakan huruf kecil untuk semua elemen HTML dan nama atribut. Perbedaan ini diperlukan karena XML peka huruf besar / kecil, misalnya <li> dan <LI> adalah tag yang berbeda.

Diego Menta
sumber
0

Aturan Penamaan XML

Elemen XML harus mengikuti aturan penamaan ini:

  • Nama dapat berisi huruf, angka, dan karakter lain
  • Nama tidak boleh dimulai dengan angka atau karakter tanda baca
  • Nama tidak boleh dimulai dengan huruf xml (atau XML, atau Xml, dll)
  • Nama tidak boleh berisi spasi Nama apa pun dapat digunakan, tidak ada kata yang dicadangkan.

Sumber: Sekolah W3

petermeissner
sumber
Penjelasan yang tidak jelas tentang jenis nama yang memungkinkan memberikan sedikit panduan tentang nama yang mungkin harus digunakan.
Samuel Edwin Ward
Meskipun mereka mendefinisikan dasar dari apa yang mungkin - benar?
petermeissner
10
Tentu, tapi ini seperti jika seseorang bertanya "apa yang harus saya beri nama anak saya sehingga mereka tidak disinggung di sekolah" dan Anda menjawab "baik, ini daftar suara yang mampu dihasilkan manusia."
Samuel Edwin Ward
Ya, tapi sebenarnya bukan pertanyaannya, kan? Karena pertanyaannya adalah: "Apakah ada konvensi penamaan standar untuk elemen XML?" dan "Apakah ada standar, de facto atau sebaliknya, untuk dokumen XML?" jadi ini jawaban kan? Salah satu yang menjawab pertanyaan dan tidak hanya satu aliran umum interpretasi pertanyaan.
petermeissner
3
Itu hanya jawaban jika Anda mengabaikan sisa pertanyaan setelah dua kalimat tersebut. Anda belum mencoba menjawab 'mana yang "terbaik"' atau 'mana yang lebih baik'.
Samuel Edwin Ward
0

Saya telah banyak mencari pendekatan yang baik, juga membaca utas ini dan beberapa lainnya dan saya akan memilih untuk menggunakan tanda hubung .

Mereka digunakan secara luas di ARIA ( https://developer.mozilla.org/de/docs/Web/Barrierefreiheit/ARIA ) yang dapat dilihat di banyak kode sumber dan oleh karena itu umum. Seperti yang telah ditunjukkan di sini, mereka pasti diperbolehkan, yang juga dijelaskan di sini: Menggunakan - dalam nama elemen XML

Juga sebagai keuntungan sampingan: Saat menulis HTML dalam kombinasi dengan CSS, Anda sering memiliki kelas yang namanya menggunakan tanda hubung sebagai pemisah secara default juga. Sekarang, jika Anda memiliki tag khusus yang menggunakan kelas CSS atau atribut khusus untuk tag yang menggunakan kelas CSS, maka sesuatu seperti:

<custom-tag class="some-css-class">

lebih konsisten dan membaca - menurut pendapat saya - jauh lebih bagus daripada:

<customTag class="some-css-class">

Es api
sumber