HTML và XHTML là cả hai ngôn ngữ trong đó các trang web được viết. HTML là
HTML là ngôn ngữ đánh dấu chiếm ưu thế cho các trang web. HTML tạo các tài liệu có cấu trúc bằng cách biểu thị ngữ nghĩa cấu trúc cho văn bản như tiêu đề, danh sách, liên kết, trích dẫn, vv Nó cho phép hình ảnh và đối tượng được nhúng để tạo các hình thức tương tác. Nó được viết dưới dạng các thẻ được bao quanh bởi dấu ngoặc nhọn - ví dụ:, . Các tập lệnh trong các ngôn ngữ như JavaScript cũng có thể được tải.
XHTML là một họ các ngôn ngữ XML mở rộng hoặc phản chiếu các phiên bản HTML. Nó không cho phép bỏ qua bất kỳ thẻ hoặc sử dụng tối thiểu hóa thuộc tính. XHTML yêu cầu phải có thẻ kết thúc cho mọi thẻ bắt đầu và tất cả các thẻ lồng nhau phải được đóng theo đúng thứ tự. Ví dụ, trong khi
là hợp lệ trong HTML, nó sẽ được yêu cầu để viết
trong XHTML.
Tài liệu HTML bao gồm các thành phần có ba thành phần - một cặp thẻ phần tử - thẻ bắt đầu, thẻ kết thúc; thuộc tính yếu tố được đưa ra trong các thẻ và nội dung thực tế, văn bản và đồ họa. Phần tử HTML là tất cả mọi thứ nằm giữa và bao gồm các thẻ. (Thẻ là một từ khóa được đặt trong dấu ngoặc nhọn).
Tài liệu XHTML chỉ có một yếu tố gốc. Tất cả các yếu tố bao gồm các biến phải ở dạng chữ thường và các giá trị được gán phải được bao quanh bởi dấu ngoặc kép, được đóng và lồng để được nhận dạng. Đây là một yêu cầu bắt buộc trong XHTML không giống như HTML khi nó là tùy chọn. Tuyên bố của DOCTYPE sẽ xác định các quy tắc cho các tài liệu tuân theo.
Ngoài các tuyên bố mở khác nhau cho một tài liệu, sự khác biệt giữa tài liệu HTML 4.01 và XHTML 1.0 - trong mỗi DTD tương ứng - phần lớn là cú pháp. Cú pháp cơ bản của HTML cho phép nhiều phím tắt mà XHTML không có, chẳng hạn như các phần tử có thẻ mở hoặc đóng tùy chọn và thậm chí các phần tử EMPTY không phải có thẻ kết thúc. Ngược lại, XHTML yêu cầu tất cả các yếu tố phải có thẻ mở hoặc thẻ đóng. Tuy nhiên, XHTML cũng giới thiệu một lối tắt mới: thẻ XHTML có thể được mở và đóng trong cùng một thẻ, bằng cách bao gồm một dấu gạch chéo trước khi kết thúc thẻ như thế này:
. Việc giới thiệu tốc ký này, không được sử dụng trong khai báo SGML cho HTML 4.01, có thể gây nhầm lẫn cho phần mềm trước đó không quen thuộc với quy ước mới này. Một sửa chữa cho điều này là bao gồm một khoảng trắng trước khi đóng thẻ, như sau:
.
HTML và XHTML có liên quan chặt chẽ với nhau và do đó có thể được ghi lại cùng nhau. Cả HTML 4.01 và XHTML 1.0 đều có ba thông số kỹ thuật phụ - nghiêm ngặt, lỏng lẻo và bộ khung. Các khai báo mở khác nhau cho một tài liệu phân biệt HTML và XHTML. Sự khác biệt khác là cú pháp. HTML cho phép các phím tắt như các phần tử với các thẻ tùy chọn, các phần tử trống mà không có các thẻ kết thúc. XHTML rất nghiêm ngặt về việc mở và đóng thẻ. XHTML sử dụng thuộc tính chức năng xác định ngôn ngữ. Tất cả các yêu cầu cú pháp của XML được bao gồm trong một tài liệu XHTML được hình thành tốt.
Tuy nhiên, xin lưu ý rằng những khác biệt này chỉ áp dụng khi tài liệu XHTML được phục vụ dưới dạng một ứng dụng của XML; nghĩa là, với loại MIME của ứng dụng / xhtml + xml, application / xml hoặc text / xml. Một tài liệu XHTML được phân phát với loại văn bản / html MIME phải được phân tích cú pháp và diễn giải thành HTML, vì vậy các quy tắc HTML được áp dụng trong trường hợp này. Biểu định kiểu được viết cho tài liệu XHTML được cung cấp với loại văn bản / html MIME có thể không hoạt động như dự định nếu tài liệu đó được cung cấp với loại ứng dụng MIME / xhtml + xml. Để biết thêm thông tin về các loại MIME, hãy đảm bảo đọc các loại MIME.
Điều này có thể đặc biệt quan trọng khi bạn đang phục vụ các tài liệu XHTML dưới dạng văn bản / html. Trừ khi bạn nhận thức được sự khác biệt, bạn có thể tạo các biểu định kiểu sẽ không hoạt động như dự định nếu tài liệu được phục vụ như XHTML thực.
Trường hợp các thuật ngữ của văn bản XHTML, và các tài liệu XHTML, xuất hiện trong phần còn lại của phần này, chúng đề cập đến đánh dấu XHTML được cung cấp với loại MIME XML. Đánh dấu XHTML được phân phát dưới dạng văn bản / html là một tài liệu HTML khi có liên quan đến trình duyệt.
Theo khuyến nghị của W3C, có thể thực hiện theo các bước sau để di chuyển HTML sang XHTML (tài liệu XHTML 1.0):
Cẩn thận làm theo hướng dẫn của W3C về khả năng tương thích, một tác nhân người dùng (trình duyệt web) sẽ có thể diễn giải các tài liệu dễ dàng như HTML hoặc XHTML.
Để hiểu sự tinh tế sự khác biệt giữa HTML và XHTML, xem xét việc chuyển đổi một tài liệu XHTML 1.0 hợp lệ và được định dạng tốt thành một tài liệu HTML 4.01 hợp lệ. Để thực hiện bản dịch này yêu cầu các bước sau:
lang
thuộc tính chứ không phải XHTML xml: lang
thuộc tính. XHTML sử dụng thuộc tính chức năng xác định ngôn ngữ được tích hợp sẵn của XML. xmlns = URI
). HTML không có phương tiện cho không gian tên.
). văn bản / html
. Đối với cả HTML và XHTML, điều này xuất phát từ HTTP Loại nội dung
tiêu đề được gửi bởi máy chủ.
đến
).