XML chỉ là một công cụ có nhiều hương vị và cách sử dụng. XML vượt trội ở một số thứ và hút vào những thứ khác. Tôi nghĩ một trong những vấn đề là mọi người đã thấy XML "doanh nghiệp" phức tạp không cần thiết với các không gian tên và crap rải rác xung quanh (SOAP, có ai không?). Mẹo để thiết kế các định dạng XML cho con người là thêm ý nghĩa thực sự vào dữ liệu trong khi không khiến chúng bị quá tải để đọc.
Một trong những điều mà mọi người gặp phải là vấn đề XML đôi khi gây ra một số ký tự hoặc một số dấu ngoặc bị thiếu. Tuy nhiên, có cả nhược điểm và nhược điểm. Ưu điểm là bạn không có sự mơ hồ như bạn có với HTML trong đó các trường hợp cú pháp bán không hợp lệ khác nhau có thể được diễn giải khác nhau.
Nhược điểm là tác giả khó hơn một chút và khó học hơn. Tôi đồng ý rằng có một lập luận được đưa ra rằng web sẽ không phát triển quá nhanh nếu HTML nghiêm ngặt như XML, nhưng tôi cũng cho rằng chúng ta sẽ vui mừng nếu ngày nay nó hoạt động. :)
Ngoài ra, không sử dụng nó cho tất cả mọi thứ chỉ vì bạn có thể, có ý thức và phán đoán để áp dụng nó một cách thích hợp. Nếu tất cả những gì bạn có là XML, bạn có xu hướng luôn là một phép chuyển đổi XSLT khỏi những gì bạn muốn. :)
Tôi cho rằng định dạng chỉ thực sự quan trọng khi con người cần tương tác với nó. Nếu bạn đang viết một số chương trình nối tiếp một cái gì đó và gửi nó đến một nơi nào đó mà nó sẽ được sử dụng bởi một chương trình khác, thì ai quan tâm nó trông như thế nào miễn là nó hiệu quả nhất có thể? Sử dụng định dạng nhị phân hoặc thỏ và kỳ lân cho tất cả những gì tôi quan tâm.
Ưu điểm của XML
- Bao gồm rất nhiều trường hợp cạnh mà YAML và JSON không
- Có các công cụ tuyệt vời để phân tích cú pháp và xác thực XML trong một loạt các nền tảng và ngôn ngữ khác nhau
- XML có thể dễ dàng và mạnh mẽ được chuyển đổi sang định dạng khác (thông qua những thứ như XSLT)
- Các tài liệu XML hợp lý rất đơn giản để con người đọc và chỉnh sửa; đừng nói với tôi JSON dễ hơn, không phải vậy :)
- XML tự mô tả ở một mức độ nào đó, tức là nó trực tiếp chứa thông tin về cấu trúc và ý nghĩa của nó (trái ngược với hầu hết các định dạng nhị phân)
- Xử lý mã hóa
- Không gian trắng, giúp sử dụng đa nền tảng dễ dàng hơn
- Phá vỡ nếu nó không được định dạng tốt (Đảm bảo dữ liệu có cấu trúc chính xác)
- Nó không phải là SGML
Nhược điểm
- Rực rỡ
- Nó không nhanh như phân tích cú pháp như nhị phân
- Phá vỡ nếu nó không được định dạng tốt (làm hỏng ứng dụng của bạn)
Sử dụng tốt
- Tập tin cấu hình
- Định dạng trao đổi dữ liệu
- Phiên bản định dạng tệp đàn hồi
- Lưu trữ tài liệu trong cơ sở dữ liệu
Sử dụng không tốt
- Định dạng truyền dữ liệu
- Đối tượng nối tiếp
- Lưu trữ dữ liệu quan hệ trong cơ sở dữ liệu
- Định dạng tệp cho các kịch bản I / O hiệu suất cao