UKOLN AHDS Deployment Of XHTML 1.0



Background

This document describes the current recommended versions of HTML. The advantages of XHTML 1.0 are given together with potential challenges in deploying XHTML 1.0 so that it follows best practices.

Versions Of HTML

HTML has evolved since it was first created, responding to the need to provide richer functionality, maximise its accessibility and allow it to integrate with other architectural developments. The final version of the HTML language is HTML 4.0. This version is mature and widely supported, with a wide range of authoring tools available and support provided in Web browsers.

However HTML has limitation: HTML resources cannot easily be reused; it is difficult to add new features to the HTML language; it is difficult to integrate HTML pages with other markup languages (e.g. MathML for including mathematical expressions, SVG for including scalable vector graphics, etc).

XHTML 1.0

XHTML was developed address these concerns. XHTML is the HTML language described in the XML language. This means that the many advantages of XML (ability to reuse resources using the XSLT language; ability to integrate other XML application, etc.) are available for authors creating conventional Web pages.

In order to support migration from HTML to a richer XHTML world, XHTML has been designed so that it is backwards compatible with the current Web browsers.

Since XHTML 1.0 provides many advantages and can be accessed by current browsers it would seem that use of XHTML 1.0 is recommended. However there are a number of issues which need to be addressed before deploying XHTML 1.0 for your Web site.

Deployment Issues

Compliance

Although HTML pages should comply with the HTML standard, browsers are expected to be tolerant of errors. Unfortunately this has led to an environment in which many HTML resources are non-compliant. This environment makes it difficult to repurpose HTML by other applications. It also makes rendering of HTML resources more time-consuming than it should, since browsers have to identify errors and seek to render them in a sensible way.

The XML language, by contrast, mandates that XML resources comply with the standard. This has several advantages: XML resources will be clean enabling the resources to be more easily reused by other applications; applications will be able to process the resources more rapidly; etc. Since XHTML is an XML application an XHTML resource must be compliant in order for it to be processed as XML.

XHTML 1.0 And MIME Types

Web browsers identify file formats by checking the resource's MIME type. HTML resources use a text/html MIME type. XHTML resources may use this MIME type; however the resources will not be processed as XML, therefore losing the benefits provided by XML. Use of the application/xhtml+xml MIME type allows resources to be processed as XML. This MIME type is therefore recommended if you wish to exploit XML's potential.

Implementation Issues

You should be aware of implementation issues before deploying XHTML 1.0:

Guaranteeing Compliance:
You must ensure that your resources are compliant. Unlike HTML, non-compliant resources should not be processed by XML tools. This may be difficult to achieve if you do not have appropriate tools and processed.
Browser Rendering:
Although use of the application/xhtml+xml MIME type is recommended to maximise the potential of a more structured XML world, this environment is not tolerant of errors. Use of the text/html MIME type will allow non-compliant XHTML resources to be viewed, but exploiting this feature simply perpetuates the problems of a HTML-based Web.
Resource Management:
It is very import that you give thought to the management of a Web site which uses XHTML. You will need to ensure that you have publishing processed which avoids resources becoming non-compliant. You will also need to think about the approaches of allocating MIME types.

Conclusions

Use of XHTML 1.0 and the application/xhtml+xml MIME type provides a richer, more reusable Web environment. However there are challenges to consider in deploying this approach. Before deploying XHTML you must ensure that you have addressed the implementation difficulties.