2009-05-05 34 views
6

Như tôi đã hiểu, XML là một tập con của SGML được hình thành để đơn giản hóa nó và khuyến khích sử dụng rộng rãi hơn.Có lý do nào để sử dụng SGML thay vì XML không?

Tôi đoán các tính năng hữu ích nhất đã được đưa vào XML, nhưng có bất kỳ tính năng nào trong SGML đủ mạnh để thúc đẩy sử dụng nó thay vì XML (và chấp nhận chi phí phức tạp) không?

Trả lời

8

Một lợi thế của SGML, nếu bạn đang chỉnh sửa thủ công, là bạn có thể viết tắt các thẻ theo nhiều cách khác nhau. Chính xác những gì bạn có thể làm phụ thuộc vào khai báo SGML cho DTD bạn đang sử dụng. Ví dụ: trong DocBook, bạn có thể viết những thứ như < chữ> foo < />. Trong HTML, bạn có thể bỏ qua thẻ kết thúc, đó là lý do tại sao bạn có thể viết < p> foo ... < p> thanh mà không đóng thẻ. Hoặc bạn có thể bỏ qua các thẻ hoàn toàn, đó là lý do tại sao < nội dung> là tùy chọn trong HTML.

Nhưng XML được phát minh chính xác bởi vì tất cả các biến thể này làm cho việc phân tích SGML khá phức tạp. Có thể bạn sẽ tìm thấy các trình soạn thảo XML có khả năng hơn các trình soạn thảo SGML hiện nay.

Theo cách xử lý, cả hai biểu mẫu đều tương đương nhau, vì bạn có thể chuyển đổi qua lại, ngoại trừ trong một số trường hợp góc.

+0

Nrrgh, cần nút +2 ...! (+1 cho một lời giải thích tuyệt vời; 1 cho đố tuyệt vời!) – pinkgothic

1

Không thể trả lời trừ khi bạn có một ứng dụng cụ thể trong tâm trí. Bạn có thể nhận được chỉ mục và tìm kiếm tốt hơn với SGML, nhưng tôi đã không tìm thấy một trường hợp mà nó là một lựa chọn tốt hơn so với XML. Tôi chắc chắn rằng họ đang ở ngoài đó, tôi chỉ không tìm thấy chúng.

Yếu tố chiến thắng là độ chín hiển thị trên nhiều nền tảng của XML. Tính tương thích tương tự không tồn tại đối với SGML. Tuy nhiên, nếu bạn có thể kiểm soát môi trường, đó có thể không phải là một yếu tố. XML dường như chỉ cung cấp 90% chức năng cho độ phức tạp thấp hơn nhiều.

2

No. Lý do duy nhất để sử dụng SGML là nếu bạn làm việc trong ngành xuất bản nơi SGML đã là một phần của quy trình sản xuất. (Có thể có các ngành khác nhưng đó là ngành duy nhất mà tôi có kinh nghiệm). Một cách khác để xem xét điều này là, mặc dù có một số tính năng tốt đẹp trong SGML, nó không đáng để trả tiền cho các công cụ trừ khi bạn có thể thể hiện rõ ràng lợi ích tài chính bằng cách sử dụng SGML (xem "ngành công nghiệp xuất bản").

Các vấn đề liên quan