1*7c568831SAndroid Build Coastguard Worker<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "dtds/xhtml1-strict.dtd"> 2*7c568831SAndroid Build Coastguard Worker<?xml-stylesheet href="W3C-PR.css" type="text/css"?> 3*7c568831SAndroid Build Coastguard Worker<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> 4*7c568831SAndroid Build Coastguard Worker<head> 5*7c568831SAndroid Build Coastguard Worker<title>XHTML 1.0: The Extensible HyperText Markup 6*7c568831SAndroid Build Coastguard WorkerLanguage</title> 7*7c568831SAndroid Build Coastguard Worker<link rel="stylesheet" 8*7c568831SAndroid Build Coastguard Workerhref="W3C-PR.css" type="text/css" /> 9*7c568831SAndroid Build Coastguard Worker<style type="text/css"> 10*7c568831SAndroid Build Coastguard Workerspan.term { font-style: italic; color: rgb(0, 0, 192) } 11*7c568831SAndroid Build Coastguard Workercode { 12*7c568831SAndroid Build Coastguard Worker color: green; 13*7c568831SAndroid Build Coastguard Worker font-family: monospace; 14*7c568831SAndroid Build Coastguard Worker font-weight: bold; 15*7c568831SAndroid Build Coastguard Worker} 16*7c568831SAndroid Build Coastguard Worker 17*7c568831SAndroid Build Coastguard Workercode.greenmono { 18*7c568831SAndroid Build Coastguard Worker color: green; 19*7c568831SAndroid Build Coastguard Worker font-family: monospace; 20*7c568831SAndroid Build Coastguard Worker font-weight: bold; 21*7c568831SAndroid Build Coastguard Worker} 22*7c568831SAndroid Build Coastguard Worker.good { 23*7c568831SAndroid Build Coastguard Worker border: solid green; 24*7c568831SAndroid Build Coastguard Worker border-width: 2px; 25*7c568831SAndroid Build Coastguard Worker color: green; 26*7c568831SAndroid Build Coastguard Worker font-weight: bold; 27*7c568831SAndroid Build Coastguard Worker margin-right: 5%; 28*7c568831SAndroid Build Coastguard Worker margin-left: 0; 29*7c568831SAndroid Build Coastguard Worker} 30*7c568831SAndroid Build Coastguard Worker.bad { 31*7c568831SAndroid Build Coastguard Worker border: solid red; 32*7c568831SAndroid Build Coastguard Worker border-width: 2px; 33*7c568831SAndroid Build Coastguard Worker margin-left: 0; 34*7c568831SAndroid Build Coastguard Worker margin-right: 5%; 35*7c568831SAndroid Build Coastguard Worker color: rgb(192, 101, 101); 36*7c568831SAndroid Build Coastguard Worker} 37*7c568831SAndroid Build Coastguard Worker 38*7c568831SAndroid Build Coastguard Workerimg { 39*7c568831SAndroid Build Coastguard Worker color: white; 40*7c568831SAndroid Build Coastguard Worker border: none; 41*7c568831SAndroid Build Coastguard Worker} 42*7c568831SAndroid Build Coastguard Worker 43*7c568831SAndroid Build Coastguard Workerdiv.navbar { text-align: center; } 44*7c568831SAndroid Build Coastguard Workerdiv.contents { 45*7c568831SAndroid Build Coastguard Worker background-color: rgb(204,204,255); 46*7c568831SAndroid Build Coastguard Worker padding: 0.5em; 47*7c568831SAndroid Build Coastguard Worker border: none; 48*7c568831SAndroid Build Coastguard Worker margin-right: 5%; 49*7c568831SAndroid Build Coastguard Worker} 50*7c568831SAndroid Build Coastguard Worker.tocline { list-style: none; } 51*7c568831SAndroid Build Coastguard Workertable.exceptions { background-color: rgb(255,255,153); } 52*7c568831SAndroid Build Coastguard Worker</style> 53*7c568831SAndroid Build Coastguard Worker</head> 54*7c568831SAndroid Build Coastguard Worker<body> 55*7c568831SAndroid Build Coastguard Worker<div class="navbar"> 56*7c568831SAndroid Build Coastguard Worker <a href="#toc">table of contents</a> 57*7c568831SAndroid Build Coastguard Worker <hr /> 58*7c568831SAndroid Build Coastguard Worker</div> 59*7c568831SAndroid Build Coastguard Worker<div class="head"><p><a href="http://www.w3.org/"><img class="head" 60*7c568831SAndroid Build Coastguard Workersrc="w3c_home.gif" alt="W3C" /></a></p> 61*7c568831SAndroid Build Coastguard Worker 62*7c568831SAndroid Build Coastguard Worker<h1 class="head"><a name="title" id="title">XHTML</a><sup>™</sup> 1.0: 63*7c568831SAndroid Build Coastguard WorkerThe Extensible HyperText Markup Language</h1> 64*7c568831SAndroid Build Coastguard Worker 65*7c568831SAndroid Build Coastguard Worker<h2>A Reformulation of HTML 4.0 in XML 1.0</h2> 66*7c568831SAndroid Build Coastguard Worker 67*7c568831SAndroid Build Coastguard Worker<h3>W3C Proposed Recommendation 10 December 1999</h3> 68*7c568831SAndroid Build Coastguard Worker 69*7c568831SAndroid Build Coastguard Worker<dl> 70*7c568831SAndroid Build Coastguard Worker<dt>This version:</dt> 71*7c568831SAndroid Build Coastguard Worker 72*7c568831SAndroid Build Coastguard Worker<dd><a href= 73*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/TR/1999/PR-xhtml1-19991210"> 74*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/1999/PR-xhtml1-19991210</a> <br /> 75*7c568831SAndroid Build Coastguard Worker(<a href="xhtml1.ps">Postscript version</a>, 76*7c568831SAndroid Build Coastguard Worker<a href="xhtml1.pdf">PDF version</a>, 77*7c568831SAndroid Build Coastguard Worker<a href="xhtml1.zip">ZIP archive</a>, or 78*7c568831SAndroid Build Coastguard Worker<a href="xhtml1.tgz">Gzip'd TAR archive</a>) 79*7c568831SAndroid Build Coastguard Worker</dd> 80*7c568831SAndroid Build Coastguard Worker 81*7c568831SAndroid Build Coastguard Worker<dt>Latest version:</dt> 82*7c568831SAndroid Build Coastguard Worker 83*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.w3.org/TR/xhtml1"> 84*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/xhtml1</a></dd> 85*7c568831SAndroid Build Coastguard Worker 86*7c568831SAndroid Build Coastguard Worker<dt>Previous versions:</dt> 87*7c568831SAndroid Build Coastguard Worker 88*7c568831SAndroid Build Coastguard Worker<dd><a href= 89*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/TR/1999/WD-xhtml1-19991124"> 90*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/1999/WD-xhtml1-19991124</a></dd> 91*7c568831SAndroid Build Coastguard Worker<dd><a href= 92*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/TR/1999/PR-xhtml1-19990824"> 93*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/1999/PR-xhtml1-19990824</a></dd> 94*7c568831SAndroid Build Coastguard Worker 95*7c568831SAndroid Build Coastguard Worker<dt>Authors:</dt> 96*7c568831SAndroid Build Coastguard Worker 97*7c568831SAndroid Build Coastguard Worker<dd>See <a href="#acks">acknowledgements</a>.</dd> 98*7c568831SAndroid Build Coastguard Worker</dl> 99*7c568831SAndroid Build Coastguard Worker 100*7c568831SAndroid Build Coastguard Worker<p class="copyright"><a href= 101*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"> 102*7c568831SAndroid Build Coastguard WorkerCopyright</a> © 1999 <a href="http://www.w3.org/">W3C</a><sup>®</sup> 103*7c568831SAndroid Build Coastguard Worker(<a href="http://www.lcs.mit.edu/">MIT</a>, <a href= 104*7c568831SAndroid Build Coastguard Worker"http://www.inria.fr/">INRIA</a>, <a href= 105*7c568831SAndroid Build Coastguard Worker"http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. <abbr 106*7c568831SAndroid Build Coastguard Workertitle="World Wide Web Consortium">W3C</abbr> <a 107*7c568831SAndroid Build Coastguard Workerhref= 108*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer"> 109*7c568831SAndroid Build Coastguard Workerliability</a>, <a href= 110*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks"> 111*7c568831SAndroid Build Coastguard Workertrademark</a>, <a href= 112*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/Consortium/Legal/copyright-documents">document 113*7c568831SAndroid Build Coastguard Workeruse</a> and <a href= 114*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/Consortium/Legal/copyright-software">software 115*7c568831SAndroid Build Coastguard Workerlicensing</a> rules apply.</p> 116*7c568831SAndroid Build Coastguard Worker<hr /> 117*7c568831SAndroid Build Coastguard Worker</div> 118*7c568831SAndroid Build Coastguard Worker 119*7c568831SAndroid Build Coastguard Worker<h2 class="notoc">Abstract</h2> 120*7c568831SAndroid Build Coastguard Worker 121*7c568831SAndroid Build Coastguard Worker<p>This specification defines <abbr title="Extensible Hypertext Markup 122*7c568831SAndroid Build Coastguard WorkerLanguage">XHTML</abbr> 1.0, a reformulation of HTML 123*7c568831SAndroid Build Coastguard Worker4.0 as an XML 1.0 application, and three <abbr title="Document Type 124*7c568831SAndroid Build Coastguard WorkerDefinition">DTDs</abbr> corresponding to 125*7c568831SAndroid Build Coastguard Workerthe ones defined by HTML 4.0. The semantics of the elements and 126*7c568831SAndroid Build Coastguard Workertheir attributes are defined in the W3C Recommendation for HTML 127*7c568831SAndroid Build Coastguard Worker4.0. These semantics provide the foundation for future 128*7c568831SAndroid Build Coastguard Workerextensibility of XHTML. Compatibility with existing HTML user 129*7c568831SAndroid Build Coastguard Workeragents is possible by following a small set of guidelines.</p> 130*7c568831SAndroid Build Coastguard Worker 131*7c568831SAndroid Build Coastguard Worker<h2>Status of this document</h2> 132*7c568831SAndroid Build Coastguard Worker 133*7c568831SAndroid Build Coastguard Worker<p><em>This section describes the status of this document at the time 134*7c568831SAndroid Build Coastguard Workerof its publication. Other documents may supersede this document. The 135*7c568831SAndroid Build Coastguard Workerlatest status of this document series is maintained at the W3C.</em></p> 136*7c568831SAndroid Build Coastguard Worker 137*7c568831SAndroid Build Coastguard Worker<p>This specification is a Proposed Recommendation of the HTML Working Group. It is 138*7c568831SAndroid Build Coastguard Workera revision of the Proposed Recommendation dated <a 139*7c568831SAndroid Build Coastguard Workerhref= "http://www.w3.org/TR/1999/PR-xhtml1-19990824/">24 August 140*7c568831SAndroid Build Coastguard Worker1999</a> incorporating changes as a result of comments from the Proposed 141*7c568831SAndroid Build Coastguard WorkerRecommendation review, and 142*7c568831SAndroid Build Coastguard Workercomments and further deliberations of the W3C HTML Working Group. A 143*7c568831SAndroid Build Coastguard Worker<a href="xhtml1-diff-19991210.html">diff-marked version</a> from the previous 144*7c568831SAndroid Build Coastguard Workerproposed recommendation is available for comparison purposes.</p> 145*7c568831SAndroid Build Coastguard Worker 146*7c568831SAndroid Build Coastguard Worker<p>On 10 December 1999, this document enters a 147*7c568831SAndroid Build Coastguard Worker<a href="http://www.w3.org/Consortium/Process/#RecsPR"> 148*7c568831SAndroid Build Coastguard WorkerProposed Recommendation</a> review period. From that date until 8 January 149*7c568831SAndroid Build Coastguard Worker2000, 150*7c568831SAndroid Build Coastguard WorkerW3C Advisory Committee representatives are encouraged 151*7c568831SAndroid Build Coastguard Workerto review this specification and return comments in their completed 152*7c568831SAndroid Build Coastguard Workerballots to [email protected]. Please send any comments of a 153*7c568831SAndroid Build Coastguard Workerconfidential nature in separate email to [email protected], which is 154*7c568831SAndroid Build Coastguard Workervisible to the Team only.</p> 155*7c568831SAndroid Build Coastguard Worker 156*7c568831SAndroid Build Coastguard Worker<p>No sooner than 14 days after the end of the review period, the 157*7c568831SAndroid Build Coastguard WorkerDirector will announce the document's disposition: it may become a W3C 158*7c568831SAndroid Build Coastguard WorkerRecommendation (possibly with minor changes), it may revert to Working 159*7c568831SAndroid Build Coastguard WorkerDraft status, or it may be dropped as a W3C work item.</p> 160*7c568831SAndroid Build Coastguard Worker 161*7c568831SAndroid Build Coastguard Worker<p>Publication as a Proposed Recommendation does not imply endorsement 162*7c568831SAndroid Build Coastguard Workerby the W3C membership. This is still a draft document and may be 163*7c568831SAndroid Build Coastguard Workerupdated, replaced or obsoleted by other documents at any time. It is 164*7c568831SAndroid Build Coastguard Workerinappropriate to cite W3C Proposed Recommendation as other than "work 165*7c568831SAndroid Build Coastguard Workerin progress."</p> 166*7c568831SAndroid Build Coastguard Worker 167*7c568831SAndroid Build Coastguard Worker<p>This document has been produced as part of the <a href= 168*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/MarkUp/">W3C HTML Activity</a>. The goals of 169*7c568831SAndroid Build Coastguard Workerthe <a href="http://www.w3.org/MarkUp/Group/">HTML Working 170*7c568831SAndroid Build Coastguard WorkerGroup</a> <i>(<a href="http://cgi.w3.org/MemberAccess/">members 171*7c568831SAndroid Build Coastguard Workeronly</a>)</i> are discussed in the <a href= 172*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/MarkUp/Group/HTMLcharter">HTML Working Group 173*7c568831SAndroid Build Coastguard Workercharter</a> <i>(<a href="http://cgi.w3.org/MemberAccess/">members 174*7c568831SAndroid Build Coastguard Workeronly</a>)</i>.</p> 175*7c568831SAndroid Build Coastguard Worker 176*7c568831SAndroid Build Coastguard Worker<p>A list of current W3C Recommendations and other technical documents 177*7c568831SAndroid Build Coastguard Workercan be found at <a 178*7c568831SAndroid Build Coastguard Workerhref="http://www.w3.org/TR">http://www.w3.org/TR</a>.</p> 179*7c568831SAndroid Build Coastguard Worker 180*7c568831SAndroid Build Coastguard Worker<p>Public discussion on <abbr title="HyperText Markup 181*7c568831SAndroid Build Coastguard WorkerLanguage">HTML</abbr> features takes place on the mailing list <a 182*7c568831SAndroid Build Coastguard Workerhref="mailto:[email protected]"> [email protected]</a> (<a href= 183*7c568831SAndroid Build Coastguard Worker"http://lists.w3.org/Archives/Public/www-html/">archive</a>). The W3C 184*7c568831SAndroid Build Coastguard Workerstaff contact for work on HTML is <a href= "mailto:[email protected]">Dave 185*7c568831SAndroid Build Coastguard WorkerRaggett</a>.</p> 186*7c568831SAndroid Build Coastguard Worker 187*7c568831SAndroid Build Coastguard Worker<p>Please report errors in this document to <a 188*7c568831SAndroid Build Coastguard Workerhref="mailto:[email protected]">[email protected]</a>.</p> 189*7c568831SAndroid Build Coastguard Worker 190*7c568831SAndroid Build Coastguard Worker<p>The list of known errors in this specification is available at <a 191*7c568831SAndroid Build Coastguard Workerhref="http://www.w3.org/1999/12/PR-xhtml1-19991210-errata">http://www.w3.org/1999/12/PR-xhtml1-19991210-errata</a>.</p> 192*7c568831SAndroid Build Coastguard Worker 193*7c568831SAndroid Build Coastguard Worker<h2 class="notoc"><a id="toc" name="toc">Contents</a></h2> 194*7c568831SAndroid Build Coastguard Worker 195*7c568831SAndroid Build Coastguard Worker<div class="contents"> 196*7c568831SAndroid Build Coastguard Worker<ul class="toc"> 197*7c568831SAndroid Build Coastguard Worker<li class="tocline">1. <a href="#xhtml">What is XHTML?</a> 198*7c568831SAndroid Build Coastguard Worker 199*7c568831SAndroid Build Coastguard Worker<ul class="toc"> 200*7c568831SAndroid Build Coastguard Worker<li class="tocline">1.1 <a href="#html4">What is HTML 4.0?</a></li> 201*7c568831SAndroid Build Coastguard Worker 202*7c568831SAndroid Build Coastguard Worker<li class="tocline">1.2 <a href="#xml">What is XML?</a></li> 203*7c568831SAndroid Build Coastguard Worker 204*7c568831SAndroid Build Coastguard Worker<li class="tocline">1.3 <a href="#why">Why the need for XHTML?</a></li> 205*7c568831SAndroid Build Coastguard Worker</ul> 206*7c568831SAndroid Build Coastguard Worker</li> 207*7c568831SAndroid Build Coastguard Worker 208*7c568831SAndroid Build Coastguard Worker<li class="tocline">2. <a href="#defs">Definitions</a> 209*7c568831SAndroid Build Coastguard Worker 210*7c568831SAndroid Build Coastguard Worker<ul class="toc"> 211*7c568831SAndroid Build Coastguard Worker<li class="tocline">2.1 <a href="#terms">Terminology</a></li> 212*7c568831SAndroid Build Coastguard Worker 213*7c568831SAndroid Build Coastguard Worker<li class="tocline">2.2 <a href="#general">General Terms</a></li> 214*7c568831SAndroid Build Coastguard Worker</ul> 215*7c568831SAndroid Build Coastguard Worker</li> 216*7c568831SAndroid Build Coastguard Worker 217*7c568831SAndroid Build Coastguard Worker<li class="tocline">3. <a href="#normative">Normative Definition of XHTML 1.0</a> 218*7c568831SAndroid Build Coastguard Worker 219*7c568831SAndroid Build Coastguard Worker 220*7c568831SAndroid Build Coastguard Worker<ul class="toc"> 221*7c568831SAndroid Build Coastguard Worker<li class="tocline">3.1 <a href="#docconf">Document Conformance</a></li> 222*7c568831SAndroid Build Coastguard Worker 223*7c568831SAndroid Build Coastguard Worker<li class="tocline">3.2 <a href="#uaconf">User Agent Conformance</a></li> 224*7c568831SAndroid Build Coastguard Worker</ul> 225*7c568831SAndroid Build Coastguard Worker</li> 226*7c568831SAndroid Build Coastguard Worker 227*7c568831SAndroid Build Coastguard Worker<li class="tocline">4. <a href="#diffs">Differences with HTML 4.0</a> 228*7c568831SAndroid Build Coastguard Worker 229*7c568831SAndroid Build Coastguard Worker</li> 230*7c568831SAndroid Build Coastguard Worker 231*7c568831SAndroid Build Coastguard Worker<li class="tocline">5. <a href="#issues">Compatibility Issues</a> 232*7c568831SAndroid Build Coastguard Worker 233*7c568831SAndroid Build Coastguard Worker<ul class="toc"> 234*7c568831SAndroid Build Coastguard Worker<li class="tocline">5.1 <a href="#media">Internet Media Types</a></li> 235*7c568831SAndroid Build Coastguard Worker</ul> 236*7c568831SAndroid Build Coastguard Worker</li> 237*7c568831SAndroid Build Coastguard Worker 238*7c568831SAndroid Build Coastguard Worker<li class="tocline">6. <a href="#future">Future Directions</a> 239*7c568831SAndroid Build Coastguard Worker 240*7c568831SAndroid Build Coastguard Worker<ul class="toc"> 241*7c568831SAndroid Build Coastguard Worker<li class="tocline">6.1 <a href="#mods">Modularizing HTML</a></li> 242*7c568831SAndroid Build Coastguard Worker 243*7c568831SAndroid Build Coastguard Worker<li class="tocline">6.2 <a href="#extensions">Subsets and Extensibility</a></li> 244*7c568831SAndroid Build Coastguard Worker 245*7c568831SAndroid Build Coastguard Worker<li class="tocline">6.3 <a href="#profiles">Document Profiles</a></li> 246*7c568831SAndroid Build Coastguard Worker</ul> 247*7c568831SAndroid Build Coastguard Worker</li> 248*7c568831SAndroid Build Coastguard Worker 249*7c568831SAndroid Build Coastguard Worker<li class="tocline"><a href="#dtds">Appendix A. DTDs</a></li> 250*7c568831SAndroid Build Coastguard Worker 251*7c568831SAndroid Build Coastguard Worker<li class="tocline"><a href="#prohibitions">Appendix B. Element 252*7c568831SAndroid Build Coastguard WorkerProhibitions</a></li> 253*7c568831SAndroid Build Coastguard Worker 254*7c568831SAndroid Build Coastguard Worker<li class="tocline"><a href="#guidelines">Appendix C. HTML Compatibility Guidelines</a></li> 255*7c568831SAndroid Build Coastguard Worker 256*7c568831SAndroid Build Coastguard Worker<li class="tocline"><a href="#acks">Appendix D. Acknowledgements</a></li> 257*7c568831SAndroid Build Coastguard Worker 258*7c568831SAndroid Build Coastguard Worker<li class="tocline"><a href="#refs">Appendix E. References</a></li> 259*7c568831SAndroid Build Coastguard Worker</ul> 260*7c568831SAndroid Build Coastguard Worker</div> 261*7c568831SAndroid Build Coastguard Worker 262*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 263*7c568831SAndroid Build Coastguard Worker<h1><a name="xhtml" id="xhtml">1. What is XHTML?</a></h1> 264*7c568831SAndroid Build Coastguard Worker 265*7c568831SAndroid Build Coastguard Worker<p>XHTML is a family of current and future document types and modules that 266*7c568831SAndroid Build Coastguard Workerreproduce, subset, and extend HTML 4.0 <a href="#ref-html4">[HTML]</a>. XHTML family document types are <abbr title="Extensible Markup Language">XML</abbr> based, 267*7c568831SAndroid Build Coastguard Workerand ultimately are designed to work in conjunction with XML-based user agents. 268*7c568831SAndroid Build Coastguard WorkerThe details of this family and its evolution are 269*7c568831SAndroid Build Coastguard Workerdiscussed in more detail in the section on <a href="#future">Future 270*7c568831SAndroid Build Coastguard WorkerDirections</a>. </p> 271*7c568831SAndroid Build Coastguard Worker 272*7c568831SAndroid Build Coastguard Worker<p>XHTML 1.0 (this specification) is the first document type in the XHTML 273*7c568831SAndroid Build Coastguard Workerfamily. It is a reformulation of the three HTML 4.0 document types as 274*7c568831SAndroid Build Coastguard Workerapplications of XML 1.0 <a href="#ref-xml"> [XML]</a>. It is intended 275*7c568831SAndroid Build Coastguard Workerto be used as a language for content that is both XML-conforming and, if some 276*7c568831SAndroid Build Coastguard Workersimple <a href="#guidelines">guidelines</a> are followed, 277*7c568831SAndroid Build Coastguard Workeroperates in HTML 4.0 conforming user agents. Developers who migrate 278*7c568831SAndroid Build Coastguard Workertheir content to XHTML 1.0 will realize the following benefits:</p> 279*7c568831SAndroid Build Coastguard Worker 280*7c568831SAndroid Build Coastguard Worker<ul> 281*7c568831SAndroid Build Coastguard Worker<li>XHTML documents are XML conforming. As such, they are readily viewed, 282*7c568831SAndroid Build Coastguard Workeredited, and validated with standard XML tools.</li> 283*7c568831SAndroid Build Coastguard Worker<li>XHTML documents can be written to 284*7c568831SAndroid Build Coastguard Workerto operate as well or better than they did before in existing 285*7c568831SAndroid Build Coastguard WorkerHTML 4.0-conforming user agents as well as in new, XHTML 1.0 conforming user 286*7c568831SAndroid Build Coastguard Workeragents.</li> 287*7c568831SAndroid Build Coastguard Worker<li>XHTML documents can utilize applications (e.g. scripts and applets) that rely 288*7c568831SAndroid Build Coastguard Workerupon either the HTML Document Object Model or the XML Document Object Model <a 289*7c568831SAndroid Build Coastguard Workerhref="#ref-dom">[DOM]</a>.</li> 290*7c568831SAndroid Build Coastguard Worker<li>As the XHTML family evolves, documents conforming to XHTML 1.0 will be more 291*7c568831SAndroid Build Coastguard Workerlikely to interoperate within and among various XHTML environments.</li> 292*7c568831SAndroid Build Coastguard Worker</ul> 293*7c568831SAndroid Build Coastguard Worker 294*7c568831SAndroid Build Coastguard Worker<p>The XHTML family is the next step in the evolution of the Internet. By 295*7c568831SAndroid Build Coastguard Workermigrating to XHTML today, content developers can enter the XML world with all 296*7c568831SAndroid Build Coastguard Workerof its attendant benefits, while still remaining confident in their 297*7c568831SAndroid Build Coastguard Workercontent's backward and future compatibility.</p> 298*7c568831SAndroid Build Coastguard Worker 299*7c568831SAndroid Build Coastguard Worker<h2><a name="html4" id="html4">1.1 What is HTML 4.0?</a></h2> 300*7c568831SAndroid Build Coastguard Worker 301*7c568831SAndroid Build Coastguard Worker<p>HTML 4.0 <a href="#ref-html4">[HTML]</a> is an <abbr title="Standard 302*7c568831SAndroid Build Coastguard WorkerGeneralized Markup Language">SGML</abbr> (Standard 303*7c568831SAndroid Build Coastguard WorkerGeneralized Markup Language) application conforming to 304*7c568831SAndroid Build Coastguard WorkerInternational Standard <abbr title="Organization for International 305*7c568831SAndroid Build Coastguard WorkerStandardization">ISO</abbr> 8879, and is widely regarded as the 306*7c568831SAndroid Build Coastguard Workerstandard publishing language of the World Wide Web.</p> 307*7c568831SAndroid Build Coastguard Worker 308*7c568831SAndroid Build Coastguard Worker<p>SGML is a language for describing markup languages, 309*7c568831SAndroid Build Coastguard Workerparticularly those used in electronic document exchange, document 310*7c568831SAndroid Build Coastguard Workermanagement, and document publishing. HTML is an example of a 311*7c568831SAndroid Build Coastguard Workerlanguage defined in SGML.</p> 312*7c568831SAndroid Build Coastguard Worker 313*7c568831SAndroid Build Coastguard Worker<p>SGML has been around since the middle 1980's and has remained 314*7c568831SAndroid Build Coastguard Workerquite stable. Much of this stability stems from the fact that the 315*7c568831SAndroid Build Coastguard Workerlanguage is both feature-rich and flexible. This flexibility, 316*7c568831SAndroid Build Coastguard Workerhowever, comes at a price, and that price is a level of 317*7c568831SAndroid Build Coastguard Workercomplexity that has inhibited its adoption in a diversity of 318*7c568831SAndroid Build Coastguard Workerenvironments, including the World Wide Web.</p> 319*7c568831SAndroid Build Coastguard Worker 320*7c568831SAndroid Build Coastguard Worker<p>HTML, as originally conceived, was to be a language for the 321*7c568831SAndroid Build Coastguard Workerexchange of scientific and other technical documents, suitable 322*7c568831SAndroid Build Coastguard Workerfor use by non-document specialists. HTML addressed the problem 323*7c568831SAndroid Build Coastguard Workerof SGML complexity by specifying a small set of structural and 324*7c568831SAndroid Build Coastguard Workersemantic tags suitable for authoring relatively simple documents. 325*7c568831SAndroid Build Coastguard WorkerIn addition to simplifying the document structure, HTML added 326*7c568831SAndroid Build Coastguard Workersupport for hypertext. Multimedia capabilities were added 327*7c568831SAndroid Build Coastguard Workerlater.</p> 328*7c568831SAndroid Build Coastguard Worker 329*7c568831SAndroid Build Coastguard Worker<p>In a remarkably short space of time, HTML became wildly 330*7c568831SAndroid Build Coastguard Workerpopular and rapidly outgrew its original purpose. Since HTML's 331*7c568831SAndroid Build Coastguard Workerinception, there has been rapid invention of new elements for use 332*7c568831SAndroid Build Coastguard Workerwithin HTML (as a standard) and for adapting HTML to vertical, 333*7c568831SAndroid Build Coastguard Workerhighly specialized, markets. This plethora of new elements has 334*7c568831SAndroid Build Coastguard Workerled to compatibility problems for documents across different 335*7c568831SAndroid Build Coastguard Workerplatforms.</p> 336*7c568831SAndroid Build Coastguard Worker 337*7c568831SAndroid Build Coastguard Worker<p>As the heterogeneity of both software and platforms rapidly 338*7c568831SAndroid Build Coastguard Workerproliferate, it is clear that the suitability of 'classic' HTML 339*7c568831SAndroid Build Coastguard Worker4.0 for use on these platforms is somewhat limited.</p> 340*7c568831SAndroid Build Coastguard Worker 341*7c568831SAndroid Build Coastguard Worker<h2><a name="xml" id="xml">1.2 What is XML?</a></h2> 342*7c568831SAndroid Build Coastguard Worker 343*7c568831SAndroid Build Coastguard Worker<p>XML<sup>™</sup> is the shorthand for Extensible Markup 344*7c568831SAndroid Build Coastguard WorkerLanguage, and is an acronym of Extensible Markup Language <a 345*7c568831SAndroid Build Coastguard Workerhref="#ref-xml">[XML]</a>.</p> 346*7c568831SAndroid Build Coastguard Worker 347*7c568831SAndroid Build Coastguard Worker<p>XML was conceived as a means of regaining the power and 348*7c568831SAndroid Build Coastguard Workerflexibility of SGML without most of its complexity. Although a 349*7c568831SAndroid Build Coastguard Workerrestricted form of SGML, XML nonetheless preserves most of SGML's 350*7c568831SAndroid Build Coastguard Workerpower and richness, and yet still retains all of SGML's commonly 351*7c568831SAndroid Build Coastguard Workerused features.</p> 352*7c568831SAndroid Build Coastguard Worker 353*7c568831SAndroid Build Coastguard Worker<p>While retaining these beneficial features, XML removes many of 354*7c568831SAndroid Build Coastguard Workerthe more complex features of SGML that make the authoring and 355*7c568831SAndroid Build Coastguard Workerdesign of suitable software both difficult and costly.</p> 356*7c568831SAndroid Build Coastguard Worker 357*7c568831SAndroid Build Coastguard Worker<h2><a name="why" id="why">1.3 Why the need for XHTML?</a></h2> 358*7c568831SAndroid Build Coastguard Worker 359*7c568831SAndroid Build Coastguard Worker<p>The benefits of migrating to XHTML 1.0 are described above. Some of the 360*7c568831SAndroid Build Coastguard Workerbenefits of migrating to XHTML in general are:</p> 361*7c568831SAndroid Build Coastguard Worker 362*7c568831SAndroid Build Coastguard Worker<ul> 363*7c568831SAndroid Build Coastguard Worker<li>Document developers and user agent designers are constantly 364*7c568831SAndroid Build Coastguard Workerdiscovering new ways to express their ideas through new markup. In XML, it is 365*7c568831SAndroid Build Coastguard Workerrelatively easy to introduce new elements or additional element 366*7c568831SAndroid Build Coastguard Workerattributes. The XHTML family is designed to accommodate these extensions 367*7c568831SAndroid Build Coastguard Workerthrough XHTML modules and techniques for developing new XHTML-conforming 368*7c568831SAndroid Build Coastguard Workermodules (described in the forthcoming XHTML Modularization specification). 369*7c568831SAndroid Build Coastguard WorkerThese modules will permit the combination of existing and 370*7c568831SAndroid Build Coastguard Workernew feature sets when developing content and when designing new user 371*7c568831SAndroid Build Coastguard Workeragents.</li> 372*7c568831SAndroid Build Coastguard Worker 373*7c568831SAndroid Build Coastguard Worker<li>Alternate ways of accessing the Internet are constantly being 374*7c568831SAndroid Build Coastguard Workerintroduced. Some estimates indicate that by the year 2002, 75% of 375*7c568831SAndroid Build Coastguard WorkerInternet document viewing will be carried out on these alternate 376*7c568831SAndroid Build Coastguard Workerplatforms. The XHTML family is designed with general user agent 377*7c568831SAndroid Build Coastguard Workerinteroperability in mind. Through a new user agent and document profiling 378*7c568831SAndroid Build Coastguard Workermechanism, servers, proxies, and user agents will be able to perform 379*7c568831SAndroid Build Coastguard Workerbest effort content transformation. Ultimately, it will be possible to 380*7c568831SAndroid Build Coastguard Workerdevelop XHTML-conforming content that is usable by any XHTML-conforming 381*7c568831SAndroid Build Coastguard Workeruser agent.</li> 382*7c568831SAndroid Build Coastguard Worker 383*7c568831SAndroid Build Coastguard Worker</ul> 384*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 385*7c568831SAndroid Build Coastguard Worker<h1><a name="defs" id="defs">2. Definitions</a></h1> 386*7c568831SAndroid Build Coastguard Worker 387*7c568831SAndroid Build Coastguard Worker<h2><a name="terms" id="terms">2.1 Terminology</a></h2> 388*7c568831SAndroid Build Coastguard Worker 389*7c568831SAndroid Build Coastguard Worker<p>The following terms are used in this specification. These 390*7c568831SAndroid Build Coastguard Workerterms extend the definitions in <a href="#ref-rfc2119"> 391*7c568831SAndroid Build Coastguard Worker[RFC2119]</a> in ways based upon similar definitions in ISO/<abbr 392*7c568831SAndroid Build Coastguard Workertitle="International Electro-technical Commission">IEC</abbr> 393*7c568831SAndroid Build Coastguard Worker9945-1:1990 <a href="#ref-posix">[POSIX.1]</a>:</p> 394*7c568831SAndroid Build Coastguard Worker 395*7c568831SAndroid Build Coastguard Worker<dl> 396*7c568831SAndroid Build Coastguard Worker<dt>Implementation-defined</dt> 397*7c568831SAndroid Build Coastguard Worker 398*7c568831SAndroid Build Coastguard Worker<dd>A value or behavior is implementation-defined when it is left 399*7c568831SAndroid Build Coastguard Workerto the implementation to define [and document] the corresponding 400*7c568831SAndroid Build Coastguard Workerrequirements for correct document construction.</dd> 401*7c568831SAndroid Build Coastguard Worker 402*7c568831SAndroid Build Coastguard Worker<dt>May</dt> 403*7c568831SAndroid Build Coastguard Worker 404*7c568831SAndroid Build Coastguard Worker<dd>With respect to implementations, the word "may" is to be 405*7c568831SAndroid Build Coastguard Workerinterpreted as an optional feature that is not required in this 406*7c568831SAndroid Build Coastguard Workerspecification but can be provided. With respect to <a href= 407*7c568831SAndroid Build Coastguard Worker"#docconf">Document Conformance</a>, the word "may" means that 408*7c568831SAndroid Build Coastguard Workerthe optional feature must not be used. The term "optional" has 409*7c568831SAndroid Build Coastguard Workerthe same definition as "may".</dd> 410*7c568831SAndroid Build Coastguard Worker 411*7c568831SAndroid Build Coastguard Worker<dt>Must</dt> 412*7c568831SAndroid Build Coastguard Worker 413*7c568831SAndroid Build Coastguard Worker<dd>In this specification, the word "must" is to be interpreted 414*7c568831SAndroid Build Coastguard Workeras a mandatory requirement on the implementation or on Strictly 415*7c568831SAndroid Build Coastguard WorkerConforming XHTML Documents, depending upon the context. The term 416*7c568831SAndroid Build Coastguard Worker"shall" has the same definition as "must".</dd> 417*7c568831SAndroid Build Coastguard Worker 418*7c568831SAndroid Build Coastguard Worker<dt>Reserved</dt> 419*7c568831SAndroid Build Coastguard Worker 420*7c568831SAndroid Build Coastguard Worker<dd>A value or behavior is unspecified, but it is not allowed to 421*7c568831SAndroid Build Coastguard Workerbe used by Conforming Documents nor to be supported by a 422*7c568831SAndroid Build Coastguard WorkerConforming User Agents.</dd> 423*7c568831SAndroid Build Coastguard Worker 424*7c568831SAndroid Build Coastguard Worker<dt>Should</dt> 425*7c568831SAndroid Build Coastguard Worker 426*7c568831SAndroid Build Coastguard Worker<dd>With respect to implementations, the word "should" is to be 427*7c568831SAndroid Build Coastguard Workerinterpreted as an implementation recommendation, but not a 428*7c568831SAndroid Build Coastguard Workerrequirement. With respect to documents, the word "should" is to 429*7c568831SAndroid Build Coastguard Workerbe interpreted as recommended programming practice for documents 430*7c568831SAndroid Build Coastguard Workerand a requirement for Strictly Conforming XHTML Documents.</dd> 431*7c568831SAndroid Build Coastguard Worker 432*7c568831SAndroid Build Coastguard Worker<dt>Supported</dt> 433*7c568831SAndroid Build Coastguard Worker 434*7c568831SAndroid Build Coastguard Worker<dd>Certain facilities in this specification are optional. If a 435*7c568831SAndroid Build Coastguard Workerfacility is supported, it behaves as specified by this 436*7c568831SAndroid Build Coastguard Workerspecification.</dd> 437*7c568831SAndroid Build Coastguard Worker 438*7c568831SAndroid Build Coastguard Worker<dt>Unspecified</dt> 439*7c568831SAndroid Build Coastguard Worker 440*7c568831SAndroid Build Coastguard Worker<dd>When a value or behavior is unspecified, the specification 441*7c568831SAndroid Build Coastguard Workerdefines no portability requirements for a facility on an 442*7c568831SAndroid Build Coastguard Workerimplementation even when faced with a document that uses the 443*7c568831SAndroid Build Coastguard Workerfacility. A document that requires specific behavior in such an 444*7c568831SAndroid Build Coastguard Workerinstance, rather than tolerating any behavior when using that 445*7c568831SAndroid Build Coastguard Workerfacility, is not a Strictly Conforming XHTML Document.</dd> 446*7c568831SAndroid Build Coastguard Worker</dl> 447*7c568831SAndroid Build Coastguard Worker 448*7c568831SAndroid Build Coastguard Worker<h2><a name="general" id="general">2.2 General Terms</a></h2> 449*7c568831SAndroid Build Coastguard Worker 450*7c568831SAndroid Build Coastguard Worker<dl> 451*7c568831SAndroid Build Coastguard Worker<dt>Attribute</dt> 452*7c568831SAndroid Build Coastguard Worker 453*7c568831SAndroid Build Coastguard Worker<dd>An attribute is a parameter to an element declared in the 454*7c568831SAndroid Build Coastguard WorkerDTD. An attribute's type and value range, including a possible 455*7c568831SAndroid Build Coastguard Workerdefault value, are defined in the DTD.</dd> 456*7c568831SAndroid Build Coastguard Worker 457*7c568831SAndroid Build Coastguard Worker<dt>DTD</dt> 458*7c568831SAndroid Build Coastguard Worker 459*7c568831SAndroid Build Coastguard Worker<dd>A DTD, or document type definition, is a collection of XML 460*7c568831SAndroid Build Coastguard Workerdeclarations that, as a collection, defines the legal structure, 461*7c568831SAndroid Build Coastguard Worker<span class="term">elements</span>, and <span class="term"> 462*7c568831SAndroid Build Coastguard Workerattributes</span> that are available for use in a document that 463*7c568831SAndroid Build Coastguard Workercomplies to the DTD.</dd> 464*7c568831SAndroid Build Coastguard Worker 465*7c568831SAndroid Build Coastguard Worker<dt>Document</dt> 466*7c568831SAndroid Build Coastguard Worker 467*7c568831SAndroid Build Coastguard Worker<dd>A document is a stream of data that, after being combined 468*7c568831SAndroid Build Coastguard Workerwith any other streams it references, is structured such that it 469*7c568831SAndroid Build Coastguard Workerholds information contained within <span class="term"> 470*7c568831SAndroid Build Coastguard Workerelements</span> that are organized as defined in the associated 471*7c568831SAndroid Build Coastguard Worker<span class="term">DTD</span>. See <a href="#docconf">Document 472*7c568831SAndroid Build Coastguard WorkerConformance</a> for more information.</dd> 473*7c568831SAndroid Build Coastguard Worker 474*7c568831SAndroid Build Coastguard Worker<dt>Element</dt> 475*7c568831SAndroid Build Coastguard Worker 476*7c568831SAndroid Build Coastguard Worker<dd>An element is a document structuring unit declared in the 477*7c568831SAndroid Build Coastguard Worker<span class="term">DTD</span>. The element's content model is 478*7c568831SAndroid Build Coastguard Workerdefined in the <span class="term">DTD</span>, and additional 479*7c568831SAndroid Build Coastguard Workersemantics may be defined in the prose description of the 480*7c568831SAndroid Build Coastguard Workerelement.</dd> 481*7c568831SAndroid Build Coastguard Worker 482*7c568831SAndroid Build Coastguard Worker<dt><a name="facilities" id="facilities">Facilities</a></dt> 483*7c568831SAndroid Build Coastguard Worker 484*7c568831SAndroid Build Coastguard Worker<dd>Functionality includes <span class="term">elements</span>, 485*7c568831SAndroid Build Coastguard Worker<span class="term">attributes</span>, and the semantics 486*7c568831SAndroid Build Coastguard Workerassociated with those <span class="term">elements</span> and 487*7c568831SAndroid Build Coastguard Worker<span class="term">attributes</span>. An implementation 488*7c568831SAndroid Build Coastguard Workersupporting that functionality is said to provide the necessary 489*7c568831SAndroid Build Coastguard Workerfacilities.</dd> 490*7c568831SAndroid Build Coastguard Worker 491*7c568831SAndroid Build Coastguard Worker<dt>Implementation</dt> 492*7c568831SAndroid Build Coastguard Worker 493*7c568831SAndroid Build Coastguard Worker<dd>An implementation is a system that provides collection of 494*7c568831SAndroid Build Coastguard Worker<span class="term">facilities</span> and services that supports 495*7c568831SAndroid Build Coastguard Workerthis specification. See <a href="#uaconf">User Agent 496*7c568831SAndroid Build Coastguard WorkerConformance</a> for more information.</dd> 497*7c568831SAndroid Build Coastguard Worker 498*7c568831SAndroid Build Coastguard Worker<dt>Parsing</dt> 499*7c568831SAndroid Build Coastguard Worker 500*7c568831SAndroid Build Coastguard Worker<dd>Parsing is the act whereby a <span class="term"> 501*7c568831SAndroid Build Coastguard Workerdocument</span> is scanned, and the information contained within 502*7c568831SAndroid Build Coastguard Workerthe <span class="term">document</span> is filtered into the 503*7c568831SAndroid Build Coastguard Workercontext of the <span class="term">elements</span> in which the 504*7c568831SAndroid Build Coastguard Workerinformation is structured.</dd> 505*7c568831SAndroid Build Coastguard Worker 506*7c568831SAndroid Build Coastguard Worker<dt>Rendering</dt> 507*7c568831SAndroid Build Coastguard Worker 508*7c568831SAndroid Build Coastguard Worker<dd>Rendering is the act whereby the information in a <span 509*7c568831SAndroid Build Coastguard Workerclass="term">document</span> is presented. This presentation is 510*7c568831SAndroid Build Coastguard Workerdone in the form most appropriate to the environment (e.g. 511*7c568831SAndroid Build Coastguard Workeraurally, visually, in print).</dd> 512*7c568831SAndroid Build Coastguard Worker 513*7c568831SAndroid Build Coastguard Worker<dt>User Agent</dt> 514*7c568831SAndroid Build Coastguard Worker 515*7c568831SAndroid Build Coastguard Worker<dd>A user agent is an <span class="term">implementation</span> 516*7c568831SAndroid Build Coastguard Workerthat retrieves and processes XHTML documents. See <a href= 517*7c568831SAndroid Build Coastguard Worker"#uaconf">User Agent Conformance</a> for more information.</dd> 518*7c568831SAndroid Build Coastguard Worker 519*7c568831SAndroid Build Coastguard Worker<dt>Validation</dt> 520*7c568831SAndroid Build Coastguard Worker 521*7c568831SAndroid Build Coastguard Worker<dd>Validation is a process whereby <span class="term"> 522*7c568831SAndroid Build Coastguard Workerdocuments</span> are verified against the associated <span class= 523*7c568831SAndroid Build Coastguard Worker"term">DTD</span>, ensuring that the structure, use of <span 524*7c568831SAndroid Build Coastguard Workerclass="term">elements</span>, and use of <span class="term"> 525*7c568831SAndroid Build Coastguard Workerattributes</span> are consistent with the definitions in the 526*7c568831SAndroid Build Coastguard Worker<span class="term">DTD</span>.</dd> 527*7c568831SAndroid Build Coastguard Worker 528*7c568831SAndroid Build Coastguard Worker<dt><a name="wellformed" id="wellformed">Well-formed</a></dt> 529*7c568831SAndroid Build Coastguard Worker 530*7c568831SAndroid Build Coastguard Worker<dd>A <span class="term">document</span> is well-formed when it 531*7c568831SAndroid Build Coastguard Workeris structured according to the rules defined in <a href= 532*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/TR/REC-xml#sec-well-formed">Section 2.1</a> of 533*7c568831SAndroid Build Coastguard Workerthe XML 1.0 Recommendation <a href="#ref-xml">[XML]</a>. 534*7c568831SAndroid Build Coastguard WorkerBasically, this definition states that elements, delimited by 535*7c568831SAndroid Build Coastguard Workertheir start and end tags, are nested properly within one 536*7c568831SAndroid Build Coastguard Workeranother.</dd> 537*7c568831SAndroid Build Coastguard Worker</dl> 538*7c568831SAndroid Build Coastguard Worker 539*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 540*7c568831SAndroid Build Coastguard Worker<h1><a name="normative" id="normative">3. Normative Definition of 541*7c568831SAndroid Build Coastguard WorkerXHTML 1.0</a></h1> 542*7c568831SAndroid Build Coastguard Worker 543*7c568831SAndroid Build Coastguard Worker<h2><a name="docconf" id="docconf">3.1 Document 544*7c568831SAndroid Build Coastguard WorkerConformance</a></h2> 545*7c568831SAndroid Build Coastguard Worker 546*7c568831SAndroid Build Coastguard Worker<p>This version of XHTML provides a definition of strictly 547*7c568831SAndroid Build Coastguard Workerconforming XHTML documents, which are restricted to tags and 548*7c568831SAndroid Build Coastguard Workerattributes from the XHTML namespace. See <a href= 549*7c568831SAndroid Build Coastguard Worker"#well-formed">Section 3.1.2</a> for information on using XHTML 550*7c568831SAndroid Build Coastguard Workerwith other namespaces, for instance, to include metadata 551*7c568831SAndroid Build Coastguard Workerexpressed in <abbr title="Resource Description Format">RDF</abbr> within XHTML documents.</p> 552*7c568831SAndroid Build Coastguard Worker 553*7c568831SAndroid Build Coastguard Worker<h3><a name="strict" id="strict">3.1.1 Strictly Conforming 554*7c568831SAndroid Build Coastguard WorkerDocuments</a></h3> 555*7c568831SAndroid Build Coastguard Worker 556*7c568831SAndroid Build Coastguard Worker<p>A Strictly Conforming XHTML Document is a document that 557*7c568831SAndroid Build Coastguard Workerrequires only the facilities described as mandatory in this 558*7c568831SAndroid Build Coastguard Workerspecification. Such a document must meet all of the following 559*7c568831SAndroid Build Coastguard Workercriteria:</p> 560*7c568831SAndroid Build Coastguard Worker 561*7c568831SAndroid Build Coastguard Worker<ol> 562*7c568831SAndroid Build Coastguard Worker<li> 563*7c568831SAndroid Build Coastguard Worker<p>It must validate against one of the three DTDs found in <a 564*7c568831SAndroid Build Coastguard Workerhref="#dtds">Appendix A</a>.</p> 565*7c568831SAndroid Build Coastguard Worker</li> 566*7c568831SAndroid Build Coastguard Worker 567*7c568831SAndroid Build Coastguard Worker<li> 568*7c568831SAndroid Build Coastguard Worker<p>The root element of the document must be <code> 569*7c568831SAndroid Build Coastguard Worker<html></code>.</p> 570*7c568831SAndroid Build Coastguard Worker</li> 571*7c568831SAndroid Build Coastguard Worker 572*7c568831SAndroid Build Coastguard Worker<li> 573*7c568831SAndroid Build Coastguard Worker<p>The root element of the document must designate the XHTML 574*7c568831SAndroid Build Coastguard Workernamespace using the <code>xmlns</code> attribute <a href= 575*7c568831SAndroid Build Coastguard Worker"#ref-xmlns">[XMLNAMES]</a>. The namespace for XHTML is 576*7c568831SAndroid Build Coastguard Workerdefined to be 577*7c568831SAndroid Build Coastguard Worker<code>http://www.w3.org/1999/xhtml</code>.</p> 578*7c568831SAndroid Build Coastguard Worker</li> 579*7c568831SAndroid Build Coastguard Worker 580*7c568831SAndroid Build Coastguard Worker<li> 581*7c568831SAndroid Build Coastguard Worker<p>There must be a DOCTYPE declaration in the document prior to 582*7c568831SAndroid Build Coastguard Workerthe root element. The public identifier included in 583*7c568831SAndroid Build Coastguard Workerthe DOCTYPE declaration must reference one of the three DTDs 584*7c568831SAndroid Build Coastguard Workerfound in <a href="#dtds">Appendix A</a> using the respective 585*7c568831SAndroid Build Coastguard WorkerFormal Public Identifier. The system identifier may be changed to reflect 586*7c568831SAndroid Build Coastguard Workerlocal system conventions.</p> 587*7c568831SAndroid Build Coastguard Worker 588*7c568831SAndroid Build Coastguard Worker<pre> 589*7c568831SAndroid Build Coastguard Worker<!DOCTYPE html 590*7c568831SAndroid Build Coastguard Worker PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 591*7c568831SAndroid Build Coastguard Worker "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-strict.dtd> 592*7c568831SAndroid Build Coastguard Worker 593*7c568831SAndroid Build Coastguard Worker<!DOCTYPE html 594*7c568831SAndroid Build Coastguard Worker PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 595*7c568831SAndroid Build Coastguard Worker "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-transitional.dtd> 596*7c568831SAndroid Build Coastguard Worker 597*7c568831SAndroid Build Coastguard Worker<!DOCTYPE html 598*7c568831SAndroid Build Coastguard Worker PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" 599*7c568831SAndroid Build Coastguard Worker "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-frameset.dtd> 600*7c568831SAndroid Build Coastguard Worker</pre> 601*7c568831SAndroid Build Coastguard Worker</li> 602*7c568831SAndroid Build Coastguard Worker</ol> 603*7c568831SAndroid Build Coastguard Worker 604*7c568831SAndroid Build Coastguard Worker<p>Here is an example of a minimal XHTML document.</p> 605*7c568831SAndroid Build Coastguard Worker 606*7c568831SAndroid Build Coastguard Worker<div class="good"> 607*7c568831SAndroid Build Coastguard Worker<pre> 608*7c568831SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?> 609*7c568831SAndroid Build Coastguard Worker<!DOCTYPE html 610*7c568831SAndroid Build Coastguard Worker PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 611*7c568831SAndroid Build Coastguard Worker "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-strict.dtd"> 612*7c568831SAndroid Build Coastguard Worker<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 613*7c568831SAndroid Build Coastguard Worker <head> 614*7c568831SAndroid Build Coastguard Worker <title>Virtual Library</title> 615*7c568831SAndroid Build Coastguard Worker </head> 616*7c568831SAndroid Build Coastguard Worker <body> 617*7c568831SAndroid Build Coastguard Worker <p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p> 618*7c568831SAndroid Build Coastguard Worker </body> 619*7c568831SAndroid Build Coastguard Worker</html></pre> 620*7c568831SAndroid Build Coastguard Worker</div> 621*7c568831SAndroid Build Coastguard Worker 622*7c568831SAndroid Build Coastguard Worker<p>Note that in this example, the XML declaration is included. An XML 623*7c568831SAndroid Build Coastguard Workerdeclaration like the one above is 624*7c568831SAndroid Build Coastguard Workernot required in all XML documents. XHTML document authors are strongly encouraged to use XML declarations in all their documents. Such a declaration is required 625*7c568831SAndroid Build Coastguard Workerwhen the character encoding of the document is other than the default UTF-8 or 626*7c568831SAndroid Build Coastguard WorkerUTF-16.</p> 627*7c568831SAndroid Build Coastguard Worker 628*7c568831SAndroid Build Coastguard Worker<h3><a name="well-formed" id="well-formed">3.1.2 Using XHTML with 629*7c568831SAndroid Build Coastguard Workerother namespaces</a></h3> 630*7c568831SAndroid Build Coastguard Worker 631*7c568831SAndroid Build Coastguard Worker<p>The XHTML namespace may be used with other XML namespaces 632*7c568831SAndroid Build Coastguard Workeras per <a href="#ref-xmlns">[XMLNAMES]</a>, although such 633*7c568831SAndroid Build Coastguard Workerdocuments are not strictly conforming XHTML 1.0 documents as 634*7c568831SAndroid Build Coastguard Workerdefined above. Future work by W3C will address ways to specify 635*7c568831SAndroid Build Coastguard Workerconformance for documents involving multiple namespaces.</p> 636*7c568831SAndroid Build Coastguard Worker 637*7c568831SAndroid Build Coastguard Worker<p>The following example shows the way in which XHTML 1.0 could 638*7c568831SAndroid Build Coastguard Workerbe used in conjunction with the MathML Recommendation:</p> 639*7c568831SAndroid Build Coastguard Worker 640*7c568831SAndroid Build Coastguard Worker<div class="good"> 641*7c568831SAndroid Build Coastguard Worker<pre> 642*7c568831SAndroid Build Coastguard Worker<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 643*7c568831SAndroid Build Coastguard Worker <head> 644*7c568831SAndroid Build Coastguard Worker <title>A Math Example</title> 645*7c568831SAndroid Build Coastguard Worker </head> 646*7c568831SAndroid Build Coastguard Worker <body> 647*7c568831SAndroid Build Coastguard Worker <p>The following is MathML markup:</p> 648*7c568831SAndroid Build Coastguard Worker <math xmlns="http://www.w3.org/1998/Math/MathML"> 649*7c568831SAndroid Build Coastguard Worker <apply> <log/> 650*7c568831SAndroid Build Coastguard Worker <logbase> 651*7c568831SAndroid Build Coastguard Worker <cn> 3 </cn> 652*7c568831SAndroid Build Coastguard Worker </logbase> 653*7c568831SAndroid Build Coastguard Worker <ci> x </ci> 654*7c568831SAndroid Build Coastguard Worker </apply> 655*7c568831SAndroid Build Coastguard Worker </math> 656*7c568831SAndroid Build Coastguard Worker </body> 657*7c568831SAndroid Build Coastguard Worker</html> 658*7c568831SAndroid Build Coastguard Worker</pre> 659*7c568831SAndroid Build Coastguard Worker</div> 660*7c568831SAndroid Build Coastguard Worker 661*7c568831SAndroid Build Coastguard Worker<p>The following example shows the way in which XHTML 1.0 markup 662*7c568831SAndroid Build Coastguard Workercould be incorporated into another XML namespace:</p> 663*7c568831SAndroid Build Coastguard Worker 664*7c568831SAndroid Build Coastguard Worker<div class="good"> 665*7c568831SAndroid Build Coastguard Worker<pre> 666*7c568831SAndroid Build Coastguard Worker<?xml version="1.0" encoding="UTF-8"?> 667*7c568831SAndroid Build Coastguard Worker<!-- initially, the default namespace is "books" --> 668*7c568831SAndroid Build Coastguard Worker<book xmlns='urn:loc.gov:books' 669*7c568831SAndroid Build Coastguard Worker xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en"> 670*7c568831SAndroid Build Coastguard Worker <title>Cheaper by the Dozen</title> 671*7c568831SAndroid Build Coastguard Worker <isbn:number>1568491379</isbn:number> 672*7c568831SAndroid Build Coastguard Worker <notes> 673*7c568831SAndroid Build Coastguard Worker <!-- make HTML the default namespace for a hypertext commentary --> 674*7c568831SAndroid Build Coastguard Worker <p xmlns='http://www.w3.org/1999/xhtml'> 675*7c568831SAndroid Build Coastguard Worker This is also available <a href="http://www.w3.org/">online</a>. 676*7c568831SAndroid Build Coastguard Worker </p> 677*7c568831SAndroid Build Coastguard Worker </notes> 678*7c568831SAndroid Build Coastguard Worker</book> 679*7c568831SAndroid Build Coastguard Worker</pre> 680*7c568831SAndroid Build Coastguard Worker</div> 681*7c568831SAndroid Build Coastguard Worker 682*7c568831SAndroid Build Coastguard Worker<h2><a name="uaconf" id="uaconf">3.2 User Agent 683*7c568831SAndroid Build Coastguard WorkerConformance</a></h2> 684*7c568831SAndroid Build Coastguard Worker 685*7c568831SAndroid Build Coastguard Worker<p>A conforming user agent must meet all of the following 686*7c568831SAndroid Build Coastguard Workercriteria:</p> 687*7c568831SAndroid Build Coastguard Worker 688*7c568831SAndroid Build Coastguard Worker<ol> 689*7c568831SAndroid Build Coastguard Worker<li>In order to be consistent with the XML 1.0 Recommendation <a 690*7c568831SAndroid Build Coastguard Workerhref="#ref-xml">[XML]</a>, the user agent must parse and evaluate 691*7c568831SAndroid Build Coastguard Workeran XHTML document for well-formedness. If the user agent claims 692*7c568831SAndroid Build Coastguard Workerto be a validating user agent, it must also validate documents 693*7c568831SAndroid Build Coastguard Workeragainst their referenced DTDs according to <a href="#ref-xml"> 694*7c568831SAndroid Build Coastguard Worker[XML]</a>.</li> 695*7c568831SAndroid Build Coastguard Worker 696*7c568831SAndroid Build Coastguard Worker<li>When the user agent claims to support <a href="#facilities"> 697*7c568831SAndroid Build Coastguard Workerfacilities</a> defined within this specification or required by 698*7c568831SAndroid Build Coastguard Workerthis specification through normative reference, it must do so in 699*7c568831SAndroid Build Coastguard Workerways consistent with the facilities' definition.</li> 700*7c568831SAndroid Build Coastguard Worker 701*7c568831SAndroid Build Coastguard Worker<li>When a user agent processes an XHTML document as generic XML, 702*7c568831SAndroid Build Coastguard Workerit shall only recognize attributes of type 703*7c568831SAndroid Build Coastguard Worker<code>ID</code> (e.g. the <code>id</code> attribute on most XHTML elements) 704*7c568831SAndroid Build Coastguard Workeras fragment identifiers.</li> 705*7c568831SAndroid Build Coastguard Worker 706*7c568831SAndroid Build Coastguard Worker<li>If a user agent encounters an element it does not recognize, 707*7c568831SAndroid Build Coastguard Workerit must render the element's content.</li> 708*7c568831SAndroid Build Coastguard Worker 709*7c568831SAndroid Build Coastguard Worker<li>If a user agent encounters an attribute it does not 710*7c568831SAndroid Build Coastguard Workerrecognize, it must ignore the entire attribute specification 711*7c568831SAndroid Build Coastguard Worker(i.e., the attribute and its value).</li> 712*7c568831SAndroid Build Coastguard Worker 713*7c568831SAndroid Build Coastguard Worker<li>If a user agent encounters an attribute value it doesn't 714*7c568831SAndroid Build Coastguard Workerrecognize, it must use the default attribute value.</li> 715*7c568831SAndroid Build Coastguard Worker 716*7c568831SAndroid Build Coastguard Worker<li>If it encounters an entity reference (other than one 717*7c568831SAndroid Build Coastguard Workerof the predefined entities) for which the User Agent has 718*7c568831SAndroid Build Coastguard Workerprocessed no declaration (which could happen if the declaration 719*7c568831SAndroid Build Coastguard Workeris in the external subset which the User Agent hasn't read), the entity 720*7c568831SAndroid Build Coastguard Workerreference should be rendered as the characters (starting 721*7c568831SAndroid Build Coastguard Workerwith the ampersand and ending with the semi-colon) that 722*7c568831SAndroid Build Coastguard Workermake up the entity reference.</li> 723*7c568831SAndroid Build Coastguard Worker 724*7c568831SAndroid Build Coastguard Worker<li>When rendering content, User Agents that encounter 725*7c568831SAndroid Build Coastguard Workercharacters or character entity references that are recognized but not renderable should display the document in such a way that it is obvious to the user that normal rendering has not taken place.</li> 726*7c568831SAndroid Build Coastguard Worker 727*7c568831SAndroid Build Coastguard Worker<li> 728*7c568831SAndroid Build Coastguard WorkerThe following characters are defined in [XML] as whitespace characters: 729*7c568831SAndroid Build Coastguard Worker 730*7c568831SAndroid Build Coastguard Worker<ul> 731*7c568831SAndroid Build Coastguard Worker<li>Space (&#x0020;)</li> 732*7c568831SAndroid Build Coastguard Worker<li>Tab (&#x0009;)</li> 733*7c568831SAndroid Build Coastguard Worker<li>Carriage return (&#x000D;)</li> 734*7c568831SAndroid Build Coastguard Worker<li>Line feed (&#x000A;)</li> 735*7c568831SAndroid Build Coastguard Worker</ul> 736*7c568831SAndroid Build Coastguard Worker 737*7c568831SAndroid Build Coastguard Worker<p> 738*7c568831SAndroid Build Coastguard WorkerThe XML processor normalizes different system's line end codes into one 739*7c568831SAndroid Build Coastguard Workersingle line-feed character, that is passed up to the application. The XHTML 740*7c568831SAndroid Build Coastguard Workeruser agent in addition, must treat the following characters as whitespace: 741*7c568831SAndroid Build Coastguard Worker</p> 742*7c568831SAndroid Build Coastguard Worker 743*7c568831SAndroid Build Coastguard Worker<ul> 744*7c568831SAndroid Build Coastguard Worker<li>Form feed (&#x000C;)</li> 745*7c568831SAndroid Build Coastguard Worker<li>Zero-width space (&#x200B;)</li> 746*7c568831SAndroid Build Coastguard Worker</ul> 747*7c568831SAndroid Build Coastguard Worker 748*7c568831SAndroid Build Coastguard Worker<p> 749*7c568831SAndroid Build Coastguard WorkerIn elements where the 'xml:space' attribute is set to 'preserve', the user 750*7c568831SAndroid Build Coastguard Workeragent must leave all whitespace characters intact (with the exception of 751*7c568831SAndroid Build Coastguard Workerleading and trailing whitespace characters, which should be removed). 752*7c568831SAndroid Build Coastguard WorkerOtherwise, whitespace 753*7c568831SAndroid Build Coastguard Workeris handled according to the following rules: 754*7c568831SAndroid Build Coastguard Worker</p> 755*7c568831SAndroid Build Coastguard Worker 756*7c568831SAndroid Build Coastguard Worker<ul> 757*7c568831SAndroid Build Coastguard Worker<li> 758*7c568831SAndroid Build Coastguard WorkerAll whitespace surrounding block elements should be removed. 759*7c568831SAndroid Build Coastguard Worker</li> 760*7c568831SAndroid Build Coastguard Worker<li> 761*7c568831SAndroid Build Coastguard WorkerComments are removed entirely and do not affect whitespace handling. One 762*7c568831SAndroid Build Coastguard Workerwhitespace character on either side of a comment is treated as two white 763*7c568831SAndroid Build Coastguard Workerspace characters. 764*7c568831SAndroid Build Coastguard Worker</li> 765*7c568831SAndroid Build Coastguard Worker<li> 766*7c568831SAndroid Build Coastguard WorkerLeading and trailing whitespace inside a block element must be removed. 767*7c568831SAndroid Build Coastguard Worker</li> 768*7c568831SAndroid Build Coastguard Worker<li>Line feed characters within a block element must be converted into a 769*7c568831SAndroid Build Coastguard Workerspace (except when the 'xml:space' attribute is set to 'preserve'). 770*7c568831SAndroid Build Coastguard Worker</li> 771*7c568831SAndroid Build Coastguard Worker<li> 772*7c568831SAndroid Build Coastguard WorkerA sequence of white space characters must be reduced to a single space 773*7c568831SAndroid Build Coastguard Workercharacter (except when the 'xml:space' attribute is set to 'preserve'). 774*7c568831SAndroid Build Coastguard Worker</li> 775*7c568831SAndroid Build Coastguard Worker<li> 776*7c568831SAndroid Build Coastguard WorkerWith regard to rendition, 777*7c568831SAndroid Build Coastguard Workerthe User Agent should render the content in a 778*7c568831SAndroid Build Coastguard Workermanner appropriate to the language in which the content is written. 779*7c568831SAndroid Build Coastguard WorkerIn languages whose primary script is Latinate, the ASCII space 780*7c568831SAndroid Build Coastguard Workercharacter is typically used to encode both grammatical word boundaries and 781*7c568831SAndroid Build Coastguard Workertypographic whitespace; in languages whose script is related to Nagari 782*7c568831SAndroid Build Coastguard Worker(e.g., Sanskrit, Thai, etc.), grammatical boundaries may be encoded using 783*7c568831SAndroid Build Coastguard Workerthe ZW 'space' character, but will not typically be represented by 784*7c568831SAndroid Build Coastguard Workertypographic whitespace in rendered output; languages using Arabiform scripts 785*7c568831SAndroid Build Coastguard Workermay encode typographic whitespace using a space character, but may also use 786*7c568831SAndroid Build Coastguard Workerthe ZW space character to delimit 'internal' grammatical boundaries (what 787*7c568831SAndroid Build Coastguard Workerlook like words in Arabic to an English eye frequently encode several words, 788*7c568831SAndroid Build Coastguard Workere.g. 'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book); and languages 789*7c568831SAndroid Build Coastguard Workerin the Chinese script tradition typically neither encode such delimiters nor 790*7c568831SAndroid Build Coastguard Workeruse typographic whitespace in this way. 791*7c568831SAndroid Build Coastguard Worker</li> 792*7c568831SAndroid Build Coastguard Worker</ul> 793*7c568831SAndroid Build Coastguard Worker 794*7c568831SAndroid Build Coastguard Worker<p>Whitespace in attribute values is processed according to <a 795*7c568831SAndroid Build Coastguard Workerhref="#ref-xml">[XML]</a>.</p> 796*7c568831SAndroid Build Coastguard Worker</li> 797*7c568831SAndroid Build Coastguard Worker</ol> 798*7c568831SAndroid Build Coastguard Worker 799*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 800*7c568831SAndroid Build Coastguard Worker<h1><a name="diffs" id="diffs">4. Differences with HTML 801*7c568831SAndroid Build Coastguard Worker4.0</a></h1> 802*7c568831SAndroid Build Coastguard Worker 803*7c568831SAndroid Build Coastguard Worker<p>Due to the fact that XHTML is an XML application, certain 804*7c568831SAndroid Build Coastguard Workerpractices that were perfectly legal in SGML-based HTML 4.0 <a 805*7c568831SAndroid Build Coastguard Workerhref="#ref-html4">[HTML]</a> must be changed.</p> 806*7c568831SAndroid Build Coastguard Worker 807*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.1" id="h-4.1">4.1 Documents must be 808*7c568831SAndroid Build Coastguard Workerwell-formed</a></h2> 809*7c568831SAndroid Build Coastguard Worker 810*7c568831SAndroid Build Coastguard Worker<p><a href="#wellformed">Well-formedness</a> is a new concept 811*7c568831SAndroid Build Coastguard Workerintroduced by <a href="#ref-xml">[XML]</a>. Essentially this 812*7c568831SAndroid Build Coastguard Workermeans that all elements must either have closing tags or be 813*7c568831SAndroid Build Coastguard Workerwritten in a special form (as described below), and that all the 814*7c568831SAndroid Build Coastguard Workerelements must nest.</p> 815*7c568831SAndroid Build Coastguard Worker 816*7c568831SAndroid Build Coastguard Worker<p>Although overlapping is illegal in SGML, it was widely 817*7c568831SAndroid Build Coastguard Workertolerated in existing browsers.</p> 818*7c568831SAndroid Build Coastguard Worker 819*7c568831SAndroid Build Coastguard Worker<div class="good"> 820*7c568831SAndroid Build Coastguard Worker<p><strong><em>CORRECT: nested elements.</em></strong></p> 821*7c568831SAndroid Build Coastguard Worker 822*7c568831SAndroid Build Coastguard Worker<p><p>here is an emphasized 823*7c568831SAndroid Build Coastguard Worker<em>paragraph</em>.</p></p> 824*7c568831SAndroid Build Coastguard Worker</div> 825*7c568831SAndroid Build Coastguard Worker 826*7c568831SAndroid Build Coastguard Worker<div class="bad"> 827*7c568831SAndroid Build Coastguard Worker<p><strong><em>INCORRECT: overlapping elements</em></strong></p> 828*7c568831SAndroid Build Coastguard Worker 829*7c568831SAndroid Build Coastguard Worker<p><p>here is an emphasized 830*7c568831SAndroid Build Coastguard Worker<em>paragraph.</p></em></p> 831*7c568831SAndroid Build Coastguard Worker</div> 832*7c568831SAndroid Build Coastguard Worker 833*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.2" id="h-4.2">4.2 Element and attribute 834*7c568831SAndroid Build Coastguard Workernames must be in lower case</a></h2> 835*7c568831SAndroid Build Coastguard Worker 836*7c568831SAndroid Build Coastguard Worker<p>XHTML documents must use lower case for all HTML element and 837*7c568831SAndroid Build Coastguard Workerattribute names. This difference is necessary because XML is 838*7c568831SAndroid Build Coastguard Workercase-sensitive e.g. <li> and <LI> are different 839*7c568831SAndroid Build Coastguard Workertags.</p> 840*7c568831SAndroid Build Coastguard Worker 841*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.3" id="h-4.3">4.3 For non-empty elements, 842*7c568831SAndroid Build Coastguard Workerend tags are required</a></h2> 843*7c568831SAndroid Build Coastguard Worker 844*7c568831SAndroid Build Coastguard Worker<p>In SGML-based HTML 4.0 certain elements were permitted to omit 845*7c568831SAndroid Build Coastguard Workerthe end tag; with the elements that followed implying closure. 846*7c568831SAndroid Build Coastguard WorkerThis omission is not permitted in XML-based XHTML. All elements 847*7c568831SAndroid Build Coastguard Workerother than those declared in the DTD as <code>EMPTY</code> must 848*7c568831SAndroid Build Coastguard Workerhave an end tag.</p> 849*7c568831SAndroid Build Coastguard Worker 850*7c568831SAndroid Build Coastguard Worker<div class="good"> 851*7c568831SAndroid Build Coastguard Worker<p><strong><em>CORRECT: terminated elements</em></strong></p> 852*7c568831SAndroid Build Coastguard Worker 853*7c568831SAndroid Build Coastguard Worker<p><p>here is a paragraph.</p><p>here is 854*7c568831SAndroid Build Coastguard Workeranother paragraph.</p></p> 855*7c568831SAndroid Build Coastguard Worker</div> 856*7c568831SAndroid Build Coastguard Worker 857*7c568831SAndroid Build Coastguard Worker<div class="bad"> 858*7c568831SAndroid Build Coastguard Worker<p><strong><em>INCORRECT: unterminated elements</em></strong></p> 859*7c568831SAndroid Build Coastguard Worker 860*7c568831SAndroid Build Coastguard Worker<p><p>here is a paragraph.<p>here is another 861*7c568831SAndroid Build Coastguard Workerparagraph.</p> 862*7c568831SAndroid Build Coastguard Worker</div> 863*7c568831SAndroid Build Coastguard Worker 864*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.4" id="h-4.4">4.4 Attribute values must 865*7c568831SAndroid Build Coastguard Workeralways be quoted</a></h2> 866*7c568831SAndroid Build Coastguard Worker 867*7c568831SAndroid Build Coastguard Worker<p>All attribute values must be quoted, even those which appear 868*7c568831SAndroid Build Coastguard Workerto be numeric.</p> 869*7c568831SAndroid Build Coastguard Worker 870*7c568831SAndroid Build Coastguard Worker<div class="good"> 871*7c568831SAndroid Build Coastguard Worker<p><strong><em>CORRECT: quoted attribute values</em></strong></p> 872*7c568831SAndroid Build Coastguard Worker 873*7c568831SAndroid Build Coastguard Worker<p><table rows="3"></p> 874*7c568831SAndroid Build Coastguard Worker</div> 875*7c568831SAndroid Build Coastguard Worker 876*7c568831SAndroid Build Coastguard Worker<div class="bad"> 877*7c568831SAndroid Build Coastguard Worker<p><strong><em>INCORRECT: unquoted attribute values</em></strong></p> 878*7c568831SAndroid Build Coastguard Worker 879*7c568831SAndroid Build Coastguard Worker<p><table rows=3></p> 880*7c568831SAndroid Build Coastguard Worker</div> 881*7c568831SAndroid Build Coastguard Worker 882*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.5" id="h-4.5">4.5 Attribute 883*7c568831SAndroid Build Coastguard WorkerMinimization</a></h2> 884*7c568831SAndroid Build Coastguard Worker 885*7c568831SAndroid Build Coastguard Worker<p>XML does not support attribute minimization. Attribute-value 886*7c568831SAndroid Build Coastguard Workerpairs must be written in full. Attribute names such as <code> 887*7c568831SAndroid Build Coastguard Workercompact</code> and <code>checked</code> cannot occur in elements 888*7c568831SAndroid Build Coastguard Workerwithout their value being specified.</p> 889*7c568831SAndroid Build Coastguard Worker 890*7c568831SAndroid Build Coastguard Worker<div class="good"> 891*7c568831SAndroid Build Coastguard Worker<p><strong><em>CORRECT: unminimized attributes</em></strong></p> 892*7c568831SAndroid Build Coastguard Worker 893*7c568831SAndroid Build Coastguard Worker<p><dl compact="compact"></p> 894*7c568831SAndroid Build Coastguard Worker</div> 895*7c568831SAndroid Build Coastguard Worker 896*7c568831SAndroid Build Coastguard Worker<div class="bad"> 897*7c568831SAndroid Build Coastguard Worker<p><strong><em>INCORRECT: minimized attributes</em></strong></p> 898*7c568831SAndroid Build Coastguard Worker 899*7c568831SAndroid Build Coastguard Worker<p><dl compact></p> 900*7c568831SAndroid Build Coastguard Worker</div> 901*7c568831SAndroid Build Coastguard Worker 902*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.6" id="h-4.6">4.6 Empty Elements</a></h2> 903*7c568831SAndroid Build Coastguard Worker 904*7c568831SAndroid Build Coastguard Worker<p>Empty elements must either have an end tag or the start tag must end with <code>/></code>. For instance, 905*7c568831SAndroid Build Coastguard Worker<code><br/></code> or <code><hr></hr></code>. See <a 906*7c568831SAndroid Build Coastguard Workerhref="#guidelines">HTML Compatibility Guidelines</a> for information on ways to 907*7c568831SAndroid Build Coastguard Workerensure this is backward compatible with HTML 4.0 user agents.</p> 908*7c568831SAndroid Build Coastguard Worker 909*7c568831SAndroid Build Coastguard Worker<div class="good"> 910*7c568831SAndroid Build Coastguard Worker<p><strong><em>CORRECT: terminated empty tags</em></strong></p> 911*7c568831SAndroid Build Coastguard Worker 912*7c568831SAndroid Build Coastguard Worker<p><br/><hr/></p> 913*7c568831SAndroid Build Coastguard Worker</div> 914*7c568831SAndroid Build Coastguard Worker 915*7c568831SAndroid Build Coastguard Worker<div class="bad"> 916*7c568831SAndroid Build Coastguard Worker<p><strong><em>INCORRECT: unterminated empty tags</em></strong></p> 917*7c568831SAndroid Build Coastguard Worker 918*7c568831SAndroid Build Coastguard Worker<p><br><hr></p> 919*7c568831SAndroid Build Coastguard Worker</div> 920*7c568831SAndroid Build Coastguard Worker 921*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.7" id="h-4.7">4.7 Whitespace handling in 922*7c568831SAndroid Build Coastguard Workerattribute values</a></h2> 923*7c568831SAndroid Build Coastguard Worker 924*7c568831SAndroid Build Coastguard Worker<p>In attribute values, user agents will strip leading and 925*7c568831SAndroid Build Coastguard Workertrailing whitespace from attribute values and map sequences 926*7c568831SAndroid Build Coastguard Workerof one or more whitespace characters (including line breaks) to 927*7c568831SAndroid Build Coastguard Workera single inter-word space (an ASCII space character for western 928*7c568831SAndroid Build Coastguard Workerscripts). See <a href="http://www.w3.org/TR/REC-xml#AVNormalize"> 929*7c568831SAndroid Build Coastguard WorkerSection 3.3.3</a> of <a href="#ref-xml">[XML]</a>.</p> 930*7c568831SAndroid Build Coastguard Worker 931*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.8" id="h-4.8">4.8 Script and Style 932*7c568831SAndroid Build Coastguard Workerelements</a></h2> 933*7c568831SAndroid Build Coastguard Worker 934*7c568831SAndroid Build Coastguard Worker<p>In XHTML, the script and style elements are declared as having 935*7c568831SAndroid Build Coastguard Worker<code>#PCDATA</code> content. As a result, <code><</code> and 936*7c568831SAndroid Build Coastguard Worker<code>&</code> will be treated as the start of markup, and 937*7c568831SAndroid Build Coastguard Workerentities such as <code>&lt;</code> and <code>&amp;</code> 938*7c568831SAndroid Build Coastguard Workerwill be recognized as entity references by the XML processor to 939*7c568831SAndroid Build Coastguard Worker<code><</code> and <code>&</code> respectively. Wrapping 940*7c568831SAndroid Build Coastguard Workerthe content of the script or style element within a <code> 941*7c568831SAndroid Build Coastguard WorkerCDATA</code> marked section avoids the expansion of these 942*7c568831SAndroid Build Coastguard Workerentities.</p> 943*7c568831SAndroid Build Coastguard Worker 944*7c568831SAndroid Build Coastguard Worker<div class="good"> 945*7c568831SAndroid Build Coastguard Worker<pre> 946*7c568831SAndroid Build Coastguard Worker<script> 947*7c568831SAndroid Build Coastguard Worker <![CDATA[ 948*7c568831SAndroid Build Coastguard Worker ... unescaped script content ... 949*7c568831SAndroid Build Coastguard Worker ]]> 950*7c568831SAndroid Build Coastguard Worker </script> 951*7c568831SAndroid Build Coastguard Worker</pre> 952*7c568831SAndroid Build Coastguard Worker</div> 953*7c568831SAndroid Build Coastguard Worker 954*7c568831SAndroid Build Coastguard Worker<p><code>CDATA</code> sections are recognized by the XML 955*7c568831SAndroid Build Coastguard Workerprocessor and appear as nodes in the Document Object Model, see 956*7c568831SAndroid Build Coastguard Worker<a href= 957*7c568831SAndroid Build Coastguard Worker"http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-E067D597"> 958*7c568831SAndroid Build Coastguard WorkerSection 1.3</a> of the DOM Level 1 Recommendation <a href= 959*7c568831SAndroid Build Coastguard Worker"#ref-dom">[DOM]</a>.</p> 960*7c568831SAndroid Build Coastguard Worker 961*7c568831SAndroid Build Coastguard Worker<p>An alternative is to use external script and style 962*7c568831SAndroid Build Coastguard Workerdocuments.</p> 963*7c568831SAndroid Build Coastguard Worker 964*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.9" id="h-4.9">4.9 SGML exclusions</a></h2> 965*7c568831SAndroid Build Coastguard Worker 966*7c568831SAndroid Build Coastguard Worker<p>SGML gives the writer of a DTD the ability to exclude specific 967*7c568831SAndroid Build Coastguard Workerelements from being contained within an element. Such 968*7c568831SAndroid Build Coastguard Workerprohibitions (called "exclusions") are not possible in XML.</p> 969*7c568831SAndroid Build Coastguard Worker 970*7c568831SAndroid Build Coastguard Worker<p>For example, the HTML 4.0 Strict DTD forbids the nesting of an 971*7c568831SAndroid Build Coastguard Worker'<code>a</code>' element within another '<code>a</code>' element 972*7c568831SAndroid Build Coastguard Workerto any descendant depth. It is not possible to spell out such 973*7c568831SAndroid Build Coastguard Workerprohibitions in XML. Even though these prohibitions cannot be 974*7c568831SAndroid Build Coastguard Workerdefined in the DTD, certain elements should not be nested. A 975*7c568831SAndroid Build Coastguard Workersummary of such elements and the elements that should not be 976*7c568831SAndroid Build Coastguard Workernested in them is found in the normative <a href="#prohibitions"> 977*7c568831SAndroid Build Coastguard WorkerAppendix B</a>.</p> 978*7c568831SAndroid Build Coastguard Worker 979*7c568831SAndroid Build Coastguard Worker<h2><a name="h-4.10" id="h-4.10">4.10 The elements with 'id' and 'name' 980*7c568831SAndroid Build Coastguard Workerattributes</a></h2> 981*7c568831SAndroid Build Coastguard Worker 982*7c568831SAndroid Build Coastguard Worker<p>HTML 4.0 defined the <code>name</code> attribute for the elements 983*7c568831SAndroid Build Coastguard Worker<code>a</code>, 984*7c568831SAndroid Build Coastguard Worker<code>applet</code>, <code>frame</code>, 985*7c568831SAndroid Build Coastguard Worker<code>iframe</code>, <code>img</code>, and <code>map</code>. 986*7c568831SAndroid Build Coastguard WorkerHTML 4.0 also introduced 987*7c568831SAndroid Build Coastguard Workerthe <code>id</code> attribute. Both of these attributes are designed to be 988*7c568831SAndroid Build Coastguard Workerused as fragment identifiers.</p> 989*7c568831SAndroid Build Coastguard Worker<p>In XML, fragment identifiers are of type <code>ID</code>, and 990*7c568831SAndroid Build Coastguard Workerthere can only be a single attribute of type <code>ID</code> per element. 991*7c568831SAndroid Build Coastguard WorkerTherefore, in XHTML 1.0 the <code>id</code> 992*7c568831SAndroid Build Coastguard Workerattribute is defined to be of type <code>ID</code>. In order to 993*7c568831SAndroid Build Coastguard Workerensure that XHTML 1.0 documents are well-structured XML documents, XHTML 1.0 994*7c568831SAndroid Build Coastguard Workerdocuments MUST use the <code>id</code> attribute when defining fragment 995*7c568831SAndroid Build Coastguard Workeridentifiers, even on elements that historically have also had a 996*7c568831SAndroid Build Coastguard Worker<code>name</code> attribute. 997*7c568831SAndroid Build Coastguard WorkerSee the <a href="#guidelines">HTML Compatibility 998*7c568831SAndroid Build Coastguard WorkerGuidelines</a> for information on ensuring such anchors are backwards 999*7c568831SAndroid Build Coastguard Workercompatible when serving XHTML documents as media type <code>text/html</code>. 1000*7c568831SAndroid Build Coastguard Worker</p> 1001*7c568831SAndroid Build Coastguard Worker<p>Note that in XHTML 1.0, the <code>name</code> attribute of these 1002*7c568831SAndroid Build Coastguard Workerelements is formally deprecated, and will be removed in a 1003*7c568831SAndroid Build Coastguard Workersubsequent version of XHTML.</p> 1004*7c568831SAndroid Build Coastguard Worker 1005*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1006*7c568831SAndroid Build Coastguard Worker<h1><a name="issues" id="issues">5. Compatibility Issues</a></h1> 1007*7c568831SAndroid Build Coastguard Worker 1008*7c568831SAndroid Build Coastguard Worker<p>Although there is no requirement for XHTML 1.0 documents to be 1009*7c568831SAndroid Build Coastguard Workercompatible with existing user agents, in practice this is easy to 1010*7c568831SAndroid Build Coastguard Workeraccomplish. Guidelines for creating compatible documents can be 1011*7c568831SAndroid Build Coastguard Workerfound in <a href="#guidelines">Appendix C</a>.</p> 1012*7c568831SAndroid Build Coastguard Worker 1013*7c568831SAndroid Build Coastguard Worker<h2><a name="media" id="media">5.1 Internet Media Type</a></h2> 1014*7c568831SAndroid Build Coastguard Worker<p>As of the publication of this recommendation, the general 1015*7c568831SAndroid Build Coastguard Workerrecommended MIME labeling for XML-based applications 1016*7c568831SAndroid Build Coastguard Workerhas yet to be resolved.</p> 1017*7c568831SAndroid Build Coastguard Worker 1018*7c568831SAndroid Build Coastguard Worker<p>However, XHTML Documents which follow the guidelines set forth 1019*7c568831SAndroid Build Coastguard Workerin <a href="#guidelines">Appendix C</a>, "HTML Compatibility Guidelines" may be 1020*7c568831SAndroid Build Coastguard Workerlabeled with the Internet Media Type "text/html", as they 1021*7c568831SAndroid Build Coastguard Workerare compatible with most HTML browsers. This document 1022*7c568831SAndroid Build Coastguard Workermakes no recommendation about MIME labeling of other 1023*7c568831SAndroid Build Coastguard WorkerXHTML documents.</p> 1024*7c568831SAndroid Build Coastguard Worker 1025*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1026*7c568831SAndroid Build Coastguard Worker<h1><a name="future" id="future">6. Future Directions</a></h1> 1027*7c568831SAndroid Build Coastguard Worker 1028*7c568831SAndroid Build Coastguard Worker<p>XHTML 1.0 provides the basis for a family of document types 1029*7c568831SAndroid Build Coastguard Workerthat will extend and subset XHTML, in order to support a wide 1030*7c568831SAndroid Build Coastguard Workerrange of new devices and applications, by defining modules and 1031*7c568831SAndroid Build Coastguard Workerspecifying a mechanism for combining these modules. This 1032*7c568831SAndroid Build Coastguard Workermechanism will enable the extension and sub-setting of XHTML 1.0 1033*7c568831SAndroid Build Coastguard Workerin a uniform way through the definition of new modules.</p> 1034*7c568831SAndroid Build Coastguard Worker 1035*7c568831SAndroid Build Coastguard Worker<h2><a name="mods" id="mods">6.1 Modularizing HTML</a></h2> 1036*7c568831SAndroid Build Coastguard Worker 1037*7c568831SAndroid Build Coastguard Worker<p>As the use of XHTML moves from the traditional desktop user 1038*7c568831SAndroid Build Coastguard Workeragents to other platforms, it is clear that not all of the XHTML 1039*7c568831SAndroid Build Coastguard Workerelements will be required on all platforms. For example a hand 1040*7c568831SAndroid Build Coastguard Workerheld device or a cell-phone may only support a subset of XHTML 1041*7c568831SAndroid Build Coastguard Workerelements.</p> 1042*7c568831SAndroid Build Coastguard Worker 1043*7c568831SAndroid Build Coastguard Worker<p>The process of modularization breaks XHTML up into a series of 1044*7c568831SAndroid Build Coastguard Workersmaller element sets. These elements can then be recombined to 1045*7c568831SAndroid Build Coastguard Workermeet the needs of different communities.</p> 1046*7c568831SAndroid Build Coastguard Worker 1047*7c568831SAndroid Build Coastguard Worker<p>These modules will be defined in a later W3C document.</p> 1048*7c568831SAndroid Build Coastguard Worker 1049*7c568831SAndroid Build Coastguard Worker<h2><a name="extensions" id="extensions">6.2 Subsets and 1050*7c568831SAndroid Build Coastguard WorkerExtensibility</a></h2> 1051*7c568831SAndroid Build Coastguard Worker 1052*7c568831SAndroid Build Coastguard Worker<p>Modularization brings with it several advantages:</p> 1053*7c568831SAndroid Build Coastguard Worker 1054*7c568831SAndroid Build Coastguard Worker<ul> 1055*7c568831SAndroid Build Coastguard Worker<li> 1056*7c568831SAndroid Build Coastguard Worker<p>It provides a formal mechanism for sub-setting XHTML.</p> 1057*7c568831SAndroid Build Coastguard Worker</li> 1058*7c568831SAndroid Build Coastguard Worker 1059*7c568831SAndroid Build Coastguard Worker<li> 1060*7c568831SAndroid Build Coastguard Worker<p>It provides a formal mechanism for extending XHTML.</p> 1061*7c568831SAndroid Build Coastguard Worker</li> 1062*7c568831SAndroid Build Coastguard Worker 1063*7c568831SAndroid Build Coastguard Worker<li> 1064*7c568831SAndroid Build Coastguard Worker<p>It simplifies the transformation between document types.</p> 1065*7c568831SAndroid Build Coastguard Worker</li> 1066*7c568831SAndroid Build Coastguard Worker 1067*7c568831SAndroid Build Coastguard Worker<li> 1068*7c568831SAndroid Build Coastguard Worker<p>It promotes the reuse of modules in new document types.</p> 1069*7c568831SAndroid Build Coastguard Worker</li> 1070*7c568831SAndroid Build Coastguard Worker</ul> 1071*7c568831SAndroid Build Coastguard Worker 1072*7c568831SAndroid Build Coastguard Worker<h2><a name="profiles" id="profiles">6.3 Document 1073*7c568831SAndroid Build Coastguard WorkerProfiles</a></h2> 1074*7c568831SAndroid Build Coastguard Worker 1075*7c568831SAndroid Build Coastguard Worker<p>A document profile specifies the syntax and semantics of a set 1076*7c568831SAndroid Build Coastguard Workerof documents. Conformance to a document profile provides a basis 1077*7c568831SAndroid Build Coastguard Workerfor interoperability guarantees. The document profile specifies 1078*7c568831SAndroid Build Coastguard Workerthe facilities required to process documents of that type, e.g. 1079*7c568831SAndroid Build Coastguard Workerwhich image formats can be used, levels of scripting, style sheet 1080*7c568831SAndroid Build Coastguard Workersupport, and so on.</p> 1081*7c568831SAndroid Build Coastguard Worker 1082*7c568831SAndroid Build Coastguard Worker<p>For product designers this enables various groups to define 1083*7c568831SAndroid Build Coastguard Workertheir own standard profile.</p> 1084*7c568831SAndroid Build Coastguard Worker 1085*7c568831SAndroid Build Coastguard Worker<p>For authors this will obviate the need to write several 1086*7c568831SAndroid Build Coastguard Workerdifferent versions of documents for different clients.</p> 1087*7c568831SAndroid Build Coastguard Worker 1088*7c568831SAndroid Build Coastguard Worker<p>For special groups such as chemists, medical doctors, or 1089*7c568831SAndroid Build Coastguard Workermathematicians this allows a special profile to be built using 1090*7c568831SAndroid Build Coastguard Workerstandard HTML elements plus a group of elements geared to the 1091*7c568831SAndroid Build Coastguard Workerspecialist's needs.</p> 1092*7c568831SAndroid Build Coastguard Worker 1093*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1094*7c568831SAndroid Build Coastguard Worker<h1><a name="appendices" id="appendices"></a> 1095*7c568831SAndroid Build Coastguard Worker<a name="dtds" id="dtds">Appendix A. DTDs</a></h1> 1096*7c568831SAndroid Build Coastguard Worker 1097*7c568831SAndroid Build Coastguard Worker<p><b>This appendix is normative.</b></p> 1098*7c568831SAndroid Build Coastguard Worker 1099*7c568831SAndroid Build Coastguard Worker<p>These DTDs and entity sets form a normative part of this 1100*7c568831SAndroid Build Coastguard Workerspecification. The complete set of DTD files together with an XML 1101*7c568831SAndroid Build Coastguard Workerdeclaration and SGML Open Catalog is included in the <a href= 1102*7c568831SAndroid Build Coastguard Worker"xhtml1.zip">zip file</a> for this specification.</p> 1103*7c568831SAndroid Build Coastguard Worker 1104*7c568831SAndroid Build Coastguard Worker<h2><a name="h-A1" id="h-A1">A.1 Document Type 1105*7c568831SAndroid Build Coastguard WorkerDefinitions</a></h2> 1106*7c568831SAndroid Build Coastguard Worker 1107*7c568831SAndroid Build Coastguard Worker<p>These DTDs approximate the HTML 4.0 DTDs. It is likely that 1108*7c568831SAndroid Build Coastguard Workerwhen the DTDs are modularized, a method of DTD construction will 1109*7c568831SAndroid Build Coastguard Workerbe employed that corresponds more closely to HTML 4.0.</p> 1110*7c568831SAndroid Build Coastguard Worker 1111*7c568831SAndroid Build Coastguard Worker<ul> 1112*7c568831SAndroid Build Coastguard Worker<li> 1113*7c568831SAndroid Build Coastguard Worker<p><a href="DTD/xhtml1-strict.dtd" type="text/plain"> 1114*7c568831SAndroid Build Coastguard WorkerXHTML-1.0-Strict</a></p> 1115*7c568831SAndroid Build Coastguard Worker</li> 1116*7c568831SAndroid Build Coastguard Worker 1117*7c568831SAndroid Build Coastguard Worker<li> 1118*7c568831SAndroid Build Coastguard Worker<p><a href="DTD/xhtml1-transitional.dtd" type="text/plain"> 1119*7c568831SAndroid Build Coastguard WorkerXHTML-1.0-Transitional</a></p> 1120*7c568831SAndroid Build Coastguard Worker</li> 1121*7c568831SAndroid Build Coastguard Worker 1122*7c568831SAndroid Build Coastguard Worker<li> 1123*7c568831SAndroid Build Coastguard Worker<p><a href="DTD/xhtml1-frameset.dtd" type="text/plain"> 1124*7c568831SAndroid Build Coastguard WorkerXHTML-1.0-Frameset</a></p> 1125*7c568831SAndroid Build Coastguard Worker</li> 1126*7c568831SAndroid Build Coastguard Worker</ul> 1127*7c568831SAndroid Build Coastguard Worker 1128*7c568831SAndroid Build Coastguard Worker<h2><a name="h-A2" id="h-A2">A.2 Entity Sets</a></h2> 1129*7c568831SAndroid Build Coastguard Worker 1130*7c568831SAndroid Build Coastguard Worker<p>The XHTML entity sets are the same as for HTML 4.0, but have 1131*7c568831SAndroid Build Coastguard Workerbeen modified to be valid XML 1.0 entity declarations. Note the 1132*7c568831SAndroid Build Coastguard Workerentity for the Euro currency sign (<code>&euro;</code> or 1133*7c568831SAndroid Build Coastguard Worker<code>&#8364;</code> or <code>&#x20AC;</code>) is defined 1134*7c568831SAndroid Build Coastguard Workeras part of the special characters.</p> 1135*7c568831SAndroid Build Coastguard Worker 1136*7c568831SAndroid Build Coastguard Worker<ul> 1137*7c568831SAndroid Build Coastguard Worker<li> 1138*7c568831SAndroid Build Coastguard Worker<p><a href="DTD/xhtml-lat1.ent">Latin-1 characters</a></p> 1139*7c568831SAndroid Build Coastguard Worker</li> 1140*7c568831SAndroid Build Coastguard Worker 1141*7c568831SAndroid Build Coastguard Worker<li> 1142*7c568831SAndroid Build Coastguard Worker<p><a href="DTD/xhtml-special.ent">Special characters</a></p> 1143*7c568831SAndroid Build Coastguard Worker</li> 1144*7c568831SAndroid Build Coastguard Worker 1145*7c568831SAndroid Build Coastguard Worker<li> 1146*7c568831SAndroid Build Coastguard Worker<p><a href="DTD/xhtml-symbol.ent">Symbols</a></p> 1147*7c568831SAndroid Build Coastguard Worker</li> 1148*7c568831SAndroid Build Coastguard Worker</ul> 1149*7c568831SAndroid Build Coastguard Worker 1150*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1151*7c568831SAndroid Build Coastguard Worker<h1><a name="prohibitions" id="prohibitions">Appendix B. Element 1152*7c568831SAndroid Build Coastguard WorkerProhibitions</a></h1> 1153*7c568831SAndroid Build Coastguard Worker 1154*7c568831SAndroid Build Coastguard Worker<p><b>This appendix is normative.</b></p> 1155*7c568831SAndroid Build Coastguard Worker 1156*7c568831SAndroid Build Coastguard Worker<p>The following elements have prohibitions on which elements 1157*7c568831SAndroid Build Coastguard Workerthey can contain (see <a href="#h-4.9">Section 4.9</a>). This 1158*7c568831SAndroid Build Coastguard Workerprohibition applies to all depths of nesting, i.e. it contains 1159*7c568831SAndroid Build Coastguard Workerall the descendant elements.</p> 1160*7c568831SAndroid Build Coastguard Worker 1161*7c568831SAndroid Build Coastguard Worker<dl><dt><code class="tag">a</code></dt> 1162*7c568831SAndroid Build Coastguard Worker<dd> 1163*7c568831SAndroid Build Coastguard Workercannot contain other <code>a</code> elements.</dd> 1164*7c568831SAndroid Build Coastguard Worker<dt><code class="tag">pre</code></dt> 1165*7c568831SAndroid Build Coastguard Worker<dd>cannot contain the <code>img</code>, <code>object</code>, 1166*7c568831SAndroid Build Coastguard Worker<code>big</code>, <code>small</code>, <code>sub</code>, or <code> 1167*7c568831SAndroid Build Coastguard Workersup</code> elements.</dd> 1168*7c568831SAndroid Build Coastguard Worker 1169*7c568831SAndroid Build Coastguard Worker<dt><code class="tag">button</code></dt> 1170*7c568831SAndroid Build Coastguard Worker<dd>cannot contain the <code>input</code>, <code>select</code>, 1171*7c568831SAndroid Build Coastguard Worker<code>textarea</code>, <code>label</code>, <code>button</code>, 1172*7c568831SAndroid Build Coastguard Worker<code>form</code>, <code>fieldset</code>, <code>iframe</code> or 1173*7c568831SAndroid Build Coastguard Worker<code>isindex</code> elements.</dd> 1174*7c568831SAndroid Build Coastguard Worker<dt><code class="tag">label</code></dt> 1175*7c568831SAndroid Build Coastguard Worker<dd>cannot contain other <code class="tag">label</code> elements.</dd> 1176*7c568831SAndroid Build Coastguard Worker<dt><code class="tag">form</code></dt> 1177*7c568831SAndroid Build Coastguard Worker<dd>cannot contain other <code>form</code> elements.</dd> 1178*7c568831SAndroid Build Coastguard Worker</dl> 1179*7c568831SAndroid Build Coastguard Worker 1180*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1181*7c568831SAndroid Build Coastguard Worker<h1><a name="guidelines" id="guidelines">Appendix C. 1182*7c568831SAndroid Build Coastguard WorkerHTML Compatibility Guidelines</a></h1> 1183*7c568831SAndroid Build Coastguard Worker 1184*7c568831SAndroid Build Coastguard Worker<p><b>This appendix is informative.</b></p> 1185*7c568831SAndroid Build Coastguard Worker 1186*7c568831SAndroid Build Coastguard Worker<p>This appendix summarizes design guidelines for authors who 1187*7c568831SAndroid Build Coastguard Workerwish their XHTML documents to render on existing HTML user 1188*7c568831SAndroid Build Coastguard Workeragents.</p> 1189*7c568831SAndroid Build Coastguard Worker 1190*7c568831SAndroid Build Coastguard Worker<h2>C.1 Processing Instructions</h2> 1191*7c568831SAndroid Build Coastguard Worker<p>Be aware that processing instructions are rendered on some 1192*7c568831SAndroid Build Coastguard Workeruser agents. However, also note that when the XML declaration is not included 1193*7c568831SAndroid Build Coastguard Workerin a document, the document can only use the default character encodings UTF-8 1194*7c568831SAndroid Build Coastguard Workeror UTF-16.</p> 1195*7c568831SAndroid Build Coastguard Worker 1196*7c568831SAndroid Build Coastguard Worker<h2>C.2 Empty Elements</h2> 1197*7c568831SAndroid Build Coastguard Worker<p>Include a space before the trailing <code>/</code> and <code> 1198*7c568831SAndroid Build Coastguard Worker></code> of empty elements, e.g. <code class="greenmono"> 1199*7c568831SAndroid Build Coastguard Worker<br /></code>, <code class="greenmono"> 1200*7c568831SAndroid Build Coastguard Worker<hr /></code> and <code class="greenmono"><img 1201*7c568831SAndroid Build Coastguard Workersrc="karen.jpg" alt="Karen" /></code>. Also, use the 1202*7c568831SAndroid Build Coastguard Workerminimized tag syntax for empty elements, e.g. <code class= 1203*7c568831SAndroid Build Coastguard Worker"greenmono"><br /></code>, as the alternative syntax <code 1204*7c568831SAndroid Build Coastguard Workerclass="greenmono"><br></br></code> allowed by XML 1205*7c568831SAndroid Build Coastguard Workergives uncertain results in many existing user agents.</p> 1206*7c568831SAndroid Build Coastguard Worker 1207*7c568831SAndroid Build Coastguard Worker<h2>C.3 Element Minimization and Empty Element Content</h2> 1208*7c568831SAndroid Build Coastguard Worker<p>Given an empty instance of an element whose content model is 1209*7c568831SAndroid Build Coastguard Workernot <code>EMPTY</code> (for example, an empty title or paragraph) 1210*7c568831SAndroid Build Coastguard Workerdo not use the minimized form (e.g. use <code class="greenmono"> 1211*7c568831SAndroid Build Coastguard Worker<p> </p></code> and not <code class="greenmono"> 1212*7c568831SAndroid Build Coastguard Worker<p /></code>).</p> 1213*7c568831SAndroid Build Coastguard Worker 1214*7c568831SAndroid Build Coastguard Worker<h2>C.4 Embedded Style Sheets and Scripts</h2> 1215*7c568831SAndroid Build Coastguard Worker<p>Use external style sheets if your style sheet uses <code> 1216*7c568831SAndroid Build Coastguard Worker<</code> or <code>&</code> or <code>]]></code> or <code>--</code>. Use 1217*7c568831SAndroid Build Coastguard Workerexternal scripts if your script uses <code><</code> or <code> 1218*7c568831SAndroid Build Coastguard Worker&</code> or <code>]]></code> or <code>--</code>. Note that XML parsers 1219*7c568831SAndroid Build Coastguard Workerare permitted to silently remove the contents of comments. Therefore, the historical 1220*7c568831SAndroid Build Coastguard Workerpractice of "hiding" scripts and style sheets within comments to make the 1221*7c568831SAndroid Build Coastguard Workerdocuments backward compatible is likely to not work as expected in XML-based 1222*7c568831SAndroid Build Coastguard Workerimplementations.</p> 1223*7c568831SAndroid Build Coastguard Worker 1224*7c568831SAndroid Build Coastguard Worker<h2>C.5 Line Breaks within Attribute Values</h2> 1225*7c568831SAndroid Build Coastguard Worker<p>Avoid line breaks and multiple whitespace characters within 1226*7c568831SAndroid Build Coastguard Workerattribute values. These are handled inconsistently by user 1227*7c568831SAndroid Build Coastguard Workeragents.</p> 1228*7c568831SAndroid Build Coastguard Worker 1229*7c568831SAndroid Build Coastguard Worker<h2>C.6 Isindex</h2> 1230*7c568831SAndroid Build Coastguard Worker<p>Don't include more than one <code>isindex</code> element in 1231*7c568831SAndroid Build Coastguard Workerthe document <code>head</code>. The <code>isindex</code> element 1232*7c568831SAndroid Build Coastguard Workeris deprecated in favor of the <code>input</code> element.</p> 1233*7c568831SAndroid Build Coastguard Worker 1234*7c568831SAndroid Build Coastguard Worker<h2>C.7 The <code>lang</code> and <code>xml:lang</code> Attributes</h2> 1235*7c568831SAndroid Build Coastguard Worker<p>Use both the <code>lang</code> and <code>xml:lang</code> 1236*7c568831SAndroid Build Coastguard Workerattributes when specifying the language of an element. The value 1237*7c568831SAndroid Build Coastguard Workerof the <code>xml:lang</code> attribute takes precedence.</p> 1238*7c568831SAndroid Build Coastguard Worker 1239*7c568831SAndroid Build Coastguard Worker<h2>C.8 Fragment Identifiers</h2> 1240*7c568831SAndroid Build Coastguard Worker<p>In XML, <abbr title="Uniform Resource Identifiers">URIs</abbr> [<a href="#ref-rfc2396">RFC2396</a>] that end with fragment identifiers of the form 1241*7c568831SAndroid Build Coastguard Worker<code>"#foo"</code> do not refer to elements with an attribute 1242*7c568831SAndroid Build Coastguard Worker<code>name="foo"</code>; rather, they refer to elements with an 1243*7c568831SAndroid Build Coastguard Workerattribute defined to be of type <code>ID</code>, e.g., the <code> 1244*7c568831SAndroid Build Coastguard Workerid</code> attribute in HTML 4.0. Many existing HTML clients don't 1245*7c568831SAndroid Build Coastguard Workersupport the use of <code>ID</code>-type attributes in this way, 1246*7c568831SAndroid Build Coastguard Workerso identical values may be supplied for both of these attributes to ensure 1247*7c568831SAndroid Build Coastguard Workermaximum forward and backward compatibility (e.g., <code class= 1248*7c568831SAndroid Build Coastguard Worker"greenmono"><a id="foo" name="foo">...</a></code>).</p> 1249*7c568831SAndroid Build Coastguard Worker 1250*7c568831SAndroid Build Coastguard Worker<p>Further, since the set of 1251*7c568831SAndroid Build Coastguard Workerlegal values for attributes of type <code>ID</code> is much smaller than 1252*7c568831SAndroid Build Coastguard Workerfor those of type <code>CDATA</code>, the type of the <code>name</code> 1253*7c568831SAndroid Build Coastguard Workerattribute has been changed to <code>NMTOKEN</code>. This attribute is 1254*7c568831SAndroid Build Coastguard Workerconstrained such that it can only have the same values as type 1255*7c568831SAndroid Build Coastguard Worker<code>ID</code>, or as the <code>Name</code> production in XML 1.0 Section 1256*7c568831SAndroid Build Coastguard Worker2.5, production 5. Unfortunately, this constraint cannot be expressed in the 1257*7c568831SAndroid Build Coastguard WorkerXHTML 1.0 DTDs. Because of this change, care must be taken when 1258*7c568831SAndroid Build Coastguard Workerconverting existing HTML documents. The values of these attributes 1259*7c568831SAndroid Build Coastguard Workermust be unique within the document, valid, and any references to these 1260*7c568831SAndroid Build Coastguard Workerfragment identifiers (both 1261*7c568831SAndroid Build Coastguard Workerinternal and external) must be updated should the values be changed during 1262*7c568831SAndroid Build Coastguard Workerconversion.</p> 1263*7c568831SAndroid Build Coastguard Worker<p>Finally, note that XHTML 1.0 has deprecated the 1264*7c568831SAndroid Build Coastguard Worker<code>name</code> attribute of the <code>a</code>, <code>applet</code>, <code>frame</code>, <code>iframe</code>, <code>img</code>, and <code>map</code> 1265*7c568831SAndroid Build Coastguard Workerelements, and it will be 1266*7c568831SAndroid Build Coastguard Workerremoved from XHTML in subsequent versions.</p> 1267*7c568831SAndroid Build Coastguard Worker 1268*7c568831SAndroid Build Coastguard Worker<h2>C.9 Character Encoding</h2> 1269*7c568831SAndroid Build Coastguard Worker<p>To specify a character encoding in the document, use both the 1270*7c568831SAndroid Build Coastguard Workerencoding attribute specification on the xml declaration (e.g. 1271*7c568831SAndroid Build Coastguard Worker<code class="greenmono"><?xml version="1.0" 1272*7c568831SAndroid Build Coastguard Workerencoding="EUC-JP"?></code>) and a meta http-equiv statement 1273*7c568831SAndroid Build Coastguard Worker(e.g. <code class="greenmono"><meta http-equiv="Content-type" 1274*7c568831SAndroid Build Coastguard Workercontent='text/html; charset="EUC-JP"' /></code>). The 1275*7c568831SAndroid Build Coastguard Workervalue of the encoding attribute of the xml processing instruction 1276*7c568831SAndroid Build Coastguard Workertakes precedence.</p> 1277*7c568831SAndroid Build Coastguard Worker 1278*7c568831SAndroid Build Coastguard Worker<h2>C.10 Boolean Attributes</h2> 1279*7c568831SAndroid Build Coastguard Worker<p>Some HTML user agents are unable to interpret boolean 1280*7c568831SAndroid Build Coastguard Workerattributes when these appear in their full (non-minimized) form, 1281*7c568831SAndroid Build Coastguard Workeras required by XML 1.0. Note this problem doesn't effect user 1282*7c568831SAndroid Build Coastguard Workeragents compliant with HTML 4.0. The following attributes are 1283*7c568831SAndroid Build Coastguard Workerinvolved: <code>compact</code>, <code>nowrap</code>, <code> 1284*7c568831SAndroid Build Coastguard Workerismap</code>, <code>declare</code>, <code>noshade</code>, <code> 1285*7c568831SAndroid Build Coastguard Workerchecked</code>, <code>disabled</code>, <code>readonly</code>, 1286*7c568831SAndroid Build Coastguard Worker<code>multiple</code>, <code>selected</code>, <code> 1287*7c568831SAndroid Build Coastguard Workernoresize</code>, <code>defer</code>.</p> 1288*7c568831SAndroid Build Coastguard Worker 1289*7c568831SAndroid Build Coastguard Worker<h2>C.11 Document Object Model and XHTML</h2> 1290*7c568831SAndroid Build Coastguard Worker<p> 1291*7c568831SAndroid Build Coastguard WorkerThe Document Object Model level 1 Recommendation [<a href="#ref-dom">DOM</a>] 1292*7c568831SAndroid Build Coastguard Workerdefines document object model interfaces for XML and HTML 4.0. The HTML 4.0 1293*7c568831SAndroid Build Coastguard Workerdocument object model specifies that HTML element and attribute names are 1294*7c568831SAndroid Build Coastguard Workerreturned in upper-case. The XML document object model specifies that 1295*7c568831SAndroid Build Coastguard Workerelement and attribute names are returned in the case they are specified. In 1296*7c568831SAndroid Build Coastguard WorkerXHTML 1.0, elements and attributes are specified in lower-case. This apparent difference can be 1297*7c568831SAndroid Build Coastguard Workeraddressed in two ways: 1298*7c568831SAndroid Build Coastguard Worker</p> 1299*7c568831SAndroid Build Coastguard Worker<ol> 1300*7c568831SAndroid Build Coastguard Worker<li>Applications that access XHTML documents served as Internet media type 1301*7c568831SAndroid Build Coastguard Worker<code>text/html</code> 1302*7c568831SAndroid Build Coastguard Workervia the <abbr title="Document Object Model">DOM</abbr> can use the HTML DOM, 1303*7c568831SAndroid Build Coastguard Workerand can rely upon element and attribute names being returned in 1304*7c568831SAndroid Build Coastguard Workerupper-case from those interfaces.</li> 1305*7c568831SAndroid Build Coastguard Worker<li>Applications that access XHTML documents served as Internet media types 1306*7c568831SAndroid Build Coastguard Worker<code>text/xml</code> or <code>application/xml</code> 1307*7c568831SAndroid Build Coastguard Workercan also use the XML DOM. Elements and attributes will be returned in lower-case. 1308*7c568831SAndroid Build Coastguard WorkerAlso, some XHTML elements may or may 1309*7c568831SAndroid Build Coastguard Workernot appear 1310*7c568831SAndroid Build Coastguard Workerin the object tree because they are optional in the content model 1311*7c568831SAndroid Build Coastguard Worker(e.g. the <code>tbody</code> element within 1312*7c568831SAndroid Build Coastguard Worker<code>table</code>). This occurs because in HTML 4.0 some elements were 1313*7c568831SAndroid Build Coastguard Workerpermitted to be minimized such that their start and end tags are both omitted 1314*7c568831SAndroid Build Coastguard Worker(an SGML feature). 1315*7c568831SAndroid Build Coastguard WorkerThis is not possible in XML. Rather than require document authors to insert 1316*7c568831SAndroid Build Coastguard Workerextraneous elements, XHTML has made the elements optional. 1317*7c568831SAndroid Build Coastguard WorkerApplications need to adapt to this 1318*7c568831SAndroid Build Coastguard Workeraccordingly.</li> 1319*7c568831SAndroid Build Coastguard Worker</ol> 1320*7c568831SAndroid Build Coastguard Worker 1321*7c568831SAndroid Build Coastguard Worker<h2>C.12 Using Ampersands in Attribute Values</h2> 1322*7c568831SAndroid Build Coastguard Worker<p> 1323*7c568831SAndroid Build Coastguard WorkerWhen an attribute value contains an ampersand, it must be expressed as a character 1324*7c568831SAndroid Build Coastguard Workerentity reference 1325*7c568831SAndroid Build Coastguard Worker(e.g. "<code>&amp;</code>"). For example, when the 1326*7c568831SAndroid Build Coastguard Worker<code>href</code> attribute 1327*7c568831SAndroid Build Coastguard Workerof the <code>a</code> element refers to a 1328*7c568831SAndroid Build Coastguard WorkerCGI script that takes parameters, it must be expressed as 1329*7c568831SAndroid Build Coastguard Worker<code>http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user</code> 1330*7c568831SAndroid Build Coastguard Workerrather than as 1331*7c568831SAndroid Build Coastguard Worker<code>http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user</code>. 1332*7c568831SAndroid Build Coastguard Worker</p> 1333*7c568831SAndroid Build Coastguard Worker 1334*7c568831SAndroid Build Coastguard Worker<h2>C.13 Cascading Style Sheets (CSS) and XHTML</h2> 1335*7c568831SAndroid Build Coastguard Worker 1336*7c568831SAndroid Build Coastguard Worker<p>The Cascading Style Sheets level 2 Recommendation [<a href="#ref-css2">CSS2</a>] defines style 1337*7c568831SAndroid Build Coastguard Workerproperties which are applied to the parse tree of the HTML or XML 1338*7c568831SAndroid Build Coastguard Workerdocument. Differences in parsing will produce different visual or 1339*7c568831SAndroid Build Coastguard Workeraural results, depending on the selectors used. The following hints 1340*7c568831SAndroid Build Coastguard Workerwill reduce this effect for documents which are served without 1341*7c568831SAndroid Build Coastguard Workermodification as both media types:</p> 1342*7c568831SAndroid Build Coastguard Worker 1343*7c568831SAndroid Build Coastguard Worker<ol> 1344*7c568831SAndroid Build Coastguard Worker<li> 1345*7c568831SAndroid Build Coastguard WorkerCSS style sheets for XHTML should use lower case element and 1346*7c568831SAndroid Build Coastguard Workerattribute names.</li> 1347*7c568831SAndroid Build Coastguard Worker 1348*7c568831SAndroid Build Coastguard Worker 1349*7c568831SAndroid Build Coastguard Worker<li>In tables, the tbody element will be inferred by the parser of an 1350*7c568831SAndroid Build Coastguard WorkerHTML user agent, but not by the parser of an XML user agent. Therefore 1351*7c568831SAndroid Build Coastguard Workeryou should always explicitly add a tbody element if it is referred to 1352*7c568831SAndroid Build Coastguard Workerin a CSS selector.</li> 1353*7c568831SAndroid Build Coastguard Worker 1354*7c568831SAndroid Build Coastguard Worker<li>Within the XHTML name space, user agents are expected to 1355*7c568831SAndroid Build Coastguard Workerrecognize the "id" attribute as an attribute of type ID. 1356*7c568831SAndroid Build Coastguard WorkerTherefore, style sheets should be able to continue using the 1357*7c568831SAndroid Build Coastguard Workershorthand "#" selector syntax even if the user agent does not read 1358*7c568831SAndroid Build Coastguard Workerthe DTD.</li> 1359*7c568831SAndroid Build Coastguard Worker 1360*7c568831SAndroid Build Coastguard Worker<li>Within the XHTML name space, user agents are expected to 1361*7c568831SAndroid Build Coastguard Workerrecognize the "class" attribute. Therefore, style sheets should be 1362*7c568831SAndroid Build Coastguard Workerable to continue using the shorthand "." selector syntax.</li> 1363*7c568831SAndroid Build Coastguard Worker 1364*7c568831SAndroid Build Coastguard Worker<li> 1365*7c568831SAndroid Build Coastguard WorkerCSS defines different conformance rules for HTML and XML documents; 1366*7c568831SAndroid Build Coastguard Workerbe aware that the HTML rules apply to XHTML documents delivered as 1367*7c568831SAndroid Build Coastguard WorkerHTML and the XML rules apply to XHTML documents delivered as XML.</li> 1368*7c568831SAndroid Build Coastguard Worker</ol> 1369*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1370*7c568831SAndroid Build Coastguard Worker<h1><a name="acks" id="acks">Appendix D. 1371*7c568831SAndroid Build Coastguard WorkerAcknowledgements</a></h1> 1372*7c568831SAndroid Build Coastguard Worker 1373*7c568831SAndroid Build Coastguard Worker<p><b>This appendix is informative.</b></p> 1374*7c568831SAndroid Build Coastguard Worker 1375*7c568831SAndroid Build Coastguard Worker<p>This specification was written with the participation of the 1376*7c568831SAndroid Build Coastguard Workermembers of the W3C HTML working group:</p> 1377*7c568831SAndroid Build Coastguard Worker 1378*7c568831SAndroid Build Coastguard Worker<dl> 1379*7c568831SAndroid Build Coastguard Worker<dd>Steven Pemberton, CWI (HTML Working Group Chair)<br /> 1380*7c568831SAndroid Build Coastguard WorkerMurray Altheim, Sun Microsystems<br /> 1381*7c568831SAndroid Build Coastguard WorkerDaniel Austin, CNET: The Computer Network<br /> 1382*7c568831SAndroid Build Coastguard WorkerFrank Boumphrey, HTML Writers Guild<br /> 1383*7c568831SAndroid Build Coastguard WorkerJohn Burger, Mitre<br /> 1384*7c568831SAndroid Build Coastguard WorkerAndrew W. Donoho, IBM<br /> 1385*7c568831SAndroid Build Coastguard WorkerSam Dooley, IBM<br /> 1386*7c568831SAndroid Build Coastguard WorkerKlaus Hofrichter, GMD<br /> 1387*7c568831SAndroid Build Coastguard WorkerPhilipp Hoschka, W3C<br /> 1388*7c568831SAndroid Build Coastguard WorkerMasayasu Ishikawa, W3C<br /> 1389*7c568831SAndroid Build Coastguard WorkerWarner ten Kate, Philips Electronics<br /> 1390*7c568831SAndroid Build Coastguard WorkerPeter King, Phone.com<br /> 1391*7c568831SAndroid Build Coastguard WorkerPaula Klante, JetForm<br /> 1392*7c568831SAndroid Build Coastguard WorkerShin'ichi Matsui, W3C/Panasonic<br /> 1393*7c568831SAndroid Build Coastguard WorkerShane McCarron, Applied Testing and Technology (The Open Group through August 1394*7c568831SAndroid Build Coastguard Worker1999)<br /> 1395*7c568831SAndroid Build Coastguard WorkerAnn Navarro, HTML Writers Guild<br /> 1396*7c568831SAndroid Build Coastguard WorkerZach Nies, Quark<br /> 1397*7c568831SAndroid Build Coastguard WorkerDave Raggett, W3C/HP (W3C lead for HTML)<br /> 1398*7c568831SAndroid Build Coastguard WorkerPatrick Schmitz, Microsoft<br /> 1399*7c568831SAndroid Build Coastguard WorkerSebastian Schnitzenbaumer, Stack Overflow<br /> 1400*7c568831SAndroid Build Coastguard WorkerChris Wilson, Microsoft<br /> 1401*7c568831SAndroid Build Coastguard WorkerTed Wugofski, Gateway 2000<br /> 1402*7c568831SAndroid Build Coastguard WorkerDan Zigmond, WebTV Networks</dd> 1403*7c568831SAndroid Build Coastguard Worker</dl> 1404*7c568831SAndroid Build Coastguard Worker 1405*7c568831SAndroid Build Coastguard Worker<!--OddPage--> 1406*7c568831SAndroid Build Coastguard Worker<h1><a name="refs" id="refs">Appendix E. References</a></h1> 1407*7c568831SAndroid Build Coastguard Worker 1408*7c568831SAndroid Build Coastguard Worker<p><b>This appendix is informative.</b></p> 1409*7c568831SAndroid Build Coastguard Worker 1410*7c568831SAndroid Build Coastguard Worker<dl> 1411*7c568831SAndroid Build Coastguard Worker 1412*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-css2" id="ref-css2"><b>[CSS2]</b></a></dt> 1413*7c568831SAndroid Build Coastguard Worker 1414*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.w3.org/TR/REC-CSS2">"Cascading Style Sheets, level 2 (CSS2) Specification"</a>, B. 1415*7c568831SAndroid Build Coastguard WorkerBos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.<br /> 1416*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.w3.org/TR/REC-CSS2"> 1417*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/REC-CSS2</a></dd> 1418*7c568831SAndroid Build Coastguard Worker 1419*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-dom" id="ref-dom"><b>[DOM]</b></a></dt> 1420*7c568831SAndroid Build Coastguard Worker 1421*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.w3.org/TR/REC-DOM-Level-1">"Document Object Model (DOM) Level 1 Specification"</a>, Lauren 1422*7c568831SAndroid Build Coastguard WorkerWood <i>et al.</i>, 1 October 1998.<br /> 1423*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.w3.org/TR/REC-DOM-Level-1"> 1424*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/REC-DOM-Level-1</a></dd> 1425*7c568831SAndroid Build Coastguard Worker 1426*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-html4" id="ref-html4"><b>[HTML]</b></a></dt> 1427*7c568831SAndroid Build Coastguard Worker 1428*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.w3.org/TR/1999/PR-html40-19990824">"HTML 4.01 Specification"</a>, D. Raggett, A. Le Hors, I. 1429*7c568831SAndroid Build Coastguard WorkerJacobs, 24 August 1999.<br /> 1430*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.w3.org/TR/1999/PR-html40-19990824"> 1431*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/1999/PR-html40-19990824</a></dd> 1432*7c568831SAndroid Build Coastguard Worker 1433*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-posix" id="ref-posix"><b>[POSIX.1]</b></a></dt> 1434*7c568831SAndroid Build Coastguard Worker 1435*7c568831SAndroid Build Coastguard Worker<dd>"ISO/IEC 9945-1:1990 Information Technology - Portable 1436*7c568831SAndroid Build Coastguard WorkerOperating System Interface (POSIX) - Part 1: System Application 1437*7c568831SAndroid Build Coastguard WorkerProgram Interface (API) [C Language]", Institute of Electrical 1438*7c568831SAndroid Build Coastguard Workerand Electronics Engineers, Inc, 1990.</dd> 1439*7c568831SAndroid Build Coastguard Worker 1440*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-rfc2046" id="ref-rfc2046"><b> 1441*7c568831SAndroid Build Coastguard Worker[RFC2046]</b></a></dt> 1442*7c568831SAndroid Build Coastguard Worker 1443*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.ietf.org/rfc/rfc2046.txt">"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part 1444*7c568831SAndroid Build Coastguard WorkerTwo: Media Types"</a>, N. Freed and N. Borenstein, November 1445*7c568831SAndroid Build Coastguard Worker1996.<br /> 1446*7c568831SAndroid Build Coastguard WorkerAvailable at <a href="http://www.ietf.org/rfc/rfc2046.txt"> 1447*7c568831SAndroid Build Coastguard Workerhttp://www.ietf.org/rfc/rfc2046.txt</a>. Note that this RFC 1448*7c568831SAndroid Build Coastguard Workerobsoletes RFC1521, RFC1522, and RFC1590.</dd> 1449*7c568831SAndroid Build Coastguard Worker 1450*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-rfc2119" id="ref-rfc2119"><b> 1451*7c568831SAndroid Build Coastguard Worker[RFC2119]</b></a></dt> 1452*7c568831SAndroid Build Coastguard Worker 1453*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.ietf.org/rfc/rfc2119.txt">"RFC2119: Key words for use in RFCs to Indicate Requirement 1454*7c568831SAndroid Build Coastguard WorkerLevels"</a>, S. Bradner, March 1997.<br /> 1455*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.ietf.org/rfc/rfc2119.txt"> 1456*7c568831SAndroid Build Coastguard Workerhttp://www.ietf.org/rfc/rfc2119.txt</a></dd> 1457*7c568831SAndroid Build Coastguard Worker 1458*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-rfc2376" id="ref-rfc2376"><b> 1459*7c568831SAndroid Build Coastguard Worker[RFC2376]</b></a></dt> 1460*7c568831SAndroid Build Coastguard Worker 1461*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.ietf.org/rfc/rfc2376.txt">"RFC2376: XML Media Types"</a>, E. Whitehead, M. Murata, July 1462*7c568831SAndroid Build Coastguard Worker1998.<br /> 1463*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.ietf.org/rfc/rfc2376.txt"> 1464*7c568831SAndroid Build Coastguard Workerhttp://www.ietf.org/rfc/rfc2376.txt</a></dd> 1465*7c568831SAndroid Build Coastguard Worker 1466*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-rfc2396" id="ref-rfc2396"><b> 1467*7c568831SAndroid Build Coastguard Worker[RFC2396]</b></a></dt> 1468*7c568831SAndroid Build Coastguard Worker 1469*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.ietf.org/rfc/rfc2396.txt">"RFC2396: Uniform Resource Identifiers (URI): Generic 1470*7c568831SAndroid Build Coastguard WorkerSyntax"</a>, T. Berners-Lee, R. Fielding, L. Masinter, August 1471*7c568831SAndroid Build Coastguard Worker1998.<br /> 1472*7c568831SAndroid Build Coastguard WorkerThis document updates RFC1738 and RFC1808.<br /> 1473*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.ietf.org/rfc/rfc2396.txt"> 1474*7c568831SAndroid Build Coastguard Workerhttp://www.ietf.org/rfc/rfc2396.txt</a></dd> 1475*7c568831SAndroid Build Coastguard Worker 1476*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-xml" id="ref-xml"><b>[XML]</b></a></dt> 1477*7c568831SAndroid Build Coastguard Worker 1478*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.w3.org/TR/REC-xml">"Extensible Markup Language (XML) 1.0 Specification"</a>, T. 1479*7c568831SAndroid Build Coastguard WorkerBray, J. Paoli, C. M. Sperberg-McQueen, 10 February 1998.<br /> 1480*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.w3.org/TR/REC-xml"> 1481*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/REC-xml</a></dd> 1482*7c568831SAndroid Build Coastguard Worker 1483*7c568831SAndroid Build Coastguard Worker<dt><a name="ref-xmlns" id="ref-xmlns"><b>[XMLNAMES]</b></a></dt> 1484*7c568831SAndroid Build Coastguard Worker 1485*7c568831SAndroid Build Coastguard Worker<dd><a href="http://www.w3.org/TR/REC-xml-names">"Namespaces in XML"</a>, T. Bray, D. Hollander, A. Layman, 14 1486*7c568831SAndroid Build Coastguard WorkerJanuary 1999.<br /> 1487*7c568831SAndroid Build Coastguard WorkerXML namespaces provide a simple method for qualifying names used 1488*7c568831SAndroid Build Coastguard Workerin XML documents by associating them with namespaces identified 1489*7c568831SAndroid Build Coastguard Workerby URI.<br /> 1490*7c568831SAndroid Build Coastguard WorkerAvailable at: <a href="http://www.w3.org/TR/REC-xml-names"> 1491*7c568831SAndroid Build Coastguard Workerhttp://www.w3.org/TR/REC-xml-names</a></dd> 1492*7c568831SAndroid Build Coastguard Worker 1493*7c568831SAndroid Build Coastguard Worker</dl> 1494*7c568831SAndroid Build Coastguard Worker<p><a href="http://www.w3.org/WAI/WCAG1AAA-Conformance" 1495*7c568831SAndroid Build Coastguard Workertitle="Explanation of Level Triple-A Conformance"> 1496*7c568831SAndroid Build Coastguard Worker<img height="32" width="88" 1497*7c568831SAndroid Build Coastguard Workersrc="wcag1AAA.gif" 1498*7c568831SAndroid Build Coastguard Workeralt="Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0" /></a></p> 1499*7c568831SAndroid Build Coastguard Worker<div class="navbar"> 1500*7c568831SAndroid Build Coastguard Worker <hr /> 1501*7c568831SAndroid Build Coastguard Worker <a href="#toc">table of contents</a> 1502*7c568831SAndroid Build Coastguard Worker</div> 1503*7c568831SAndroid Build Coastguard Worker</body> 1504*7c568831SAndroid Build Coastguard Worker</html> 1505*7c568831SAndroid Build Coastguard Worker 1506