XML เป็นเพียงเครื่องมือที่มีหลายรสชาติและใช้งาน XML มีความเชี่ยวชาญในบางสิ่งและดึงดูดผู้อื่น ฉันคิดว่าหนึ่งในปัญหาคือผู้คนเห็น "องค์กร" XML ที่ซับซ้อนโดยไม่จำเป็นกับเนมสเปซและอึที่เกลื่อนไปหมด เคล็ดลับในการออกแบบรูปแบบ XML สำหรับมนุษย์คือการเพิ่มความหมายที่แท้จริงให้กับข้อมูลในขณะที่ไม่ทำให้พวกเขาอ่านล้นหลาม
หนึ่งในสิ่งที่ผู้คนมีปัญหาคือบางครั้ง XML อาจทำให้ตัวละครบางตัวหรือฉากที่ขาดหายไป อย่างไรก็ตามมีทั้งส่วนกลับและข้อเสียแม้กระทั่งว่า ข้อเสียคือคุณไม่ได้มีความกำกวมเหมือนที่คุณมีกับ HTML ซึ่งกรณีต่าง ๆ ของไวยากรณ์กึ่งไม่ถูกต้องสามารถตีความได้แตกต่างกัน
ข้อเสียคือมันยากที่จะเขียนและเรียนรู้ได้ยากขึ้น ฉันยอมรับว่ามีการโต้แย้งที่จะทำให้เว็บไม่ต้องกลายเป็นเรื่องใหญ่อย่างรวดเร็วถ้า HTML นั้นเข้มงวดเหมือน XML แต่ฉันก็เถียงว่าเราจะดีใจถ้ามันทำในวันนี้ :)
นอกจากนี้อย่าใช้เพื่อทุกสิ่งเพียงเพราะคุณสามารถมีสติและวิจารณญาณในการนำไปใช้อย่างเหมาะสม หากสิ่งที่คุณมีคือ XML คุณมักจะเปลี่ยน XSLT จากสิ่งที่คุณต้องการ :)
ฉันยืนยันว่ารูปแบบนั้นสำคัญมากเมื่อมนุษย์จำเป็นต้องมีปฏิสัมพันธ์กับมันเท่านั้น หากคุณกำลังเขียนโปรแกรมบางอย่างที่ทำให้บางสิ่งเป็นอันดับและส่งไปที่อื่นที่โปรแกรมของคุณใช้ซึ่งเป็นผู้ดูแลสิ่งที่ดูเหมือนว่าตราบใดที่มีประสิทธิภาพมากที่สุด ใช้รูปแบบไบนารีหรือกระต่ายและยูนิคอร์นสำหรับทุกสิ่งที่ฉันสนใจ
ข้อดีของ XML
- ครอบคลุมกรณีขอบจำนวนมากที่ YAML และ JSON ทำไม่ได้
- มีเครื่องมือที่ยอดเยี่ยมสำหรับการแยกวิเคราะห์และตรวจสอบความถูกต้องของ XML ในอาเรย์ของแพลตฟอร์มและภาษาต่างๆ
- XML สามารถเปลี่ยนเป็นรูปแบบอื่นได้อย่างง่ายดายและมีประสิทธิภาพ (ผ่านสิ่งต่าง ๆ เช่น XSLT)
- เอกสาร XML ที่สมเหตุสมผลนั้นง่ายสำหรับมนุษย์ในการอ่านและแก้ไข อย่าบอกฉันว่า JSON ง่ายกว่านี้ไม่ใช่ :)
- XML อธิบายตนเองในระดับหนึ่งเช่นมีข้อมูลเกี่ยวกับโครงสร้างและความหมายโดยตรง (ตรงกันข้ามกับรูปแบบไบนารีส่วนใหญ่)
- จัดการการเข้ารหัส
- ช่องว่างไม่เชื่อเรื่องพระเจ้าซึ่งทำให้การใช้งานข้ามแพลตฟอร์มได้ง่ายขึ้น
- แตกถ้ามันไม่ได้อยู่ในรูปแบบที่ดี (มั่นใจได้ว่าข้อมูลถูกต้องตามโครงสร้าง)
- ไม่ใช่ SGML
จุดด้อย
- ละเอียด
- ไม่เร็วที่จะแยกวิเคราะห์เป็นเลขฐานสอง
- แตกถ้ารูปแบบไม่สมบูรณ์ (ขัดข้องแอปพลิเคชันของคุณ)
ใช้งานได้ดี
- ไฟล์กำหนดค่า
- รูปแบบการแลกเปลี่ยนข้อมูล
- รูปแบบไฟล์ที่ยืดหยุ่น
- การจัดเก็บเอกสารในฐานข้อมูล
การใช้งานไม่ค่อยดีนัก
- รูปแบบการถ่ายโอนข้อมูล
- การทำให้เป็นอันดับวัตถุ
- การจัดเก็บข้อมูลเชิงสัมพันธ์ในฐานข้อมูล
- รูปแบบไฟล์สำหรับสถานการณ์ I / O ประสิทธิภาพสูง