Tuyên bố XML hợp lệ và xác thực trong tuần tự hóa XHTML của HTML5. Tài liệu dưới đây khá tối thiểu xác nhận:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title></title></head>
<body></body>
</html>
Tuy nhiên, điều này chỉ áp dụng cho xHTML serialization (cú pháp XHTML) của HTML5. Trong tuần tự hóa HTML, nó không được phép. Nếu bạn viết các tài liệu nêu trên trong một tập tin và lưu trữ nó trong một máy chủ sẽ gửi nó với Content-Type: text/html
(mà thường xảy ra nếu tên tập tin kết thúc với “.html”), sau đó bạn nhận được một thông báo lỗi:
Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML.
(XML processing instructions are not supported in HTML.)
Ở đây "HTML" có nghĩa là tuần tự HTML.
Trình duyệt không quan tâm đến khai báo XML theo một trong hai cú pháp. Trong cú pháp HTML, nó chỉ bị bỏ qua, như một lỗi cú pháp có thể phục hồi. Trong cú pháp XHTML, nó không quan trọng, ngoại trừ phần encoding
.
Mặc dù đặc tả XML 1.0 đề xuất (nhưng không yêu cầu) XML declaration, nó sẽ có vấn đề thực tế (ngoài tầm quan trọng của encoding
) chỉ cho phần mềm có khả năng xử lý các phiên bản XML khác nhau. Trình duyệt không phải là. Và ngoài XML 1.0, chỉ có XML 1.1, không được sử dụng nhiều. Bên cạnh đó, HTML5 được định nghĩa sao cho phiên bản XML được sử dụng trong cú pháp XHTML là XML 1.0.
Phần encoding
có thể quan trọng, nhưng utf-8
là giá trị mặc định cho XML. Nếu bạn sử dụng một mã hóa khác vì một lý do nào đó, thì một khai báo XML có thể hữu ích để ngăn chặn bất kỳ xung đột nào. HTML5 CR nói điều này trong đó discussion of encodings: “Trong XHTML, khai báo XML nên được sử dụng cho thông tin mã hóa ký tự nội tuyến, nếu cần.” Thẻ meta
không thực sự hữu ích trong XHTML khi được cung cấp với loại nội dung XML, vì mã hóa đã được quyết định (theo mặc định là UTF-8 hoặc cách khác) khi thẻ được nhìn thấy.
Đối với cú pháp HTML, <meta charset=...>
thẻ thể được sử dụng, nhưng nó không phải là cần thiết cho tính hợp lệ, và mã hóa có thể được quy định tại tiêu đề HTTP (trong đó ghi đè lên bất kỳ meta
thẻ). Tuy nhiên, việc sử dụng thẻ meta
có thể hữu ích vì một trang có thể được lưu cục bộ và sau đó sẽ không có bất kỳ tiêu đề HTTP nào khả dụng khi mở.