Wednesday, May 20, 2009

From HTML to XHTML

XHTML, or eXtensible HTML, is considered to be the evolution of HTML. I believe that the biggest difference between these two is that XHTML is XML, while HTML is, well, HTML. Other noticeable differences are that XHTML can be extended to include new markup (i.e. elements for vector graphics are already available); XHTML is the language of choice for browsers on mobile devices; data written in XML can be easily transformed into XHTML. Do remember that XHTML is backwards compatible with HTML.

How to convert from HTML to XHTML:
- Change the DOCTYPE to (Strict) XHTML.  For example:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

would become

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

- The <html> opening tag needs new attributes: xmlns, lang,
and xml:lang. For example:

<html>

would become

<html xmlns="http://www.w3.org/1999/xhtml" lang="en"
lang="en">

Why do we need both lang and xml:lang? Because depending on
how the XHTML is interpreted by the browser, either of them
might be needed, hence it is considered a best practice to
include both.

- There must be a matching closing tag for any opening tag.
This implies that if you have empty elements, the tag must
end with />. For example:

<br>

would become

<br />

Why do we need a space before the slash? Because older
browsers cannot recognize "/>" without that space.

- All elements must be in lowercase.
- Attribute values must be in between double quotes and have a
value.
- All special characters must be converted into entities.
For example:

& should be &amp;.

No comments: