Lompat ke konten
Aback Tools Logo

Cara Berkomentar di XML: Sintaks, Pembatasan, dan Praktik Terbaik

Cara berkomentar di XML: sintaks <!-- -->, posisi yang diizinkan dan dilarang, pembatasan tanda hubung ganda, jebakan komentar bersarang, aturan per tipe file, dan penghapusan komentar untuk produksi.

DH
Tutorials & How-Tos11 menit baca2,600 kata

XML memiliki tepat satu sintaks komentar: pasangan pembatas <!-- -->. Berbeda dengan YAML atau Python, tidak ada bentuk singkat, tidak ada pintasan level baris, dan tidak ada bentuk alternatif. Yang ditawarkan XML adalah fleksibilitas — pembatas yang sama bekerja untuk catatan satu baris, blok dokumentasi multi-paragraf, dan penonaktifan sementara seluruh bagian markup. Panduan ini mencakup sintaks lengkap, setiap lokasi di mana komentar XML dilarang, pembatasan tanda hubung ganda yang menjebak sebagian besar pengembang, dan alat tercepat untuk memvalidasi serta menghapus komentar dari file XML dunia nyata.

1Sintaks komentar<!-- --> adalah satu-satunya bentuk
0Baris per komentarDapat mencakup baris tak terbatas
100%Dibuang oleh parserKomentar tidak pernah sampai ke aplikasi Anda

Sintaks komentar XML

Komentar XML dibuka dengan `<!--` - tanda lebih kecil, tanda seru, dan dua tanda hubung - dan ditutup dengan `-->` - dua tanda hubung dan tanda lebih besar. Setiap karakter di antara kedua pembatas itu adalah isi komentar dan sepenuhnya diabaikan oleh parser XML mana pun yang patuh. Isinya dapat mencakup markup XML apa pun, nilai atribut, node teks, atau instruksi pemrosesan: tidak ada yang di-parse atau dieksekusi.

Tiga bentuk komentar yang valid

Ketiga pola berikut adalah XML yang benar. Mereka hanya berbeda dalam cara Anda menata isinya, bukan dalam perbedaan sintaks yang berarti:

  • Komentar inline: `<!-- This is a comment -->` - ditempatkan di baris yang sama dengan sebuah elemen
  • Baris komentar mandiri: `<!-- Full line is a comment -->` - di barisnya sendiri di antara elemen
  • Blok komentar multi-baris: `<!--` di satu baris, teks komentar di beberapa baris, `-->` di baris terakhir

Note

Sintaks komentar XML identik di XML 1.0 dan XML 1.1, di XHTML, di SVG, dan di semua format konfigurasi berbasis XML seperti file POM Maven, Spring XML, dan file layout Android. Pembatas `<!-- -->` yang sama bekerja di mana saja.

Bagaimana komentar terlihat di DOM

Saat parser XML membangun pohon dokumen, komentar direpresentasikan sebagai node Comment - tipe node yang berbeda, terpisah dari node Element, Text, dan Attribute. Artinya, kode library bisa mengakses node komentar jika memilih demikian, meski tidak membawa makna data. Metode traversal DOM standar yang mengiterasi elemen anak melewati node komentar secara otomatis; hanya kueri eksplisit node komentar yang mengembalikannya.

Di mana komentar XML diizinkan

Komentar XML valid di lebih banyak posisi daripada yang diharapkan sebagian besar pengembang, tetapi ada segelintir lokasi persis di mana spesifikasi melarangnya. Memahami batas-batas ini mencegah kegagalan parse yang membingungkan dan sama sekali tidak menyebut komentar dalam pesan errornya.

Posisi yang valid

  • Sebelum elemen root: komentar dapat muncul setelah deklarasi XML dan sebelum tag pembuka pertama
  • Di antara elemen anak: posisi spasi kosong apa pun di antara elemen saudara menerima komentar
  • Setelah elemen root: epilog XML (setelah tag root penutup) menerima komentar dan instruksi pemrosesan
  • Di dalam konten elemen: komentar yang ditempatkan antara tag induk dan anak-anaknya valid
  • Di antara atribut pada baris terpisah: komentar tidak bisa muncul di dalam sebuah tag, tetapi bisa di antara elemen yang atributnya membentang di beberapa baris

Posisi yang dilarang

Komentar dilarang di dalam tag elemen - antara nama tag dan penutup `>`, di dalam nilai atribut, dan di dalam instruksi pemrosesan. Mereka juga dilarang sebelum deklarasi XML itu sendiri. Menempatkan `<!-- comment -->` di dalam tag pembuka seperti `<config <!-- note --> key="value">` adalah kesalahan well-formedness yang ditolak setiap parser XML. Deklarasi XML `<?xml version="1.0"?>` juga harus muncul sebelum komentar apa pun jika memang muncul.

LokasiContohValid?
Sebelum elemen root<!-- doc header -->\n<root>✓ Ya
Di antara elemen anak<a/> <!-- note --> <b/>✓ Ya
Setelah elemen root</root>\n<!-- footer -->✓ Ya
Di dalam konten elemen<p>text <!-- note --> more</p>✓ Ya
Di dalam tag pembuka<elem <!-- note --> attr="v">✗ Tidak - error parse
Di dalam nilai atribut<elem attr="v <!-- note -->">✗ Tidak - teks literal
Sebelum deklarasi XML<!-- note -->\n<?xml version="1.0"?>✗ Tidak - error parse
Di dalam bagian CDATA<![CDATA[ <!-- not a comment --> ]]>✗ Tidak - teks literal

Warning

Kesalahan umum adalah menempatkan komentar di dalam tag SVG `<path>` atau `<rect>` untuk menganotasi nilai atribut. Ini XML yang tidak valid. Pindahkan komentar ke baris mandiri sebelum atau sesudah elemen.

Mengomentari blok XML langkah demi langkah

Mengomentari blok XML adalah penggunaan paling umum dari komentar XML - menonaktifkan konfigurasi sementara, menghapus elemen selama debugging, atau mempertahankan nilai alternatif tanpa menghapusnya. Prosesnya lugas, tetapi pembatasan tanda hubung ganda menambah satu pemeriksaan ekstra yang harus Anda lakukan sebelum menyimpan.

1

Letakkan <!-- sebelum blok

Tambahkan `<!--` di barisnya sendiri tepat sebelum elemen pertama yang ingin Anda nonaktifkan. Menempatkannya di baris terpisah menjaga diff tetap bersih dan memudahkan identifikasi baris mana yang dikomentari dalam code review. Parser memperlakukan semua setelah `<!--` sebagai isi komentar hingga menemukan `-->` yang cocok.

2

Pindai blok untuk tanda hubung ganda

Sebelum menambahkan penutup `-->`, pindai setiap baris blok untuk urutan `--` apa pun. Spesifikasi XML menyatakan bahwa `--` tidak diizinkan di dalam isi komentar - ia mengakhiri komentar lebih awal dan menyebabkan kesalahan well-formedness. Sumber umum tanda hubung ganda dalam konten XML termasuk cuplikan SQL di file config database, nomor versi seperti `1.0--beta`, dan dokumentasi yang disalin menggunakan em-dash yang dikodekan sebagai dua tanda hubung.

3

Letakkan --> setelah blok

Tambahkan `-->` di barisnya sendiri tepat setelah elemen terakhir yang ingin Anda nonaktifkan. Parser melanjutkan pemrosesan normal dari karakter setelah `-->`. Jika Anda mengomentari elemen terakhir dalam dokumen, pastikan `-->` muncul sebelum tag root penutup - bukan setelahnya, yang akan menempatkan komentar pada posisi epilog.

4

Validasi hasilnya

Jalankan dokumen yang dimodifikasi melalui pemeriksa well-formedness XML untuk memastikan komentar ditempatkan dengan benar dan dokumen di sekelilingnya masih ter-parse. Pemeriksa melaporkan baris dan kolom persis dari kesalahan well-formedness apa pun yang diperkenalkan oleh komentar, termasuk pelanggaran tanda hubung ganda jika ada.

Pemeriksa Well-Formedness XML

Validasi dokumen XML apa pun untuk error level parser - tag bermasalah, entitas tidak valid, komentar salah tempat, dan pelanggaran tanda hubung ganda - dengan diagnostik level baris di peramban Anda.

Open tool

Pembatasan dan jebakan komentar XML

Spesifikasi XML memberlakukan tiga pembatasan pada isi komentar yang tidak memiliki padanan di sebagian besar sistem komentar lainnya. Masing-masing menyebabkan error spesifik yang dapat diidentifikasi - dan mengetahuinya mencegah berjam-jam debugging yang membingungkan.

Larangan tanda hubung ganda

Spesifikasi XML 1.0 (bagian 2.5) menyatakan: «string `--` (tanda hubung ganda) tidak boleh muncul di dalam komentar». Artinya, dua tanda hubung berurutan apa pun di dalam isi komentar Anda - apa pun konteksnya - akan menyebabkan error parse atau mengakhiri komentar di lokasi yang salah, membuat markup Anda yang seharusnya nonaktif tetap hidup di dokumen. Aturan ini mengejutkan banyak pengembang karena `--` adalah urutan umum di SQL, skrip shell, dan string opsi CLI yang sering muncul di file konfigurasi.

Warning

Jika Anda mengomentari blok `pom.xml` Maven yang berisi komentar `<!--` di dalamnya, `-->` internal akan menutup komentar luar Anda lebih awal, menyisakan sisa teks komentar dalam sebagai konten yang tidak ter-parse. XML tidak mendukung komentar bersarang. Anda harus menghapus atau mengganti urutan `--` apa pun di dalam blok sebelum mengomentarinya.

Komentar bersarang dilarang

Berbeda dengan sebagian besar bahasa pemrograman, komentar XML tidak bisa disarangkan. Mencoba membungkus blok yang sudah dikomentari dalam pasangan `<!-- -->` lain menyebabkan `-->` pertama di dalam blok menutup komentar luar, menyisakan sisanya sebagai konten aktif. Ini kesalahan terkait komentar yang paling umum saat bekerja dengan file konfigurasi besar di mana blok mungkin sudah berisi komentar dokumentasi. Solusinya adalah menghapus komentar internal sebelum menerapkan blok komentar luar.

Komentar tidak boleh diakhiri tanda hubung tiga

Pembatasan terkait: urutan penutup komentar `-->` tidak boleh didahului tanda hubung, membuat `--->` tidak valid. Artinya, komentar seperti `<!-- note --->` adalah kesalahan well-formedness. Beberapa parser yang toleran menerimanya secara diam-diam; parser ketat yang sesuai spesifikasi melempar error «malformed comment». Selalu tutup komentar tepat dengan `-->` tanpa tanda hubung ekstra.

Demi kompatibilitas, string `--` (tanda hubung ganda) tidak boleh muncul di dalam komentar. Komentar bukan bagian dari data karakter dokumen.

- Spesifikasi XML 1.0, bagian 2.5

Komentar XML per tipe file

Komentar XML muncul di puluhan format file di berbagai ekosistem. Sintaks `<!-- -->` yang sama berlaku di mana saja, tetapi kasus penggunaan praktis dan pola konten yang menimbulkan masalah tanda hubung ganda berbeda per tipe file.

pom.xml Maven dan file build Gradle

File POM Maven termasuk file XML yang paling banyak dikomentari dalam pengembangan Java korporat. Tim menggunakan komentar untuk mendokumentasikan keputusan dependensi, menjelaskan konfigurasi plugin, dan mempertahankan versi dependensi alternatif untuk pergantian cepat. Masalah paling umum di file POM adalah mengomentari blok `<dependency>` yang sudah berisi komentar XML di dalamnya - `-->` internal menutup blok komentar luar lebih awal. Hapus komentar internal sebelum membungkus blok. Gunakan pemeriksa well-formedness XML setelah mengedit untuk memastikan file masih ter-parse.

File layout dan manifest Android

Layout XML Android dan file `AndroidManifest.xml` mengikuti aturan komentar XML yang sama. Pola umum adalah mengomentari seluruh blok `<activity>` atau `<uses-permission>` selama pengembangan untuk menguji konfigurasi berbeda. Karena file-file ini diproses compiler resource Android sebelum dimasukkan ke APK, komentar dibuang saat build - tidak berdampak pada runtime. Komentar tidak bisa muncul di dalam nilai atribut, jadi menganotasi pengaturan atribut individual mengharuskan komentar ditempatkan di baris terpisah di atas atribut.

File SVG

SVG adalah kosakata XML, sehingga komentar memakai sintaks `<!-- -->` yang sama. Mereka biasanya digunakan untuk mendokumentasikan bagian artboard, memberi label layer, dan mempertahankan definisi path alternatif. Komentar SVG dipertahankan ketika file dimuat oleh peramban sebagai `<svg>` inline atau melalui tag `<img>` - mereka muncul di DOM dan bisa diinspeksi di DevTools. Jika Anda mengoptimalkan SVG untuk produksi, gunakan penghapus komentar XML untuk membuang komentar dan mengurangi ukuran file sebelum deployment.

Stylesheet XSLT

Stylesheet XSLT adalah dokumen XML yang mentransformasi dokumen XML lain. Komentar di XSLT digunakan untuk menonaktifkan aturan template selama debugging dan mendokumentasikan ekspresi XPath yang kompleks. Karena prosesor XSLT mengeksekusi stylesheet sebagai XML, aturan `<xsl:template>` yang dikomentari sepenuhnya tidak aktif. Padukan dengan pencari dan penguji XPath untuk memverifikasi ekspresi XPath Anda sebelum mengaktifkan kembali aturan template.


Konfigurasi XML Spring

File konfigurasi bean XML Spring Framework adalah dokumen XML besar yang terstruktur hierarkis di mana komentar digunakan secara luas untuk mendokumentasikan scope bean, menjelaskan pilihan dependency injection, dan mempertahankan konfigurasi legacy. Pembatasan tanda hubung ganda sangat relevan di file Spring yang merujuk connection string database atau template SQL - keduanya sering mengandung urutan `--`. Selalu pindai konten sebelum mengomentarinya dan ganti `--` apa pun dengan satu tanda hubung atau frasa deskriptif.

Menghapus komentar XML untuk produksi

Komentar XML yang ditujukan untuk dokumentasi pengembang tidak seharusnya sampai ke produksi di semua konteks. Menghapusnya mengurangi ukuran payload, menghilangkan catatan internal dari feed yang dapat diakses publik, dan menghilangkan overhead parse marginal dari node komentar di pipeline pemrosesan XML ber-throughput tinggi.

Kapan menghapus komentar XML

  • Feed RSS dan Atom: komentar menambah byte ke feed yang dapat diakses publik tanpa manfaat apa pun bagi pembaca feed
  • Payload API SOAP: beberapa parser XML yang dipakai konsumen SOAP korporat punya kebijakan ketat tanpa komentar
  • Aset SVG yang di-deploy ke produksi: komentar memperbesar ukuran file dan terlihat oleh siapa pun yang menginspeksi source halaman
  • File konfigurasi XML di image kontainer: hapus komentar untuk mengurangi ukuran image Docker dan mencegah kebocoran dokumentasi internal
  • File data XML di pipeline ETL: penghapusan sebelum ingestion mengurangi waktu parse dan menghindari penanganan node komentar yang tak terduga oleh prosesor hilir

Penghapus Komentar XML

Hapus semua komentar XML dari dokumen mana pun seketika - output bersih siap untuk API, deployment, atau optimisasi ukuran file. Berjalan sepenuhnya di peramban Anda tanpa unggahan.

Open tool

Penghapusan secara programatik

Di Python, library `lxml` menyediakan penghapusan komentar via `lxml.etree.strip_tags` dengan tipe komentar, atau Anda bisa mengiterasi semua node komentar dan memanggil `remove()`. Library standar `xml.etree.ElementTree` membuang komentar secara default saat parse - mereka tidak muncul di pohon elemen sama sekali. Di Node.js, library `fast-xml-parser` mengabaikan komentar saat parse, dan library `xml2js` melakukan hal yang sama dengan konfigurasi default. Untuk pendekatan cepat tanpa kode, penghapus komentar XML menangani dokumen XML apa pun di peramban Anda tanpa perlu setup library.

Note

Penghapusan komentar adalah operasi tanpa kehilangan di sisi data. Objek XML yang ter-parse secara semantik identik sebelum dan sesudah komentar dihapus. Selalu simpan versi sumber berkomentar di version control dan hapus komentar hanya untuk artefak deployment.

Praktik terbaik komentar XML

Komentar XML yang terstruktur dengan baik membuat file konfigurasi jauh lebih mudah dirawat, direview, dan diserahkan. Pola-pola ini muncul di file POM Maven, config XML Spring, aset SVG, dan manifest Android dalam codebase profesional.

Dokumentasikan maksud, bukan mekanika

Komentar yang mengulang apa yang dilakukan elemen tidak menambah nilai. Komentar yang menjelaskan mengapa elemen dikonfigurasi demikian benar-benar berguna. Dalam POM Maven, komentar seperti `<!-- Pinned to 3.2.1 because 3.3.0 broke transaction rollback on Oracle 19c -->` memberi tahu pengembang berikutnya persis apa yang perlu diketahui sebelum memperbarui dependensi. Nomor versi mentah saja tidak.

Jaga komentar tetap pendek dan di atas, bukan di samping

Elemen XML sering memiliki daftar atribut panjang yang membentang di beberapa baris. Komentar inline yang ditempatkan setelah atribut membuat baris semakin panjang dan merusak format. Konvensi standar di file XML adalah menempatkan komentar penjelasan pada baris khusus di atas elemen yang dijelaskan, bukan di baris yang sama. Ini juga memastikan komentar valid - ingat, komentar di dalam tag dilarang berapa pun panjang barisnya.

  • Baik: komentar di barisnya sendiri di atas elemen - `<!-- Required for SSO login flow -->\n<property name="authProvider" value="saml"/>`
  • Hindari: komentar setelah atribut di baris tag yang sama - menyebabkan kesalahan well-formedness
  • Baik: komentar pemisah bagian - `<!-- ═══ Database Configuration ═══ -->` sebelum kelompok bean yang logis
  • Hindari: kode berkomentar dibiarkan di file tanpa batas waktu - arsipkan di version control alih-alih mempertahankan markup mati
  • Baik: menghapus urutan `--` dari kode berkomentar sebelum commit - mencegah kesalahan well-formedness di masa depan

Tip

Sebelum meng-commit file XML apa pun dengan komentar baru, jalankan melalui [pemeriksa well-formedness XML](/tools/data/validators/xml-well-formedness-checker). Pemeriksaan selesai dalam waktu kurang dari satu detik dan menangkap pelanggaran tanda hubung ganda, penempatan komentar yang salah, dan kesalahan struktural apa pun yang muncul saat menambahkan komentar.

Validasi setelah konversi ke atau dari format lain

Jika Anda mengonversi config JSON atau YAML ke XML menggunakan konverter XML ke JSON atau alat serupa, output tidak akan membawa komentar dari sumber - komentar JSON dan YAML tidak dipertahankan dalam konversi. Tambahkan komentar dokumentasi XML apa pun secara manual setelah konversi, lalu validasi hasilnya. Sebaliknya, jika Anda mengonversi XML ke YAML, komentar dibuang karena konverter membaca pohon DOM ter-parse, bukan teks sumber mentah. Simpan XML asli sebagai sumber otoritatif ketika komentar dokumentasi penting.

Key takeaways

  • XML memiliki tepat satu sintaks komentar: `<!-- comment -->`. Tidak ada bentuk alternatif.
  • Komentar tidak bisa muncul di dalam tag pembuka atau penutup elemen, di dalam nilai atribut, atau sebelum deklarasi XML.
  • Urutan `--` (tanda hubung ganda) dilarang di dalam isi komentar XML - mengakhiri komentar lebih awal dan menyebabkan kesalahan well-formedness.
  • Komentar XML tidak bisa disarangkan - `-->` pertama di dalam blok selalu menutup komentar terbuka terluar.
  • Gunakan pemeriksa well-formedness XML setelah menambahkan komentar untuk menangkap pelanggaran tanda hubung ganda dan penempatan komentar yang salah.
  • Hapus komentar sebelum deployment ke produksi menggunakan penghapus komentar XML - komentar dipertahankan di sumber tetapi tidak menambah nilai pada artefak deployment.
  • Tempatkan komentar di barisnya sendiri di atas elemen yang dijelaskan - tidak pernah di dalam tag atau setelah nilai atribut di baris yang sama.

Pertanyaan yang sering diajukan

The only valid XML comment syntax is <!-- comment text -->. The opening delimiter is <!-- (less-than, exclamation mark, two hyphens) and the closing delimiter is --> (two hyphens, greater-than). Everything between the delimiters is the comment content and is ignored by the XML parser. There are no other comment syntaxes in XML - no // single-line comments, no # hash comments, and no /* */ block delimiters.

No. XML comments cannot appear inside element tags, attribute names, or attribute values. The comment delimiters <!-- and --> are only valid outside of tags - between elements, before the root element, or after the root element. Placing <!-- inside an opening tag like <element <!-- comment --> attr="value"> is a well-formedness error that any XML parser will reject.

Yes. An XML comment can span as many lines as needed. The opening <!-- and closing --> delimiters define the start and end regardless of how many line breaks appear between them. This is the standard way to comment out a large block of XML - place <!-- before the block on its own line and --> after the block on its own line. The entire content between the delimiters, including newlines, is ignored by the parser.

The most common cause is a double hyphen sequence (--) inside the comment content. The XML specification prohibits -- inside a comment because it would be ambiguous with the --> closing delimiter. If your comment text contains an em-dash, a decrement operator (-- in C or SQL), or any two adjacent hyphens, the parser treats them as the start of the closing sequence and either errors or terminates the comment at the wrong location. Replace -- with a single hyphen or rephrase the text.

Yes, using the same <!-- --> syntax. XSLT stylesheets are valid XML documents, so the same comment rules apply. You can comment out entire <xsl:template> blocks, individual <xsl:apply-templates> instructions, or any other XSLT elements using XML comment syntax. Note that XSLT processors do not execute commented-out templates - commenting is an effective way to disable a transformation rule during debugging without deleting it.

No. The XML declaration (<?xml version="1.0" encoding="UTF-8"?>) must be the very first thing in an XML document if it is present. A comment placed before the XML declaration is a well-formedness error. Comments are valid after the XML declaration, before the root element, between elements, and after the root element - but never before the declaration.

In Python, load the document with the standard xml.etree.ElementTree library - it discards comments by default when parsing. To strip them explicitly with lxml, iterate comment nodes and remove them before serialising. In JavaScript or Node.js, the DOMParser API ignores comments when parsing to a DOM, but you can also use a simple regex for processing pipelines. For a no-code option, the Aback Tools XML Comment Remover strips all comment nodes from any XML document instantly in your browser.

Yes, but with subtle differences. HTML browsers use the same <!-- --> syntax for comments, but the HTML parser is more lenient - it allows -- inside comments in most HTML5 parsers, which would be a well-formedness error in strict XML. If your document is served as application/xml or text/xml (XHTML), the strict XML rules apply and -- inside comments will cause a parse failure. For HTML served as text/html, the HTML5 rules apply and most browsers tolerate double hyphens inside comments.

ShareXLinkedIn