Trước khi đi vào khái niệm XHTML, chúng ta nên lướt qua một chút về nguồn gốc của XHTML. Các ngôn ngữ web dựa trên khái niệm cơ bản là SGML, một ngôn ngữ khá phức tạp, còn được gọi là metalanguage, sử dụng để định nghĩa các ngôn ngữ khác. Sử dụng SGML để tạo XML (eXtensible Markup Language), một phiên bản đơn giản hơn và đương nhiên cũng được coi là một metalanguage.
XML là một định dạng khá mạnh và đơn giản, bạn có thể tạo riêng một khái niệm về tags hoặc thuộc tính cho các dạng văn bản bạn muốn. Bằng cách tạo nhóm các tags và thuộc tính đúng theo chuẩn XML, như thế là bạn đã tạo ra được ngôn ngữ Markup mới.
XHTML (eXtensible HyperText Markup Language) có thể thấy ngay được XHTML = X + HTML => XHTML = XML + HTML, với XML cung cấp các quy tắc làm thế nào để dùng chung với HTML.
Vậy, để dùng XHTML, phải viết theo code XML, XHTML cung cấp rất nhiều tiện ích của XML (chi tiết ở phần tiếp theo). Một lần nữa phải nói thêm rằng code với XHTML phải tuân theo các chuẩn định dạng của XML, ví như cú pháp và cấu trúc phải tuyệt đối đúng. XHTML đồng thời cũng rất giống với HTML.
Không nên lo ngại gì vì việc chuyển tiếp sang XHTML khá đơn giản, chỉ với một vài điều ghi nhớ sau đây.
Khai báo XHTML
Đặt phần khai báo XML lên trên cùng của văn bản, để định nghĩa cho cả 2 phiên bản XML có thể sử dụng ký tự encoding. Điều này ko bắt buộc, vì nếu dùng encoding có thể sử dụng an tòan cho nhiều trình duyệt hơn. Và developer nên dùng khai báo, gần như được mặc định như sau:
<?xml version=”1.0″ encoding=”UTF-8″?>
và thay vì dùng meta tag cho phần đầu khai báo, có thể dùng:
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
Nếu bạn sử dụng phổ biến hơn là ISO-8859-1 encoding, dùng
<meta http-equiv=”Content-Type” content=”text/html; charset=ISO-8859-1″ />
XHTML DTDs
Dù có sử dụng khai báo XML hay không thì mỗi tài liệu XHTML phải được khai báo chính xác theo đọan code sau để bắt đầu 1 trang, một số thuộc tính chính nằm trong tag <html>, giúp trình duyệt nhận biết được đọan text sử dụng lọai ngôn ngữ nào. Đọan mở đầu là DTD (Document Type Declaration), nó gửi đến trình duyệt và validator tính chất or trạng thái trang web đang họat động.
DTD là một dạng tập tin mà trình duyệt có thể đọc bằng tên và các thuộc tính của tất cả các tags thích hợp (nghĩa là các tags đúng cú pháp theo chuẩn XML) mà developer tự định nghĩa. Những trình duyệt mới luôn có những chức năng đọc hiểu và ghi lại những DTD trên các website vào dữ liệu DTDs khổng lồ của trình duyệt. XHTML Strict DTD sẵn sàng giúp cho developer nghiên cứu.
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
DTD là thứ duy nhất bạn sử dụng nếu thật sự muốn viết web hòan tòan bằng mã XHTML. XHTML là thành phần với tòan bộ các tags và thuộc tính và thực sự cần độ chính xác cao.
Nếu developer chọn sử dụng mã XHTML bắt buộc phải làm quen với chuẩn của W3C validator (có thể tham khảo thêm tại www.W3c.com). Developer sẽ không được phân quyền sử dụng tất cả font tag, hoặc các thuộc tính như width/height cũng không được cho phép trong việc tạo tables. Bạn cũng không được dùng thuộc tính về border cho hình ảnh, và sẽ dùng thuộc tính alt cho tất cả hình ảnh muốn hiển thị. Phần lớn các thuộc tính hiện hữu đều bị hạn chế trong các tiện ích có thể tận dụng được của CSS, vì vậy để đơn giản hóa, có thể dùng đọan XHTML Transitional dưới đây.
Chắc rằng sẽ khó có thể phân biệt giữa HTML và XHTML về cách dùng DTD, cái nào ít phức tạp hơn, và nếu như đặt cách dùng DTD vào cùng một frameset, thì nên dùng XHTML.
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
Để định nghĩa XML Namespace cho tài liệu dùng, cách đơn giản là gán vào tag hiện tại đang dùng có liên quan đến modular properties của XHTML, bằng cách thêm vào thuộc tính trong tag <html>. Developer ghi nhớ rằng phải chỉ rõ ngôn ngữ của trang web hiện tại. Thay đổi các tags theo:
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>
</html>
(Chưa rõ nguồn)
