Bagaimana saya bisa mengomentari satu baris dalam XML?


123

Ini bukan verifikasi hanya untuk tidak ketinggalan.

Apakah / ntidak ada baris-komentar di XML? Jadi, yang tidak lebih dekat, seperti "//" yang digunakan kompilator.

Saya melihat Bagaimana cara mengomentari blok tag dalam XML? dan beberapa diskusi lainnya.

Jenis komentar ini akan praktis untuk mengomentari suatu baris tanpa mendekatinya di suatu tempat.


2
XML dirancang dengan asumsi bahwa alat seperti editor akan sering melakukan pengemasan kata, dan karena itu akhiran baris rapuh. Akan menjadi ide yang buruk jika akhiran baris harus dipertahankan untuk berjaga-jaga jika ada komentar.
Michael Kay

2
Tentunya editor hanya membungkus baris untuk ditampilkan . Saya tidak pernah tahu baris baru yang sulit ditambahkan secara sembarangan ke file itu sendiri. Ini gangguan neraka tidak memiliki komentar baris.
John White

Jawaban:


147

Tidak, tidak ada cara untuk mengomentari baris dalam XML dan membuat komentar diakhiri secara otomatis pada pemutusan baris.

XML hanya memiliki satu definisi untuk sebuah komentar :

'<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

XML melarang --dalam komentar untuk menjaga kompatibilitas dengan SGML .


Solusinya adalah dengan menggunakan komentar baris ( //) dan menjalankan skrip untuk menghapus komentar tersebut sebelum digunakan (dapat menjadi bagian dari proses pembuatan langkah tunggal). Itu membuat cara yang jauh lebih nyaman dalam menggunakan komentar. (Saya telah menggunakan teknik ini dengan sumber WiX (alat penginstal untuk Windows). Sejumlah langkah lain diperlukan untuk membangun penginstal, jadi ini hanya satu langkah lagi untuk ditambahkan ke skrip / proses pembuatan.)
Peter Mortensen

20

Seperti yang dikatakan orang lain, tidak ada cara untuk melakukan satu baris komentar secara legal dalam XML yang mengomentari beberapa baris, tetapi , ada cara untuk membuat komentar di segmen XML lebih mudah.

Melihat contoh di bawah, jika Anda menambahkan '>' ke baris pertama, XmlTag tidak akan diberi komentar. Hapus '>' dan itu dikomentari lagi. Ini adalah cara paling sederhana yang pernah saya lihat untuk mengomentari / menghapus komentar XML dengan cepat tanpa merusak sesuatu.

<!-- --
<XmlTag variable="0" />
<!-- -->

Manfaat tambahannya adalah Anda hanya memanipulasi komentar teratas, dan komentar bawah bisa diam di sana selamanya. Ini merusak kompatibilitas dengan SGML dan beberapa pengurai XML akan muntah padanya. Selama ini bukan fixture permanen dalam XML Anda, dan parser Anda menerimanya, itu sebenarnya bukan masalah.

Stack Overflow's dan Notepad ++'s syntax highlighter memperlakukannya seperti komentar multi-baris, perpustakaan Boost C ++ memperlakukannya sebagai komentar multi-baris, dan satu-satunya parser yang saya temukan sejauh ini yang break adalah yang ada di NET, khususnya C #. Jadi, pastikan untuk menguji terlebih dahulu apakah alat Anda, IDE, pustaka, bahasa, dll. Menerimanya sebelum menggunakannya.

Jika Anda peduli dengan kompatibilitas SGML, cukup gunakan ini sebagai gantinya:

<!-- -
<XmlTag variable="0" />
<!- -->

Tambahkan '->' ke komentar teratas dan '-' di komentar bawah. Sisi negatifnya adalah setiap kali mengedit komentar bawah, yang mungkin akan memudahkan Anda mengetik di <!--bagian atas dan -->bawah setiap kali.

Saya juga ingin menyebutkan bahwa pemberi komentar lain merekomendasikan penggunaan editor XML yang memungkinkan Anda untuk mengklik kanan dan mengomentari / menghapus komentar pada blok XML, yang mungkin lebih disukai daripada trik menemukan / mengganti yang mewah (ini juga akan menjadi jawaban yang bagus dengan sendirinya, tetapi saya tidak pernah menggunakan alat seperti itu. Saya hanya ingin memastikan informasi tidak hilang seiring waktu). Saya pribadi tidak pernah berurusan dengan XML cukup untuk membenarkan memiliki editor yang lebih bagus dari Notepad ++, jadi ini sepenuhnya terserah Anda.


3
Sayangnya, ini salah. Spesifikasi mengatakan, Untuk kompatibilitas, string "-" (tanda hubung ganda) TIDAK HARUS muncul dalam komentar.
kojiro

2
Tentu saja tidak legal. Speknya jelas untuk itu. Pengurai XML dapat mengikuti Hukum Postel dan membiarkan Anda lolos, tetapi pemeriksa format yang sesuai akan menandainya.
kojiro

4
Seperti yang dikatakan @kojiro, komentar yang berisi "-" bukanlah XML dengan format yang baik. Frasa tentang "Untuk kompatibilitas" hanyalah editor spesifikasi yang menyatakan alasan mereka memasukkan aturan mengerikan ini: bukan berarti Anda dapat mengabaikan aturan tersebut jika Anda tidak tertarik pada kompatibilitas. Merendahkan jawaban karena itu salah.
Michael Kay

10
Anda bisa menulisnya <!-- ->dan membuatnya menjadi masalah menambahkan tanda hubung daripada memiliki non-XML.
kojiro

3
@RyanWH terus melakukan apa yang berhasil untuk Anda, tetapi Anda tampaknya bergantung pada bug dalam parser XML yang Anda gunakan. Secara pribadi, saya menggunakan IDE (oXygen) yang memungkinkan saya memilih bagian teks XML, klik kanan, dan meminta untuk berkomentar. Yang nampaknya jauh lebih mudah daripada teknikmu.
Michael Kay

12

Ini sama dengan HTML atau JavaScript yang memblokir komentar:

<!-- The to-be-commented XML block goes here. -->

5

Bukan ortodoks, tapi kadang berhasil untuk saya; tetapkan komentar Anda sebagai atribut lain:

<node usefulAttr="foo" comment="Your comment here..."/>

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.