2014-10-28 12 views
6

Chế độ tiêu chuẩn HTML forbids double hyphens trong nhận xét.Tại sao dấu gạch nối kép không hợp lệ trong nhận xét HTML?

<!-- This is a perfectly valid comment - I think. --> 
<!-- Invalid comment -- definitely. --> 

Có ba hạn chế bổ sung, minh họa bằng những ví dụ không hợp lệ:

<!--> invalid --> 
<!---> invalid --> 
<!-- invalid ---> 

Tại sao cứ xác định tất cả các trường hợp cạnh chút? Cụ thể, tại sao cấm dấu gạch ngang kép?

+1

Bởi vì đây là một bình luận hợp lệ '' – Cheery

+3

Điều này xuất phát từ XML, tôi nghĩ vậy. Lý trí, nếu tôi nhớ chính xác, là để cho phép nó được phân tích cú pháp với chính xác 1 ký tự của lookahead qua hiện tại. Chỉnh sửa: Tôi không nghĩ mình nhớ chính xác. Không chắc chắn nơi tôi đã nhận rằng từ :-) – Cameron

+2

Thú vị '

Đây là một thử nghiệm ... của hệ thống phát thanh khẩn cấp.

'hiển thị dưới dạng * Đây là một thử nghiệm ... của hệ thống phát sóng khẩn cấp. * Chỉ tốt trong các phiên bản mới nhất của Chrome và Firefox. – J0e3gan

Trả lời

6

[Định nghĩa: Nhận xét có thể xuất hiện ở bất kỳ nơi nào trong tài liệu ngoài khác đánh dấu; ngoài ra, chúng có thể xuất hiện trong loại khai báo tài liệu ở những nơi được phép theo ngữ pháp. Chúng không phải là một phần của dữ liệu ký tự của tài liệu ; một bộ xử lý XML có thể, nhưng không cần, làm cho nó có thể cho một ứng dụng truy xuất văn bản nhận xét. Đối với khả năng tương thích , chuỗi "-" (dấu gạch ngang kép) không được xuất hiện trong phạm vi nhận xét.] Tham chiếu thực thể tham số không được nhận dạng trong vòng nhận xét.

Ngữ pháp không cho phép bình luận kết thúc bằng --->

Nó có vẻ là một tính năng của XML bao gồm duy nhất để đảm bảo XML mà vẫn tương thích với SGML http://www.w3.org/TR/REC-xml/#sec-comments

+2

Đây là câu trả lời hay. HTML5 cần thiết để thử là một tập con chung của cú pháp nhận xét XML, cú pháp nhận xét SGML và cú pháp nhận xét mà các trình duyệt hỗ trợ, cả 3 đều khác nhau. Trong số 3, SGML có lẽ ít quan trọng vì các trình duyệt không bao giờ hỗ trợ cú pháp nhận xét SGML đúng cách (mặc dù các trình duyệt tính hợp lệ đã làm). Nhưng sản phẩm kết quả thực sự phải làm việc trong một trình phân tích cú pháp SGML. – thomasrutter

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