XHTML
From Wikipedia, the free encyclopedia
| Filename extension | .xhtml, .xht, .html, .htm |
|---|---|
| Internet media type | application/xhtml+xml |
| Developed by | World Wide Web Consortium |
| Type of format | Markup language |
| Extended from | XML, HTML |
| Standard(s) | 1.0 (Recommendation), 1.1 (Recommendation), |
| HTML |
|---|
|
The Extensible Hypertext Markup Language, or XHTML, is a markup language that has the same depth of expression as HTML, but also conforms to XML syntax.
While HTML is an application of Standard Generalized Markup Language (SGML), a very flexible markup language, XHTML is an application of XML, a more restrictive subset of SGML. Because they need to be well-formed, true XHTML documents allow for automated processing to be performed using standard XML tools—unlike HTML, which requires a relatively complex, lenient, and generally custom parser. XHTML can be thought of as the intersection of HTML and XML in many respects, since it is a reformulation of HTML in XML. XHTML 1.0 became a World Wide Web Consortium (W3C) Recommendation on January 26, 2000. XHTML 1.1 became a W3C Recommendation on May 31, 2001.
Contents |
[edit] Overview
XHTML is "a reformulation of the three HTML 4 document types as applications of XML 1.0".[1] The W3C also continues to maintain the HTML 4.01 Recommendation and the specifications for HTML5 and XHTML5 are being actively developed. In the current XHTML 1.0 Recommendation document, as published and revised to August 2002, the W3C comments that, "The XHTML family is the next step in the evolution of the Internet. By migrating to XHTML today, content developers can enter the XML world with all of its attendant benefits, while still remaining confident in their content's backward and future compatibility."[1]
[edit] Motivation
The need for a reformulated version of HTML was felt primarily because World Wide Web content now needs to be delivered to many devices (like mobile devices) apart from traditional desktop computers, where extra resources cannot be devoted to support the additional complexity of HTML syntax.[citation needed] In practice, however, HTML-supporting browsers for such constrained devices have emerged faster than XHTML support has been added to the desktop browser with the largest market share, Internet Explorer.[citation needed]
Another goal for XHTML and XML was to reduce the demands on parsers and user agents in general.[citation needed] With HTML, user agents increasingly took on the burden of "correcting" errant documents. Instead, XML requires user agents to give a "fatal" error when encountering malformed XML. In theory, this allows for vendors to produce leaner browsers, without the obligation to work around author errors. A side effect of this behavior is that those authoring XHTML documents and testing in conformant browsers should be more readily alerted to errors that may have gone otherwise unnoticed if the browser had attempted to render or ignore the malformed markup.
A feature XHTML inherits from its XML underpinnings is XML namespaces.[citation needed] With namespaces, authors or communities of authors can define their own XML elements, attributes and content models to mix within XHTML documents. This is similar to the semantic flexibility of the class attribute in an HTML element, but with fewer restrictions. Some W3C XML namespaces/schema that can be mixed with XHTML include MathML for semantic math markup, Scalable Vector Graphics for markup of vector graphics, and RDFa for embedding RDF data.
[edit] Relationship to HTML
HTML is the antecedent technology to XHTML. The changes from HTML to first-generation XHTML 1.0 are minor and are mainly to achieve conformance with XML. The most important change is the requirement that the document must be well-formed and that all elements must be explicitly closed as required in XML.[citation needed] In XML, all element and attribute names are case-sensitive, so the XHTML approach has been to define all tag names to be lowercase.
This contrasts with some earlier established traditions which began around the time of HTML 2.0, when many used uppercase tags. In XHTML, all attribute values must be enclosed by quotes; either single (') or double (") quotes may be used. In contrast, this was sometimes optional in SGML-based HTML, where numeric or boolean attributes can omit quotes.[citation needed] All elements must also be explicitly closed, including empty (aka singleton) elements such as img and br. This can be done by adding a closing slash to the start tag, e.g., <img /> and <br />. Attribute minimization (e.g., <option selected>) is also prohibited, as the attribute selected contains no explicit value; instead this would be written as <option selected="selected">.
HTML elements which are optional in the content model will not appear in the DOM tree unless they are explicitly specified. For example, an XHTML page must have a <body> element, and a table will not have a <tbody> element unless the author specifies one.
The XHTML 1.0 recommendation devotes a section to differences between HTML and XHTML.[2]. The WHATWG wiki similarly considers differences that arise with the use of (X)HTML5.[3].
Because XHTML and HTML are closely related technologies, sometimes they are written about and documented in parallel. In such circumstances, some authors conflate the two names by using a parenthetical notation, such as (X)HTML. This indicates that the documentation and principles can be considered to apply generally to both standards.[4]
[edit] Adoption
The similarities between HTML 4.01 and XHTML 1.0 led many web sites and content management systems to adopt the initial W3C XHTML 1.0 Recommendation. To aid authors in the transition, the W3C provided guidance on how to publish XHTML 1.0 documents in an HTML-compatible manner, and serve them to browsers that were not designed for XHTML.[5][6]
Such "HTML-compatible" content is sent using the HTML media type (text/html) rather than the official Internet media type for XHTML (application/xhtml+xml). When measuring the adoption of XHTML to that of regular HTML, therefore, it is important to distinguish whether it is media type usage or actual document contents that is being compared.
Most web browsers have mature support[7] for all of the possible XHTML media types.[8] The notable exception is Internet Explorer by Microsoft; rather than rendering application/xhtml+xml content, a dialog box invites the user to save the content to disk instead. Both Internet Explorer 7 (released in 2006) and the initial beta version of Internet Explorer 8 (released in March 2008) exhibit this behaviour, and it is unclear whether this will be resolved in a future release. Whilst this remains the case, most web developers avoid using XHTML that isn’t HTML-compatible[citation needed], so advantages of XML such as namespaces, faster parsing and smaller-footprint browsers do not benefit the user. Microsoft developer Chris Wilson explained in 2005 that IE7’s priorities were improved security and CSS support, and that proper XHTML support would be difficult to graft onto IE’s compatibility-oriented HTML parser.[9]
Recently, notable developers have begun to question why Web authors ever made the leap into authoring in XHTML.[10][11][12] In October 2006, HTML inventor and W3C chair Tim Berners-Lee, explaining the motivation for the resumption of HTML (not XHTML) development, posted in his blog: "The attempt to get the world to switch to XML, including quotes around attribute values and slashes in empty tags and namespaces all at once didn't work. The large HTML-generating public did not move, largely because the browsers didn't complain."[13]
[edit] Versions of XHTML
[edit] XHTML 1.0
The original XHTML W3C Recommendation, XHTML 1.0, was simply a reformulation of HTML 4.01 in XML. There are three different "DTDs" of XHTML 1.0, each equal in scope to their respective HTML 4.01 versions.
- XHTML 1.0 Strict is the same as HTML 4.01 Strict, but it follows XML syntax rules.
- XHTML 1.0 Transitional is the same as HTML 4.01 Transitional, but it follows XML syntax rules. It supports everything found in XHTML 1.0 Strict, but also permits the use of a number of elements and attributes that are judged presentational, in order to ease the transition from HTML 3.2 and earlier. These include
<center>,<u>,<strike>, and<applet>. [1] - XHTML 1.0 Frameset: is the same as HTML 4.01 Frameset, but it follows XML syntax rules. It allows the definition of an HTML frameset—a common practice early in the timeline of the mainstream Web.
[edit] XHTML 1.1
The most recent XHTML Recommendation by the W3C is XHTML 1.1: Module-based XHTML. [14] This is a reformulation of XHTML 1.0 Strict, with minor modifications, using a set of modules selected from a larger set defined in Modularization of XHTML, which itself provides a modularized framework, a standard set of those modules, and various conformance definitions. All deprecated features of HTML, such as presentational elements and framesets, and lang and anchor name attributes, which were still allowed in XHTML 1.0 Strict, have been removed from this revision. Presentation is controlled purely by CSS. This version also allows for ruby markup support, needed for East-Asian languages (especially CJK).
Module-based XHTML adds the concept of a "strictly conforming" document: it must be a complete document containing only elements defined in the modules required by XHTML 1.1. For example, if a document is extended with the predefined XHTML Frames module, or some module formulated by a third-party, it does not qualify as strictly conforming XHTML 1.1 for use on the Web.
As of June 2008, the second edition of XHTML 1.1 has been approved for general use.
[edit] Other members of the XHTML family derived from XHTML 1.1
- XHTML Basic: A special "light" version of XHTML for devices that can not support the larger, richer XHTML dialects, intended for use in handhelds and mobile phones. This is the intended replacement for WML and C-HTML.
- XHTML Mobile Profile: Based on XHTML Basic, this OMA (Open Mobile Alliance) effort targets hand phones specifically by adding mobile phone-specific elements to XHTML Basic. Often written XHTML-MP.
- XHTML+Voice: XHTML combined with Voice XML to support both visual and voice interactions.
[edit] XHTML 2.0
| This article or section contains information about scheduled or expected future software. The content may change as the software release approaches and more information becomes available. |
Work on XHTML 2.0 is, as of 2008, still ongoing. The current XHTML 2.0 Working Draft is controversial because it breaks backward compatibility with aspects of previous versions of HTML and XHTML.
New features brought into the HTML family of markup languages by XHTML 2.0:
- HTML forms will be replaced by XForms, an XML-based user input specification allowing forms to be displayed appropriately for different rendering devices.
- HTML frames will be replaced by XFrames.
- The DOM Events will be replaced by XML Events, which uses the XML Document Object Model.
- A new list element type, the
nlelement type, will be included to specifically designate a list as a navigation list. This will be useful in creating nested menus, which are currently created by a wide variety of means like nested unordered lists or nested definition lists. - Any element will be able to act as a hyperlink, e.g.,
<li href="articles.html">Articles</li>, similar to XLink. However, XLink itself is not compatible with XHTML due to design differences. - Any element will be able to reference alternative media with the
srcattribute, e.g.,<p src="lbridge.jpg" type="image/jpeg">London Bridge</p>is the same as<object src="lbridge.jpg" type="image/jpeg"><p>London Bridge</p></object>. - The
altattribute of theimgelement has been removed: alternative text will be given in the content of theimgelement, much like theobjectelement, e.g.,<img src="hms_audacious.jpg">HMS <em>Audacious</em></img>. - A single heading element (
h) will be added. The level of these headings are determined by the depth of the nesting. This allows the use of headings to be infinite, rather than limiting use to six levels deep. - The remaining presentational elements
i,bandtt, still allowed in XHTML 1.x (even Strict), will be absent from XHTML 2.0. The only somewhat presentational elements remaining will besupandsubfor superscript and subscript respectively, because they have significant non-presentational uses and are required by certain languages. All other tags are meant to be semantic instead (e.g.<strong>for strong or bolded text) while allowing the user agent to control the presentation of elements via CSS. - The addition of RDF triple with the
propertyandaboutattributes to facilitate the conversion from XHTML to RDF/XML.
[edit] HTML 5
| This article or section contains information about scheduled or expected future software. The content may change as the software release approaches and more information becomes available. |
On 2007-04-10, the Mozilla Foundation, Apple and Opera Software proposed[15] that the new HTML working group of the W3C adopt the WHATWG's HTML5 as the starting point of its work and name its future deliverable "HTML5". A month later, the new HTML working group resolved to do that.[16] On 2008-01-22, the working group published HTML 5 as a Working Draft. [17]
The HTML5 draft defines a parallel XML serialization for HTML5. The XML serialization is called XHTML5. Unlike XHTML 2.0, XHTML5 is intended to be compatible with XHTML 1.x.
[edit] Valid XHTML documents
An XHTML document that conforms to an XHTML specification is said to be valid. Validity assures consistency in document code, which in turn eases processing, but does not necessarily ensure consistent rendering by browsers. A document can be checked for validity with the W3C Markup Validation Service. In practice, many web development programs such as Dreamweaver provide code validation based on the W3C standards.
[edit] DOCTYPEs
In order to validate an XHTML document, a Document Type Declaration, or DOCTYPE, may be used. A DOCTYPE declares to the browser which Document Type Definition (DTD) the document conforms to. A Document Type Declaration should be placed before the root element.
The system identifier part of the DOCTYPE, which in these examples is the URL that begins with http://, need only point to a copy of the DTD to use if the validator cannot locate one based on the public identifier (the other quoted string). It does not need to be the specific URL that is in these examples; in fact, authors are encouraged to use local copies of the DTD files when possible. The public identifier, however, must be character-for-character the same as in the examples.
These are the most common XHTML Document Type Declarations:
- XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">- XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">- XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">- XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">- HTML 5
HTML5 does not require a doctype, and HTML 5 validation is not DTD-based.
- XHTML 2.0
XHTML 2.0, As of April 2008, is in a draft phase. If an XHTML 2.0 Recommendation is published with the same document type declaration as in the current Working Draft, the declaration will appear as:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
"http://www.w3.org/MarkUp/DTD/xhtml2.dtd">
A placeholder DTD schema exists at the corresponding URI, though it currently only includes the character reference entities from previous recommendations. XHTML 2 contemplates both a version attribute and an xsi:schemalocation attribute on the root HTML element that could possibly serve as a substitute for any DOCTYPE declaration.
[edit] XML namespaces and schemas
In addition to the DOCTYPE, all XHTML elements must be in the appropriate XML namespace for the version being used. This is usually done by declaring a default namespace on the root element using xmlns="namespace" as in the example below.
For XHTML 1.0, XHTML 1.1 and HTML5, this is
<html xmlns="http://www.w3.org/1999/xhtml">
XHTML 2.0 requires both a namespace and an XML Schema instance declaration. These might be declared as
<html xmlns="http://www.w3.org/2002/06/xhtml2/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2002/06/xhtml2/ http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd">
This example for XHTML 2.0 also demonstrates the use of multiple namespaces within a document. The first xmlns default namespace declaration indicates that elements and attributes whose names have no XML namespace prefix fall within the XHTML 2.0 namespace. The second namespace prefix declaration xmlns:xsi indicates that any elements or attributes prefixed with the xsi: refer to the XMLSchema-Instance namespace. Through this namespace mechanism XML documents allow the use of a mixture of elements and attributes taken from various XML vocabularies while avoiding the potential for clashes of naming between items from independently developed vocabularies.
Similar to the case of DOCTYPE above, the actual URL to the XML Schema file can be changed, as long as the Universal Resource Identifier (URI) before it (which indicates the XHTML 2.0 namespace) remains the same. The namespace URI is intended to be a persistent and universally unique identifier for the particular version of the specification. If treated as a URL, the actual content located at the site is of no significance.
[edit] XML Declaration
A character encoding may be specified at the beginning of an XHTML document in the XML declaration when the document is served using the application/xhtml+xml MIME type. (If an XML document lacks encoding specification, an XML parser assumes that the encoding is UTF-8 or UTF-16, unless the encoding has already been determined by a higher protocol.)
For example:
<?xml version="1.0" encoding="UTF-8"?>
The declaration may be optionally omitted because it declares as its encoding the default encoding. However, if the document instead makes use of XML 1.1 or another character encoding, a declaration is necessary. Internet Explorer prior to version 7 enters quirks mode if it encounters an XML declaration in a document served as text/html.
[edit] Common errors
Some of the most common errors in the usage of XHTML are:
- Failing to realize that documents won’t be treated as XHTML unless they are served with an appropriate XML MIME type
- Not closing empty elements (elements without closing tags in HTML4)
- Incorrect:
<br> - Correct:
<br />
Note that any of these are acceptable in XHTML:<br></br>,<br/>and<br />. Older HTML-only browsers interpreting it as HTML will generally accept<br>and<br />.
- Incorrect:
- Not closing non-empty elements
- Incorrect:
<p>This is a paragraph.<p>This is another paragraph. - Correct:
<p>This is a paragraph.</p><p>This is another paragraph.</p>
- Incorrect:
- Improperly nesting elements (Note that this would also be invalid in HTML)
- Incorrect:
<em><strong>This is some text.</em></strong> - Correct:
<em><strong>This is some text.</strong></em>
- Incorrect:
- Not putting quotation marks around attribute values
- Incorrect:
<td rowspan=3> - Correct:
<td rowspan="3"> - Correct:
<td rowspan='3'>
- Incorrect:
- Using the ampersand character outside of entities
- Incorrect:
<title>Cars & Trucks</title> - Correct:
<title>Cars & Trucks</title>
- Incorrect:
- Using the ampersand outside of entities in URLs (Note that this would also be invalid in HTML)
- Incorrect:
<a href="index.php?page=news&style=5">News</a> - Correct:
<a href="index.php?page=news&style=5">News</a>
- Incorrect:
- Failing to recognize that XHTML elements and attributes are case sensitive
- Incorrect:
<BODY><P ID="ONE">The Best Page Ever</P></BODY> - Correct:
<body><p id="ONE">The Best Page Ever</p></body>
- Incorrect:
- Using attribute minimization
- Incorrect:
<textarea readonly>READ-ONLY</textarea> - Correct:
<textarea readonly="readonly">READ-ONLY</textarea>
- Incorrect:
- Mis-using CDATA, script-comments and xml-comments when embedding scripts and stylesheets.
- This problem can be avoided altogether by putting all script and stylesheet information into separate files and referring to them as follows in the XHTML
headelement.
- This problem can be avoided altogether by putting all script and stylesheet information into separate files and referring to them as follows in the XHTML
<link rel="stylesheet" href="/style/screen.css" type="text/css" /> <script type="text/javascript" src="/script/site.js"></script>
-
- Note: The format
<script …></script>, rather than the more concise<script … />, is required for HTML compatibility when served as MIME typetext/html.
- Note: The format
-
- If an author chooses to include script or style data inline within an XHTML document, different approaches are recommended depending whether the author intends to serve the page as
application/xhtml+xmland target only fully conformant browsers, or serve the page astext/htmland try to obtain usability in Internet Explorer 6 and other non-conformant browsers.
- If an author chooses to include script or style data inline within an XHTML document, different approaches are recommended depending whether the author intends to serve the page as
[edit] Backward compatibility
XHTML 1.x documents are mostly backward compatible with HTML 4 user agents when the appropriate guidelines are followed. XHTML 1.1 is essentially compatible, although the elements for ruby annotiation are not part of the HTML 4 specification and thus generally ignored by HTML 4 browsers. Later XHTML 1.x modules such as those for the role attribute, RDFa and WAI-ARIA degrade gracefully in a similar manner.
HTML 5 and XHTML 2 are significantly less compatible, although this can be mitigated to some degree through the use of scripting. (This can be simple one-liners, such as the use of “document.createElement()” to register a new HTML element within Internet Explorer, or complete JavaScript frameworks, such as the FormFaces implementation of XForms.)
[edit] Examples
The followings are examples of XHTML 1.0 Strict. Both of them have the same visual output. The former one follows the HTML Compatibility Guidelines in Appendix C of the XHTML 1.0 Specification while the latter one breaks backward compatibility but provides cleaner codes.
| Media type | Example 1 | Example 2 |
|---|---|---|
| application/xhtml+xml | SHOULD | SHOULD |
| application/xml | MAY | MAY |
| text/xml | MAY | MAY |
| text/html | MAY | SHOULD NOT |
Example 1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>XHTML 1.0 Example</title> <script type="text/javascript"> <!--//--><![CDATA[//><!-- function loadpdf() { document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; } //--><!]]> </script> </head> <body onload="loadpdf()"> <p>This is an example of an <abbr title="Extensible HyperText Markup Language">XHTML</abbr> 1.0 Strict document.<br /> <img id="validation-icon" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" /><br /> <object id="pdf-object" name="pdf-object" type="application/pdf" data="http://www.w3.org/TR/xhtml1/xhtml1.pdf" width="100%" height="500"> </object> </p> </body> </html>
Example 2.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>XHTML 1.0 Example</title> <script type="application/javascript"> <![CDATA[ function loadpdf() { document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf"; } ]]> </script> </head> <body onload="loadpdf()"> <p>This is an example of an <abbr title="Extensible HyperText Markup Language">XHTML</abbr> 1.0 Strict document.<br/> <img id="validation-icon" src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict"/><br/> <object id="pdf-object" name="pdf-object" type="application/pdf" data="http://www.w3.org/TR/xhtml1/xhtml1.pdf" width="100%" height="500"/> </p> </body> </html>
Notes:
- For further information on the media type recommendation, please refer to XHTML Media Types, a W3C Note issued on 2002-08-01.
- The "loadpdf" function is actually a workaround for Internet Explorer. It can be replaced by adding
<param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf" />within<object>. - The
imgelement does not get anameattribute in the XHTML 1.0 Strict DTD. Useidinstead.
[edit] Notes
- ^ a b http://www.w3.org/TR/xhtml1/#xhtml 'What is XHTML?' section in XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition) A Reformulation of HTML 4 in XML 1.0 W3C Recommendation 26 January 2000, revised 1 August 2002
- ^ XHTML 1.0: The Extensible HyperText Markup Language (Second Edition)
- ^ Html Vs. Xhtml - Whatwg Wiki
- ^ For examples of this, see: http://jigsaw.w3.org/css-validator/ http://www.adobe.com/devnet/dreamweaver/articles/css_best_practices_pt2.html http://www.ukoln.ac.uk/web-focus/papers/www2003/poster-1/dcmeta.doc
- ^ "XHTML 1.0 Specification, Appendix C: HTML Compatibility Guidelines". World Wide Web Consortium (2000-01-26). Retrieved on 2007-06-16.
- ^ "XHTML Media Types, W3C Note". World Wide Web Consortium (2002-08-01). Retrieved on 2008-06-12.
- ^ Early implementations (such as Mozilla 0.7 and Opera 6.0, both released in 2001) do not incrementally render XHTML as it is received over the network, giving a degraded user experience; see the Mozilla Web Author FAQ. Later browsers such as Opera 9.0, Safari 3.0 and Firefox 3.0 do not have this issue.
- ^ XHTML Media Type Tests – Results
- ^ Chris Wilson (2005-09-15). "The <?xml> prolog, strict mode, and XHTML in IE". Retrieved on 2007-06-16. “…If we tried to support real XHTML in IE 7 we would have ended up using our existing HTML parser (which is focused on compatibility) and hacking in XML constructs. It is highly unlikely we could support XHTML well in this way; in particular, we would certainly not detect a few error cases here or there, and we would silently support invalid cases. This would, of course, cause compatibility problems based on parser error handling in the future, which XML is explicitly trying to avoid; we don’t want to cause another mess like the one with current HTML error handling (rooted in compatibility with earlier browsers – you can blame me for that personally somewhat, but not IE). I would much rather take the time to implement XHTML properly after IE 7, and have it be truly interoperable…”
- ^ Ian Hickson, a former developer of the Opera browser and cofounder of the WHATWG (2002-09-08). "Sending XHTML as text/html Considered Harmful". Retrieved on 2007-06-16.
- ^ Anne van Kesteren, a developer of the Opera browser (2004-06-13). "XHTML is invalid HTML". Retrieved on 2007-06-16.
- ^ Maciej Stachowiak, a developer of Apple's Safari browser (2006-09-20). "Understanding HTML, XML and XHTML". Retrieved on 2007-06-16.
- ^ Tim Berners-Lee (2006-10-27). "Reinventing HTML". Retrieved on 2007-06-16.
- ^ XHTML 1.1 - Module-based XHTML
- ^ Proposal to Adopt HTML5 from Maciej Stachowiak on 2007-04-10 (public-html@w3.org from April 2007)
- ^ results of HTML 5 text, editor, name questions from Dan Connolly on 2007-05-09 (public-html@w3.org from May 2007)
- ^ HTML 5
[edit] External links
- W3C's Markup Home Page
- XHTML 1.0 Recommendation
- XHTML 1.1 Recommendation
- XHTML 1.1 Second Edition Working Draft
- XHTML 2.0 Working Draft
- XHTML 1.0 Strict / 1.1 Online Reference
- Links dealing with the MIME type of XHTML documents:
- Beware of XHTML
- Sending XHTML as text/html Considered Harmful
- Serving up XHTML with the correct MIME type
- The Road to XHTML 2.0: MIME Types - Mark Pilgrim (3/19/2003). Includes examples for conditionally serving
application/xhtml+xmlusing PHP, Python, and Apache (mod rewrite). - Mozilla Web Author FAQ: How is the treatment of application/xhtml+xml documents different from the treatment of text/html documents? - summarizes one web browser's XHTML processing mode
- Empty elements in SGML, HTML, XML, and XHTML
- Heptagrama's Basic XHTML 1.0 Strict Tutorial
[edit] Validators
- W3C's Markup Validator
- Firefox page validator Extension to Mozilla Firefox browser
- WDG HTML Validator
- Hermish Web Accessibility Validator
- Off-line HTML Validator A clipbook for NoteTab text editor
- XHTML Validator Module for ASP.NET 2.0
- Validating XML/XHTML Editor
- Multipage Validator
- Total Validator
|
|||||||||||

