The Full Wiki

XHTML: Wikis

  
  
  

Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.

Encyclopedia

From Wikipedia, the free encyclopedia

XHTML
XHTML.svg
Filename extension .xhtml, .xht,
.xml, .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),
1.1 SE (Working Draft),
5 (Working Draft),

2.0 (Working Draft)
HTML
HTML.svg

XHTML (Extensible Hypertext Markup Language) is a family of XML markup languages that mirror or extend versions of the widely used Hypertext Markup Language (HTML), the language in which web pages are written.

While HTML (prior to HTML5) was defined as an application of Standard Generalized Markup Language (SGML), a very flexible markup language framework, XHTML is an application of XML, a more restrictive subset of SGML. Because XHTML documents need to be well-formed, they can be parsed using standard XML parsers—unlike HTML, which requires a lenient HTML-specific parser.

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. XHTML5 is undergoing development as of September 2009, as part of the HTML5 specification.

Contents

Overview

XHTML 1.0 is "a reformulation of the three HTML 4 document types as applications of XML 1.0".[1] The World Wide Web Consortium (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 commented 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]

However, in 2004, the Web Hypertext Application Technology Working Group (WHATWG) formed, independently of the W3C, to work on advancing ordinary HTML not based on XHTML. Most major browser vendors were unwilling to implement the features in new W3C XHTML drafts, and felt that they didn't serve the needs of modern web development.[citation needed] The WHATWG eventually began working on a standard that supported both XML and non-XML serializations, HTML 5, in parallel to W3C standards such as XHTML 2. In 2007, the W3C's HTML working group voted to officially recognize HTML 5 and work on it as the next-generated HTML standard.[2] In 2009, the W3C allowed the XHTML 2 Working Group's charter to expire, acknowledging that HTML 5 would be the sole next-generation HTML standard, including both XML and non-XML serializations.[3]

Motivation

XHTML was developed to make HTML more extensible and increase interoperability with other data formats.[4] HTML 4 was ostensibly an application of Standard Generalized Markup Language (SGML); however the specification for SGML was complex, and neither web browsers nor the HTML 4 Recommendation were fully conformant with it.[5] The XML standard, approved in 1998, provided a simpler data format closer in spirit to HTML 4.[6] By shifting to an XML format, it was hoped HTML would become compatible with common XML tools;[7] servers and proxies would be able to transform content, as necessary, for constrained devices such as mobile phones.[8] By utilizing namespaces, XHTML documents could provide extensibility by including fragments from other XML-based languages such as Scalable Vector Graphics and MathML.[9] Finally, the renewed work would provide an opportunity to divide HTML into reusable components (XHTML Modularization) and clean up untidy parts of the language.[10]

Relationship to HTML

The only essential difference between XHTML and HTML is that XHTML must be well-formed XML, while HTML need not be. (HTML 4 and earlier were nominally SGML, while HTML 5 defines its own parsing model in great detail.) Some examples of differences this imposes in practice are:

  • In HTML, some tags (e.g., <br>) are always empty and may not have closing tags, whereas all elements must be explicitly closed in XHTML. XML permits two ways of writing empty elements: <br/> and <br></br>. In XML these are interchangeable, and either can be used freely for any tag. However, if XHTML content is to be served with the text/html Internet media type to legacy browsers, only the self-closing form should be used for always-empty elements. They should be expressed like <br />, with an extra space that can help parsing by some specific out of date browsers. An explicit closing tag should be used for empty elements that are not always empty (like <script></script>). Without following these rules and recommendations, some browsers will parse empty elements incorrectly.
  • Similarly, HTML permits omitting end tags for some elements, such as <p>. XHTML forbids this.
  • In HTML, almost everything is case-insensitive, while in XML, all element and attribute names are case-sensitive. XHTML requires all element and attribute names to be lowercase, while in HTML documents it's common to find uppercase or even mixed-case names.
  • Various versions of HTML often permit quotes to be omitted from attribute values, e.g., <body lang=en>.[11] In XHTML, all attribute values must be enclosed by quotes, either single or double: <body lang="en"> or <body lang='en'>.
  • HTML permits "attribute minimization", where boolean attributes can have their value omitted entirely, e.g., <option selected>. All XML attributes must have explicit quoted values, so in XML this would be written as <option selected="selected">.
  • Some required elements may be omitted in HTML, in which case they are implicitly added by the parser. For instance, various versions of HTML don't require <html>, <head>, or <body> tags to be present unless they're intended to have attributes. On the other hand, in XML the DOM must be determined without having to know which elements are required, so these tags must be specified explicitly.

In addition to these differences, some specifications define only an HTML serialization or only an XHTML serialization. XHTML 1.0 is roughly just an XML serialization of HTML 4.0, but XHTML 1.1, 1.2, and 2.0 have no HTML serialization, while HTML versions less than 4 have no XML serialization. HTML 5 is the first (X)HTML standard designed to support both HTML and XHTML serializations equally.

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.[12][13]

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[14] for all of the possible XHTML media types.[15] 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 Internet Explorer 8 (released in March 2009) exhibit this behavior, and it is unclear whether this will be resolved in a future release.[16] As long as this remains the case, most web developers avoid using XHTML that isn’t HTML-compatible,[17] 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.[18]

Criticism

In the early 2000s, some web developers began to question why Web authors ever made the leap into authoring in XHTML.[19][20][21] Others countered that the problems ascribed to the use of XHTML could mostly be attributed to two main sources: the production of invalid XHTML documents by some Web authors and the lack of support for XHTML built into Internet Explorer 6.[22][23] They went on to describe the benefits of XML-based Web documents (i.e. XHTML) regarding searching, indexing and parsing as well as future-proofing the Web itself.

In October 2006, HTML inventor and W3C chair Tim Berners-Lee, introducing a major W3C effort to develop new HTML 5 and XHTML 5 specifications, posted in his blog that, "The attempt to get the world to switch to XML … all at once didn't work. The large HTML-generating public did not move … Some large communities did shift and are enjoying the fruits of well-formed systems … The plan is to charter a completely new HTML group."[24] In the current HTML and XHTML 5 working draft, its authors say that, "special attention has been given to defining clear conformance criteria for user agents in an effort to improve interoperability … while at the same time updating the HTML specifications to address issues raised in the past few years." Ian Hickson, author of a paper criticising the improper use of XHTML in 2002,[19] is a member of the group developing this specification and is listed as one of the co-authors of the current working draft.[25]

Simon Pieters researched the XML-compliance of mobile browsers[26] and concluded “the claim that XHTML would be needed for mobile devices is simply a myth”.

Versions of XHTML

XHTML 1.0

Wikipedia uses XHTML 1.0 Transitional

December 1998 saw the publication of a W3C Working Draft entitled Reformulating HTML in XML. This introduced Voyager, the codename for a new markup language based on HTML 4 but adhering to the stricter syntax rules of XML. By February 1999 the specification had changed name to XHTML 1.0: The Extensible HyperText Markup Language, and in January 2000 it was officially adopted as a W3C Recommendation.[27] There are three formal DTDs for XHTML 1.0, corresponding to the three different versions of HTML 4.01:

  • XHTML 1.0 Strict is the XML equivalent to strict HTML 4.01, and includes elements and attributes that have not been marked deprecated in the HTML 4.01 specification.
  • XHTML 1.0 Transitional is the XML equivalent of HTML 4.01 Transitional, and includes the presentational elements (such as center, font and strike) excluded from the strict version.
  • XHTML 1.0 Frameset is the XML equivalent of HTML 4.01 Frameset, and allows for the definition of frameset documents—a common Web feature in the late 1990s.

The second edition of XHTML 1.0 became a W3C Recommendation in August 2002.[28]

Modularization of XHTML

Modularization provides an abstract collection of components through which XHTML can be subsetted and extended. The feature is intended to help XHTML extend its reach onto emerging platforms, such as mobile devices and Web-enabled televisions. The initial draft of Modularization of XHTML became available in April 1999, and reached Recommendation status in April 2001.[29]

The first XHTML Family Markup Languages to be developed with this technique were XHTML 1.1 and XHTML Basic 1.0. Another example is XHTML-Print (W3C Recommendation, September 2006), a language designed for printing from mobile devices to low-cost printers.[30]

In October 2008 Modularization of XHTML was superseded by XHTML Modularization 1.1, which adds an XML Schema implementation.[31]

XHTML 1.1—Module-based XHTML

XHTML 1.1 evolved out of the work surrounding the initial Modularization of XHTML specification. The W3C released a first draft in September 1999; Recommendation status was reached in May 2001.[32] The modules combined within XHTML 1.1 effectively recreate XHTML 1.0 Strict, with the addition of ruby annotation elements (ruby, rbc, rtc, rb, rt and rp) to better support East-Asian languages. Other changes include removal of the lang attribute (in favour of xml:lang), and removal of the name attribute from the a and map elements.

Although XHTML 1.1 is largely compatible with XHTML 1.0 and HTML 4, in August 2002 the HTML WG (renamed to XHTML2 WG since) issued a Working Group Note advising that it should not be transmitted with the HTML media type.[33] With limited browser support for the alternate application/xhtml+xml media type, XHTML 1.1 proved unable to gain widespread use. In January 2009 a second edition of the document (XHTML Media Types - Second Edition, not to be confused with the XHTML 1.1 - 2nd ed) was issued, relaxing this restriction and allowing XHTML 1.1 to be served as text/html.[34]

XHTML 1.1 Second Edition (W3C Proposed Edited Recommendation) was issued on 7 May 2009[35] and rescinded on 19 May 2009[36]. (This does not affect the text/html media type usage for XHTML 1.1 as specified in the: XHTML Media Types - Second Edition)

XHTML Basic and XHTML-MP

To support constrained devices, XHTML Basic was created by the W3C; it reached Recommendation status in December 2000.[37] XHTML Basic 1.0 is the most restrictive version of XHTML, providing a minimal set of features that even the most limited devices can be expected to support.

The Open Mobile Alliance and its predecessor the WAP Forum released three specifications between 2001 and 2006 that extended XHTML Basic 1.0. Known as XHTML Mobile Profile or XHTML-MP, they were strongly focused on uniting the differing markup languages used on mobile handsets at the time. All provide richer form controls than XHTML Basic 1.0, along with varying levels of scripting support.

XHTML Basic 1.1 became a W3C Recommendation in July 2008, superseding XHTML-MP 1.2.[38] XHTML Basic 1.1 is almost but not quite a subset of regular XHTML 1.1. The most notable addition over XHTML 1.1 is the inputmode attribute—also found in XHTML-MP 1.2—which provides hints to help browsers improve form entry.

XHTML 1.2

The XHTML 2 Working Group is considering the creation of a new language based on XHTML 1.1.[39] If XHTML 1.2 is created, it will include WAI-ARIA and role attributes to better support accessible web applications, and improved Semantic Web support through RDFa. The inputmode attribute from XHTML Basic 1.1, along with the target attribute (for specifying frame targets) may also be present. It's important to note that the XHTML2 WG have not yet been chartered to carry out the development of XHTML1.2 and the W3C has announced that it does not intend to recharter the XHTML2 WG[40], this means that the XHTML1.2 proposal may not eventuate.

XHTML 2.0

Between August 2002 and July 2006 the W3C released the first eight Working Drafts of XHTML 2.0, a new version of XHTML able to make a clean break from the past by discarding the requirement of backward compatibility. This lack of compatibility with XHTML 1.x and HTML 4 caused some early controversy in the web developer community.[41] Some parts of the language (such as the role and RDFa attributes) were subsequently split out of the specification and worked on as separate modules, partially to help make the transition from XHTML 1.x to XHTML 2.0 smoother. A ninth draft of XHTML 2.0 was expected to appear in 2009, however, on July 2, 2009, the W3C decided to let the XHTML2 Working Group charter expire by that year's end, effectively halting any further development of the draft into a standard.[40]

New features introduced by XHTML 2.0 include:

  • 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 nl element 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 src attribute, 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 alt attribute of the img element has been removed: alternative text will be given in the content of the img element, much like the object element, e. g., <img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></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, b and tt, still allowed in XHTML 1.x (even Strict), will be absent from XHTML 2.0. The only somewhat presentational elements remaining will be sup and sub for 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 property and about attributes to facilitate the conversion from XHTML to RDF/XML.

HTML5—Vocabulary and APIs for HTML5 and XHTML5

HTML5 initially grew independently of the W3C, through a loose group of browser manufacturers and other interested parties calling themselves the WHATWG, or Web Hypertext Application Technology Working Group. The WHATWG announced the existence of an open mailing list in June 2004, along with a website bearing the strapline “Maintaining and evolving HTML since 2004.”[42] The key motive of the group was to create a platform for dynamic web applications; they considered XHTML 2.0 to be too document-centric, and not suitable for the creation of internet forum sites or online shops.[43]

In April 2007, the Mozilla Foundation and Opera Software joined Apple in requesting that the newly rechartered HTML Working Group of the W3C adopt the work, under the name of HTML 5.[44] The group resolved to do this the following month,[45] and the First Public Working Draft of HTML 5 was issued by the W3C in January 2008. The most recent W3C Working Draft was published in June 2008.[25]

HTML5 has both a regular text/html serialization and an XML serialization, which is known as XHTML5. In addition to the markup language, the specification includes a number of application programming interfaces. The Document Object Model is extended with APIs for editing, drag-and-drop, data storage and network communication.

The language is more compatible with HTML 4 and XHTML 1.x than XHTML 2.0, due to the decision to keep the existing HTML form elements and events model. It adds many new elements not found in XHTML 1.x, however, such as section and aside. (The XHTML 1.2 equivalent (which (X)HTML5 replaces) of these structural elements would be <div role="region"> and <div role="complementary">.)

As of 2009-09-03, the latest editor’s draft includes WAI-ARIA support.

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 provide code validation based on the W3C standards.

Root element

The root element of an XHTML document must be html, and must contain an xmlns attribute to associate it with the XHTML namespace. The namespace URI for XHTML is http://www.w3.org/1999/xhtml. The example tag below additionally features an xml:lang attribute to identify the document with a natural language:

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

DOCTYPEs

In order to validate an XHTML document, a Document Type Declaration, or DOCTYPE, may be used. A DOCTYPE declares to the browser the Document Type Definition (DTD) to which the document conforms. 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.

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.

Common errors

Some of the most common errors in the usage of XHTML are:

  • Not closing empty elements (elements without closing tags in HTML4)
    • Incorrect: <br>
    • Correct: <br />
      Note that any of these is acceptable in XHTML: <br></br>, <br/>, and <br />. Older HTML-only browsers interpreting it as HTML will generally accept <br> and <br />.
  • 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>
  • 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>
  • Not putting quotation marks around attribute values
    • Incorrect: <td rowspan=3>
    • Incorrect: <td rowspan='3">
    • Correct: <td rowspan="3">
    • Correct: <td rowspan='3'>
  • Using the ampersand character outside of entities (Note that this would also be invalid in HTML)
    • Incorrect: <title>Cars & Trucks</title>
    • Correct: <title>Cars &amp; Trucks</title>
    • Incorrect: <a href="index.php?page=news&id=5">News</a>
    • Correct: <a href="index.php?page=news&amp;id=5">News</a>
  • Failing to recognize that XHTML elements and attributes are case sensitive
    • Incorrect: <BODY><P id="wikipedia_ONE">The Best Page Ever</P></BODY>
    • Correct: <body><p id="wikipedia_ONE">The Best Page Ever</p></body>
  • Using attribute minimization
    • Incorrect: <textarea readonly>READ-ONLY</textarea>
    • Correct: <textarea readonly="readonly">READ-ONLY</textarea>
  • Misusing 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 head element.
 <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 type text/html.
  • If an author chooses to include script or style data inline within an XHTML document, different approaches are recommended as shown in the examples below, depending whether the author intends to serve the page as application/xhtml+xml and target only fully conformant browsers, or serve the page as text/html and try to obtain usability in Internet Explorer 6 and other non-conformant browsers.

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 annotation 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.

XHTML 2 is 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.)

Examples

The following are examples of XHTML 1.0 Strict, with both having the same visual output. The former one follows the HTML Compatibility Guidelines of the XHTML Media Types Note while the latter one breaks backward compatibility, but provides cleaner markup.[34]

Media type recommendation for the examples:
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"
    type="application/pdf"
    data="http://www.w3.org/TR/xhtml1/xhtml1.pdf"
    width="100%"
    height="500"/>
 </p>
 </body>
</html>

Notes:

  1. 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>.
  2. The img element does not get a name attribute in the XHTML 1.0 Strict DTD. Use id instead.

See also

Notes

  1. ^ a b "XHTML 1.0 Specification, Section 1: What is XHTML?". World Wide Web Consortium. 2000-01-26. http://www.w3.org/TR/xhtml1/#xhtml. Retrieved 2007-06-16. 
  2. ^ "results of HTML 5 text, editor, name questions"
  3. ^ "Frequently Asked Questions (FAQ) about the future of XHTML"
  4. ^ "XHTML 1.0 Specification, Section 1.1: Why the need for XHTML?". World Wide Web Consortium. 2000-01-26. http://www.w3.org/TR/xhtml1/#why. Retrieved 2007-06-16. 
  5. ^ Arjun Ray (1999-10-06). "Dropping the Normative Reference to SGML (was: I-D ACTION.)". http://markmail.org/message/drvncr3f6yscveeg. Retrieved 2008-12-29. "… However, since ISO 8879 does not afford applications the leeway to prohibit internal subsets, it follows that the letter of the HTML [4] spec automatically disentitles it to be a conforming SGML application…" 
  6. ^ Tina Holmboe (2008-10-06). "XHTML—Myths and Reality". The Developer’s Archive. http://www.dev-archive.net/articles/xhtml.html. Retrieved 2008-12-29. "… Since the design goals of XML itself partially mirrored those of the original HTML, it was logical for work to begin on formulating an XML–based markup language…" 
  7. ^ Kip Hampton (2001-01-10). "Creating Web Utilities Using XML::XPath". XML.com. http://www.xml.com/pub/a/2000/01/10/perlwebtools.html. Retrieved 2008-12-29. "… The problem: You want to take advantage of the power and simplicity that XML tools can offer, but you face a site full of aging HTML documents. The solution: Convert your documents to XHTML and put Perl and XML::XPath to work…" 
  8. ^ Jean-Luc David (2004-04-14). "Developing Wireless Content using XHTML Mobile". XML.com. http://www.xml.com/pub/a/2004/04/14/mobile.html. Retrieved 2008-12-29. "… A useful feature of XHTML is that it can be manipulated as XML. Extensible Stylesheet Language Templates can be used to transform XHTML into WML or any other proprietary mobile formats…" 
  9. ^ "Namespaces Crash Course". Mozilla Developer Center. https://developer.mozilla.org/En/SVG:Namespaces_Crash_Course. Retrieved 2008-12-29. "… It has been a long standing goal of the W3C to make it possible for different types of XML based content to be mixed together in the same XML file. For example, SVG and MathML might be incorporated directly into an XHTML based scientific document…" 
  10. ^ Steven Pemberton (2004-07-21). "HTML and XHTML Frequently Answered Questions". World Wide Web Consortium. http://www.w3.org/MarkUp/2004/xhtml-faq. Retrieved 2008-12-29. "… with an XML-based HTML other XML languages could include bits of XHTML, and XHTML documents could include bits of other markup languages. We could also take advantage of the redesign to clean up some of the more untidy parts of HTML, and add some new needed functionality, like better forms…" 
  11. ^ HTML 4.01 specification, section 3.2.2
  12. ^ "XHTML 1.0 Specification, Appendix C: HTML Compatibility Guidelines". World Wide Web Consortium. 2000-01-26. http://www.w3.org/TR/xhtml1/#guidelines. Retrieved 2007-06-16. 
  13. ^ "XHTML Media Types, W3C Working Group Note". World Wide Web Consortium. 2002-08-01. http://www.w3.org/TR/xhtml-media-types. Retrieved 2008-06-12. 
  14. ^ 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.
  15. ^ XHTML Media Type Tests – Results
  16. ^ Chris Wilson (2005-09-15). "The <?xml> prolog, strict mode, and XHTML in IE". http://blogs.msdn.com/ie/archive/2005/09/15/467901.aspx. Retrieved 2007-06-16. "I’ve also been reading comments for some time in the IEBlog asking for support for the “application/xml+xhtml” MIME type in IE. I should say that IE7 will not add support for this MIME type – we will, of course, continue to read XHTML when served as “text/html”, presuming it follows the HTML compatibility recommendations." 
  17. ^ "List of XHTML Sites (the X-Philes)". http://www.goer.org/Markup/TheXPhiles/. Retrieved 2008-08-26. 
  18. ^ Chris Wilson (2005-09-15). "The <?xml> prolog, strict mode, and XHTML in IE". http://blogs.msdn.com/ie/archive/2005/09/15/467901.aspx. Retrieved 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…" 
  19. ^ a b Ian Hickson, a former developer of the Opera browser and cofounder of the WHATWG (2002-09-08). "Sending XHTML as text/html Considered Harmful". http://www.hixie.ch/advocacy/xhtml. Retrieved 2007-06-16. 
  20. ^ Anne van Kesteren, a developer of the Opera browser (2004-06-13). "XHTML is invalid HTML". http://annevankesteren.nl/2004/06/invalid-html. Retrieved 2007-06-16. 
  21. ^ Maciej Stachowiak, a developer of Apple's Safari browser (2006-09-20). "Understanding HTML, XML and XHTML". http://webkit.org/blog/?p=68. Retrieved 2007-06-16. 
  22. ^ Brad Fults (2005-12-21). "Sending XHTML as text/html Considered Harmful to Feelings". http://h3h.net/2005/12/xhtml-harmful-to-feelings/. Retrieved 2008-09-13. "There are not nearly as many disadvantages (if any) to sending XHTML as text/html as [Ian Hickson] claims and the advantages I mentioned above make it well worth using in my humble opinion. There are some subtle footnotes and parentheticals [in Hickson's article] indicating that the harmfulness only applies to authors that don’t know the pitfalls of this practice, but much like the “Do not eat” label on the little packets of silica gel, Ian’s advisory seems to be common sense and not worth mentioning to any author who actually knows what XHTML is and how to write it." 
  23. ^ Paul McDonald (2007-06-30). "The case for XHTML". http://www.layouts4free.com/articles/view-article/49/3/0/. Retrieved 2008-09-13. "Some people say XHTML on the web has failed, but I say it is our biggest success in the fight for Web Standards. … XHTML is a good thing for the web, though, and it's a shame that people are trying to make a case against it. To prove this, I'll flesh out the myth for you and then show you why XHTML is the best thing since sliced bread, when it comes to our fight for Web Standards. … So to conclude, sending XHTML as text/html causes no damage or harm anywhere today, as long as your XHTML does validate. And, if you want Web Standards to become more and more wide-spread, stick to using XHTML and validate your pages." 
  24. ^ Tim Berners-Lee (2006-10-27). "Reinventing HTML". http://dig.csail.mit.edu/breadcrumbs/node/166. Retrieved 2007-06-16. "Some things are clearer with hindsight of several years. It is necessary to evolve HTML incrementally. 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. Some large communities did shift and are enjoying the fruits of well-formed systems, but not all. It is important to maintain HTML incrementally, as well as continuing a transition to [a] well-formed world, and developing more power in that world.
    "The plan is to charter a completely new HTML group. Unlike the previous one, this one will be chartered to do incremental improvements to HTML, as also in parallel xHTML. It will have a different chair and staff contact. It will work on HTML and xHTML together. We have strong support for this group, from many people we have talked to, including browser makers."
     
  25. ^ a b Ian Hickson and David Hyatt (2008-06-10). "HTML 5: A vocabulary and associated APIs for HTML and XHTML - W3C Working Draft 10 June 2008". http://www.w3.org/TR/2008/WD-html5-20080610/. Retrieved 2008-09-13. 
  26. ^ Simon Pieters. "Results of mobile tests". http://simon.html5.org/articles/mobile-results. Retrieved 2009-10-31. 
  27. ^ "XHTML 1.0: The Extensible HyperText Markup Language, W3C Recommendation 26 January 2000". World Wide Web Consortium. 2000-01-26. http://www.w3.org/TR/2000/REC-xhtml1-20000126. Retrieved 2008-07-19. 
  28. ^ "XHTML 1.0 The Extensible HyperText Markup Language (Second Edition)". World Wide Web Consortium. 2002-08-01. http://www.w3.org/TR/2002/REC-xhtml1-20020801. Retrieved 2008-07-19. 
  29. ^ "Modularization of XHTML, W3C Recommendation 10 April 2001". World Wide Web Consortium. 2001-04-10. http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410. Retrieved 2008-07-19. 
  30. ^ "XHTML-Print, W3C Recommendation 20 September 2006". World Wide Web Consortium. 2006-09-20. http://www.w3.org/TR/2006/REC-xhtml-print-20060920/. Retrieved 2008-07-19. 
  31. ^ "XHTML Modularization 1.1, W3C Recommendation 8 October 2008". World Wide Web Consortium. 2008-10-08. http://www.w3.org/TR/2008/REC-xhtml-modularization-20081008. Retrieved 2008-10-08. 
  32. ^ "XHTML 1.1 - Module-based XHTML, W3C Recommendation 31 May 2001". World Wide Web Consortium. 2001-05-31. http://www.w3.org/TR/2001/REC-xhtml11-20010531. Retrieved 2008-07-19. 
  33. ^ "XHTML Media Types, W3C Working Group Note 1 August 2002". World Wide Web Consortium. 2002-08-01. http://www.w3.org/TR/2002/NOTE-xhtml-media-types-20020801. Retrieved 2008-07-19. 
  34. ^ a b "XHTML Media Types - Second Edition, W3C Working Group Note 16 January 2009". World Wide Web Consortium. 2009-01-28. http://www.w3.org/TR/2009/NOTE-xhtml-media-types-20090116. Retrieved 2009-01-28.  This document supersedes the HTML Compatibility Guidelines originally found in XHTML 1.0 Appendix C.
  35. ^ "XHTML 1.1 - Module-based XHTML - Second Edition". World Wide Web Consortium. 2009-05-07. http://www.w3.org/TR/2009/PER-xhtml11-20090507/. Retrieved 2009-05-25. 
  36. ^ "W3C Rescinds Four Proposed Edited Recommendations for XHTML Documents". World Wide Web Consortium. 2009-05-19. http://www.w3.org/News/2009#item79. Retrieved 2009-05-25. 
  37. ^ "XHTML Basic, W3C Recommendation 19 December 2000". World Wide Web Consortium. 2000-12-19. http://www.w3.org/TR/2000/REC-xhtml-basic-20001219. Retrieved 2008-07-19. 
  38. ^ "XHTML Basic 1.1, W3C Recommendation 29 July 2008". World Wide Web Consortium. 2008-07-29. http://www.w3.org/TR/2008/REC-xhtml-basic-20080729. Retrieved 2008-07-29. 
  39. ^ [XHTML] Agenda: 2008-07-09 from Roland Merrick on 2008-07-09 (public-xhtml2@w3.org from July 2008)
  40. ^ a b XHTML FAQ
  41. ^ See both XHTML 2.0 Considered Harmful and XHTML 2.0 Considered Hopeful by browser developer Tantek Çelik, who criticises early drafts of XHTML 2.0 for the absence of the style attribute and the cite element. Developer Daniel Glazman offers similar criticism, but also shows support for some backward-incompatible changes such as the decision to remove the ins and del elements.
  42. ^ WHAT open mailing list announcement
  43. ^ Ian Hickson (2008-01-22). "HTML 5, 1.1.2. Relationship to XHTML2". World Wide Web Consortium. http://www.w3.org/TR/2008/WD-html5-20080122/#relationship0. Retrieved 2008-07-19. "… XHTML2… defines a new HTML vocabulary with better features for hyperlinks, multimedia content, annotating document edits, rich metadata, declarative interactive forms, and describing the semantics of human literary works such as poems and scientific papers… However, it lacks elements to express the semantics of many of the non-document types of content often seen on the Web. For instance, forum sites, auction sites, search engines, online shops, and the like, do not fit the document metaphor well, and are not covered by XHTML2… This specification aims to extend HTML so that it is also suitable in these contexts…" 
  44. ^ Proposal to Adopt HTML 5
  45. ^ results of HTML5 text, editor, name questions

External links


Study guide

Up to date as of January 14, 2010

From Wikiversity

The XHTML module is a stub. You can help Wikiversity by expanding it.

See also

Wikipedia-logo.png Run a search on XHTML at Wikipedia.

Wiktionary

Up to date as of January 15, 2010

Definition from Wiktionary, a free dictionary

Contents

English

Initialism

Wikipedia-logo.png
Wikipedia has an article on:

Wikipedia

XHTML

  1. Extensible Hypertext Markup Language; a reformulation of HTML as an XML application.

Related terms

See also


French

Initialism

XHTML

  1. XHTML

Wikibooks

Up to date as of January 23, 2010

From Wikibooks, the open-content textbooks collection

Welcome to the XHTML tutorial here at Wikibooks!

Programming XHTML

Other Resources


Simple English

XHTML stands for Extensible Hypertext Transfer Markup Language. It is code used to design websites and webpages.

XHTML is much more strict than ordinary HTML, and is based on both XML and HTML. Due to the lax nature of HTML, different web browsers can sometimes display websites incorrectly since there is more than one way to interpret poorly written HTML. The strict and formal nature of XHTML, once fully adopted will allow for web browsers to display the same page correctly between them. Proper XHTML is also easier to read for humans.

For example, the below code shows one of the differences between HTML and XHTML:

Incorrect, HTML version:

Correct, XHTML version:

The line break tag in HTML does not have a closing tag, you just type it once and it creates a line break. In XHTML the rule is that tags that do not have an closing tag must close themselves within the initial tag. These tags are called "empty tags." Another empty tag is <hr /> which inserts a "horizontal rule" or dividing line.

JavaScript Differences

In XHTML, using innerHTML is not "allowed". XHTML also should not be used together with the JavaScript document.write command.








Got something to say? Make a comment.
Your name
Your email address
Message