XML hanyalah alat yang memiliki banyak rasa dan kegunaan. XML unggul dalam beberapa hal dan mengisap yang lain. Saya pikir salah satu masalah adalah orang-orang telah melihat "perusahaan" XML yang tidak perlu rumit dengan ruang nama dan omong kosong berserakan (SOAP, ada orang?). Trik untuk mendesain format XML untuk manusia adalah menambahkan makna nyata pada data tanpa membuatnya berlebihan untuk dibaca.
Salah satu hal yang menjadi masalah orang adalah bahwa XML terkadang tersedak beberapa karakter atau beberapa braket yang hilang. Namun, ada sisi positif dan negatifnya. Sisi baiknya adalah Anda tidak memiliki ambiguitas seperti yang Anda miliki dengan HTML di mana berbagai kasus sintaksis semi-tidak valid dapat ditafsirkan secara berbeda.
Kelemahannya adalah agak sulit untuk penulis dan sulit untuk dipelajari. Saya setuju ada argumen yang dibuat bahwa web tidak akan menjadi terlalu cepat jika HTML seketat XML, tapi saya juga berpendapat bahwa kami akan senang jika melakukannya hari ini. :)
Juga, jangan menggunakannya untuk semuanya hanya karena Anda bisa, memiliki akal dan penilaian untuk menerapkannya dengan tepat. Jika semua yang Anda miliki adalah XML, Anda cenderung selalu menjadi transformasi XSLT dari yang Anda inginkan. :)
Saya berpendapat bahwa format hanya penting ketika manusia perlu berinteraksi dengannya. Jika Anda menulis beberapa program yang membuat serial sesuatu dan mengirimkannya ke suatu tempat di mana ia akan dikonsumsi oleh program Anda yang lain, siapa yang peduli seperti apa bentuknya selama itu seefisien mungkin? Gunakan format biner atau kelinci dan unicorn untuk semua yang saya pedulikan.
Pro dari XML
- Meliputi banyak kasus tepi yang tidak YAML dan JSON
- Ada alat yang sangat baik untuk mem-parsing dan memvalidasi XML dalam berbagai platform dan bahasa yang berbeda
- XML dapat dengan mudah dan kuat diubah menjadi format lain (melalui hal-hal seperti XSLT)
- Dokumen XML yang wajar sederhana untuk dibaca dan diedit manusia; jangan bilang JSON lebih mudah, tidak :)
- XML menggambarkan diri sendiri sampai taraf tertentu, yaitu XML secara langsung berisi informasi tentang struktur dan maknanya (berbeda dengan kebanyakan format biner)
- Menangani pengodean
- Whitespace agnostic, yang memudahkan penggunaan lintas-platform
- Istirahat jika tidak terbentuk dengan baik (Memastikan data secara struktural benar)
- Itu bukan SGML
Cons
- Verbose
- Tidak secepat mengurai biner
- Hancur jika tidak terbentuk dengan baik (aplikasi Anda mogok)
Penggunaan yang baik
- File konfigurasi
- Format pertukaran data
- Format file versi tangguh
- Menyimpan dokumen dalam database
Penggunaannya tidak begitu baik
- Format transfer data
- Obyek serialisasi
- Menyimpan data relasional dalam database
- Format file untuk skenario I / O kinerja tinggi