﻿<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.w3.org/1999/xhtml ../../xhtml11.xsd" 
      version="-//W3C//DTD XHTML 1.1//EN">
<head>
<link rel="stylesheet" type="text/css" href="xhtml.css" />
<link rel="stylesheet" type="text/css" href="xhtml.css" />
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>XHTML 2.0</title>
<link rel="stylesheet" type="text/css" href="xhtml.css" />
<link rel="stylesheet" type="text/css" href= 
"http://www.w3.org/StyleSheets/TR/W3C-WD.css" />
<style type='text/css'>
.diff-old-a {
  font-size: smaller;
  color: red;
}

.diff-old {
  text-decoration: line-through;
}

.diff-new {
    background-color: yellow;
}

.diff-chg {
    background-color: lime;
}

</style>
</head>
<body>
<div class="head"><a href="http://www.w3.org/"><img height="48"
width="72" src="http://www.w3.org/Icons/w3c_home" alt="W3C" /></a> 

<h1><a id="title">XHTML&trade; 2.0</a></h1>

<h2><a id="subtitle">W3C Working Draft <span class= 
"diff-chg">8 June</span> 2003</a></h2>

<dl>
<dt>This version:</dt>

<dd><a href="http://www.w3.org/TR/2003/WD-xhtml2-20030608"><span
class="diff-chg">
http://www.w3.org/TR/2003/WD-xhtml2-20030608</span></a></dd>

<dt>Latest version:</dt>

<dd><a href="http://www.w3.org/TR/xhtml2">
http://www.w3.org/TR/xhtml2</a></dd>

<dt>Previous version:</dt>

<dd><a href="http://www.w3.org/TR/2003/WD-xhtml2-20030131">
http://www.w3.org/TR/2003/WD-xhtml2-20030131</a></dd>

<dt>Diff-marked version:</dt>

<dd><a href="xhtml2-diff.html">xhtml2-diff.html</a></dd>

<dt>Editors:</dt>

<dd>Jonny Axelsson, Opera Software</dd>

<dd><a href="mailto:rubydoo123@aol.com">Beth Epperson</a> ,
Netscape/ <abbr title="America Online">AOL</abbr></dd>

<dd><a href="http://www.w3.org/People/mimasa/">Masayasu
Ishikawa</a> , <abbr title="World Wide Web Consortium">
W3C</abbr></dd>

<dd><a href="mailto:shane@aptest.com">Shane McCarron</a> , <a href= 
"http://www.aptest.com">Applied Testing and Technology</a></dd>

<dd>Ann Navarro, WebGeek, <abbr title="Incorporated">
Inc.</abbr></dd>

<dd><a href="http://www.cwi.nl/~steven/">Steven Pemberton</a> ,
<abbr title="Centrum voor Wiskunde en Informatica" xml:lang="nl">
CWI</abbr> ( <abbr title="HyperText Markup Language">HTML</abbr>
Working Group Chair)</dd>
</dl>

<p>This document is also available in these non-normative formats:
<a href="xhtml2.html">Single XHTML file</a> , <a href="xhtml2.ps">
PostScript version</a> , <a href="xhtml2.pdf">PDF version</a> , <a
href="xhtml2.zip">ZIP archive</a> , and <a href="xhtml2.tgz">Gzip'd
TAR archive</a> .</p>

<p class="copyright"><a href= 
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">
Copyright</a> &copy;2003 <a href="http://www.w3.org/"><abbr title= 
"World Wide Web Consortium">W3C</abbr></a> <sup>&reg;</sup> ( <a
href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute 
of Technology">MIT</abbr></a> , <a href="http://www.ercim.org/">
<acronym title="European Research Consortium for Informatics and 
Mathematics">ERCIM</acronym></a> , <a href=
"http://www.keio.ac.jp/">Keio</a> ), All Rights Reserved. W3C <a
href=
"http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
liability</a> , <a href= 
"http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
trademark</a> , <a href= 
"http://www.w3.org/Consortium/Legal/copyright-documents">document
use</a> and <a href= 
"http://www.w3.org/Consortium/Legal/copyright-software">software
licensing</a> rules apply.</p>
</div>

<hr />
<h2><a  id="abstract">Abstract</a></h2>

<p>XHTML 2 is a <span class="diff-chg">general-purpose</span>
markup language designed for representing documents for a wide
range of purposes across the World Wide Web. To this end it does
not attempt to be all things to all people, supplying every
possible markup idiom, but to supply a generally useful set of
elements.</p>

<h2><a  id="status">Status of This Document</a></h2>

<p><em>This section describes the status of this document at the
time of its publication. Other documents may supersede this
document. The latest status of this document series is maintained
at the W3C.</em></p>

<p>This document is the fifth public Working Draft of this
specification. It should in no way be considered stable, and should
not be normatively referenced for any purposes whatsoever. This
version includes an early implementation of XHTML 2.0 in RELAX NG [
<a class="nref" href="#ref_RELAXNG">RELAXNG</a> ], but <em>does
not</em> include the implementations in DTD or XML Schema form.
Those will be included in subsequent versions, once the content of
this language stabilizes. This version also <em>does not</em>
address the issues revolving around the use of [ <a class="nref"
href="#ref_XLINK">XLINK</a> ] by XHTML 2. Those issues are being
worked independent of the evolution of this specification. Those
issues should, of course, be resolved as quickly as possible, and
the resolution will be reflected in a future draft. Finally, the
working group has started to resolve many of the issues that have
been submitted by the public. If your particular issue has not yet
been addressed, please be patient - there are many issues, and some
are more complex than others.</p>

<p>This document has been produced by the <a href= 
"http://www.w3.org/MarkUp/Group/">W3C HTML Working Group</a> ( <em>
<a href="http://cgi.w3.org/MemberAccess/AccessRequest">members
only</a></em> ) as part of the <a href= 
"http://www.w3.org/MarkUp/Activity">W3C HTML Activity</a> . The
goals of the HTML Working Group are discussed in the <a href= 
"http://www.w3.org/2002/05/html/charter">HTML Working Group
charter</a> .</p>

<p>Public discussion of XHTML takes place on <a href= 
"mailto:www-html@w3.org">www-html@w3.org</a> ( <a href= 
"http://lists.w3.org/Archives/Public/www-html/">archive</a> ). To
subscribe send an email to <a href=
"mailto:www-html-request@w3.org">www-html-request@w3.org</a> with
the word <em>subscribe</em> in the subject line.</p>

<p>Please report errors in this document to <a href= 
"mailto:www-html-editor@w3.org">www-html-editor@w3.org</a> ( <a
href="http://lists.w3.org/Archives/Public/www-html-editor/">
archive</a> ).</p>

<p>At the time of publication, the Working Group believed there
were no patent disclosures relevant to this specification. A
current list of patent disclosures relevant to this specification
may be found on the <a href= 
"http://www.w3.org/MarkUp/2002/Disclosures">Working Group's patent
disclosure page</a> .</p>

<p>A <a href="http://www.w3.org/TR/">list of current W3C
Recommendations</a> and other technical documents can be found at
http://www.w3.org/TR.</p>

<h1><a  id="toc">Quick Table of Contents</a></h1>

<div class="toc">
<ul class='toc'>
<li class='tocline'>1. <a href="introduction.html#s_intro" class= 
"tocxref">Introduction</a></li>

<li class='tocline'>2. <a href="#a_terms" class="tocxref">Terms and
Definitions</a></li>

<li class='tocline'>3. <a href="conformance.html#s_conform" class= 
"tocxref">Conformance Definition</a></li>

<li class='tocline'>4. <a href="#s_doctype" class="tocxref">The
XHTML 2.0 Document Type</a></li>

<li class='tocline'>5. <a href="#s_abstraction" class="tocxref">
Module Definition Conventions</a></li>

<li class='tocline'>6. <a href="#s_attribute-collectionsmodule"
class="tocxref">XHTML Attribute Collections</a></li>

<li class='tocline'>7. <a href="#s_structuremodule" class=
"tocxref">XHTML Structure Module</a></li>

<li class='tocline'>8. <a href="#s_block-textmodule" class=
"tocxref">XHTML Block Text Module</a></li>

<li class='tocline'>9. <a href="#s_inline-textmodule" class=
"tocxref">XHTML Inline Text Module</a></li>

<li class='tocline'>10. <a href="#s_hypertextmodule" class=
"tocxref">XHTML Hypertext Module</a></li>

<li class='tocline'>11. <a href="#s_listmodule" class="tocxref">
XHTML List Module</a></li>

<li class='tocline'>12. <a href="#s_bidimodule" class="tocxref">
<span class="diff-new">XHTML Bi-directional Text Attribute
Module</span></a></li>

<li class='tocline'><span class="diff-new">13.</span> <a href= 
"#s_editmodule" class="tocxref"><span class="diff-new">XHTML Edit
Attributes Module</span></a></li>

<li class='tocline'><span class="diff-new">14.</span> <a href= 
"#s_embeddingmodule" class="tocxref"><span class="diff-new">XHTML
Embedding Attributes Module</span></a></li>

<li class='tocline'><span class="diff-new">15.</span> <a href= 
"#s_csImgMapmodule" class="tocxref"><span class="diff-new">XHTML
Image Map Attributes Module</span></a></li>

<li class='tocline'><span class="diff-new">16.</span> <a href= 
"#s_linkmodule" class="tocxref">XHTML Linking Module</a></li>

<li class='tocline'><span class="diff-chg">17.</span> <a href= 
"#s_metamodule" class="tocxref">XHTML Metainformation
Module</a></li>

<li class='tocline'><span class="diff-chg">18.</span> <a href= 
"#s_objectmodule" class="tocxref">XHTML Object Module</a></li>

<li class='tocline'><span class="diff-chg">19.</span> <a href= 
"#s_rubymodule" class="tocxref">Ruby Module</a></li>

<li class='tocline'><span class="diff-chg">20.</span> <a href= 
"#s_scriptingmodule" class="tocxref">XHTML Scripting
Module</a></li>

<li class='tocline'><span class="diff-chg">21.</span> <a href= 
"#s_styleAttributemodule" class="tocxref">XHTML Style Attribute
Module</a></li>

<li class='tocline'><span class="diff-chg">22.</span> <a href= 
"#s_styleSheetmodule" class="tocxref">XHTML Style Sheet
Module</a></li>

<li class='tocline'><span class="diff-chg">23.</span> <a href= 
"#s_tablesmodule" class="tocxref">XHTML Tables Module</a></li>

<li class='tocline'><span class="diff-chg">24.</span> <a href= 
"#s_xformsmodule" class="tocxref">XForms Module</a></li>

<li class='tocline'><span class="diff-chg">25.</span> <a href= 
"#s_xml-eventsmodule" class="tocxref">XML Events Module</a></li>

<li class='tocline'>A. <a href="#a_changes" class="tocxref">Changes
from XHTML 1.1</a></li>

<li class='tocline'>B. <a href="#a_xhtml20_relaxng" class=
"tocxref">XHTML 2.0 RELAX NG Definition</a></li>

<li class='tocline'>C. <a href="#a_relaxng_module_defs" class= 
"tocxref">XHTML RELAX NG Module Implementations</a></li>

<li class='tocline'>D. <a href="#a_xhtml20_schema" class="tocxref">
XHTML 2.0 Schema</a></li>

<li class='tocline'>E. <a href="#a_schema_module_defs" class= 
"tocxref">XHTML Schema Module Implementations</a></li>

<li class='tocline'>F. <a href="#a_xhtml20_dtd" class="tocxref">
XHTML 2.0 Document Type Definition</a></li>

<li class='tocline'>G. <a href="#a_dtd_module_defs" class=
"tocxref">XHTML DTD Module Implementations</a></li>

<li class='tocline'>H. <a href="#a_stylesheet" class="tocxref">
<span class="diff-new">Stylesheet for XHTML 2</span></a></li>

<li class='tocline'><span class="diff-new">J.</span> <a href= 
"#a_elements" class="tocxref">List of Elements</a></li>

<li class='tocline'><span class="diff-chg">I.</span> <a href= 
"#a_attributes" class="tocxref">List of Attributes</a></li>

<li class='tocline'><span class="diff-chg">K.</span> <a href= 
"#a_xref" class="tocxref">Cross-reference Index</a></li>

<li class='tocline'><span class="diff-chg">L.</span> <a href= 
"#a_refs" class="tocxref">References</a></li>

<li class='tocline'><span class="diff-chg">M.</span> <a href= 
"#a_acks" class="tocxref">Acknowledgements</a></li>
</ul>
</div>

<h1><a  id="issueList">List of Issues</a></h1>

<div class="issue">
<ul class='issue'>
<li class="issue"><a href="conformance.html#s_conform_issue_0">DTD
Bias</a></li>

<li class="issue"><a href="#s_doctype_issue_0"><span class=
"diff-chg">Identifying</span> XHTML <span class="diff-chg">version
in ansence of DTDs</span></a></li>

<li class="issue"><a href="#s_abstraction_issue_0"><span class= 
"diff-chg">WD-xhtml2-20021211: Additional Linktypes</span></a></li>

<li class="issue"><a href="#s_abstraction_issue_1"><span class= 
"diff-chg">comments on 2002-12-12 XHTML 2.0 WD: Link types should
allow "icon" for rel/rev</span></a></li>

<li class="issue"><a href="#s_abstraction_issue_2"><span class= 
"diff-chg">Re: Updated XHTML 2.0 draft published: Sec 5.5,
additions to linktypes value</span></a></li>

<li class="issue"><a href="#s_abstraction_issue_3"><span class= 
"diff-chg">Comments about XHTML 2.0 WD5: Sec 5.5, why the linktype
stylesheet?</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_0">
<span class="diff-chg">[XHTML2] type attribute</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_1">
<span class="diff-chg">Modularizing the Attribute Collections
Module</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_2">
<span class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_3">
<span class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_4">
<span class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_5">
<span class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_6">
<span class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_7">
<span class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_8">
<span class="diff-chg">comments on 2002-12-12 XHTML 2.0 WD: section
5.5, hreflang not defined</span></a></li>

<li class="issue"><a href="#s_attribute-collectionsmodule_issue_9">
<span class="diff-chg">Fw: [XHTML2] 4th WD comments: section 6.6,
'p' example bad</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_10"><span class="diff-chg">
Feedback on XHTML 2.0 WD (20030131): Sec 6.7, expand role of Image
Map Collection?</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_11"><span class="diff-chg">
Re: Updated XHTML 2.0 draft published: Sec 6.4, what of multiple
edits</span> to <span class="diff-chg">an element?</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_12"><span class="diff-chg">
Comments about XHTML 2.0 WD5: Sec 6.1, What's with the type of
"stylesheet"?</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_13"><span class="diff-chg">
Comments about XHTML 2.0 WD5: Sec 6.4 more information about
edit</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_14"><span class="diff-chg">
kelvSYC's Thoughts</span> on <span class="diff-chg">the new XHTML
Draft: extend edit collection to maintain history</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_15"><span class="diff-chg">
kelvSYC's Thoughts on the new XHTML Draft: what is point</span> of
<span class="diff-new">rev attribute?</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_16"><span class="diff-new">
kelvSYC's Thoughts on the new</span> XHTML <span class="diff-chg">
Draft: drop accessday/navindex</span></a></li>

<li class="issue"><a href=
"#s_attribute-collectionsmodule_issue_17"><span class="diff-chg">
kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7, image map
comments</span></a></li>

<li class="issue"><a href="#s_structuremodule_issue_0">
footer</a></li>

<li class="issue"><a href="#s_structuremodule_issue_1"><span class= 
"diff-chg">comments on 2002-12-12 XHTML 2.0 WD: request
display/render of sub-elements in head be a conformance
criterium</span></a></li>

<li class="issue"><a href="#s_structuremodule_issue_2"><span class= 
"diff-chg">[XHTML2] Editorial comments on WD4: Sec 7.1, update to
reflect removal</span> of <span class="diff-chg">profile
attribute</span></a></li>

<li class="issue"><a href="#s_structuremodule_issue_3"><span class= 
"diff-chg">Comments about XHTML 2.0 WD5: replace &lt;html&gt; with
&lt;xhtml&gt;?</span></a></li>

<li class="issue"><a href="#s_structuremodule_issue_4"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: allow Inline/PCDATA in</span>
content of <span class="diff-chg">body?</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_0"><span
class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_1"><span
class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_2"><span
class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_3"><span
class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_4"><span
class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_5"><span
class="diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_6"><span
class="diff-chg">comments on 2002-12-12 XHTML 2.0 WD: Why remove
h1-h6 in favor of heading and keep ol-ul ?</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_7"><span
class="diff-chg">Fw: [XHTML2] 4th WD comments: section 8.9, provide
example/style sheet</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_8"><span
class="diff-chg">Feedback on XHTML 2.0 WD (20030131): remove, not
depracate, h1-h6</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_9"><span
class="diff-chg">Feedback on XHTML 2.0 WD (20030131): votes to
rename &lt;hr&gt; but not remove it</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_10"><span
class="diff-chg">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of
blockquote</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_11"><span
class="diff-chg">[XHTML2] Editorial comments on WD4: need added
info about interaction of table module and min content
module</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_12"><span
class="diff-chg">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of
p</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_13"><span
class="diff-chg">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of
blockquote</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_14"><span
class="diff-chg">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of
p</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_15"><span
class="diff-chg">Re: Updated XHTML 2.0 draft published: Deprecate
h1-h6? No. Discard them? Yes.</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_16"><span
class="diff-chg">Re: Updated XHTML 2.0 draft published: Add a
"sectiontype" attribute</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_17"><span
class="diff-chg">Re: Updated XHTML 2.0 draft published: need better
system</span> or <span class="diff-new">
quoting/referencing</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_18"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft:
separating text module elements based on presentation seems
wrong</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_19"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7,</span> rename <span class="diff-new">address</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_20"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, use presenational controls rather than block*, code, quote
elements</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_21"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: section
6.7, drop div/span in favor if section</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_22"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, drop h1 - h6</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_23"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7,</span> hr <span class="diff-new">and
presentation</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_24"><span
class="diff-chg">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, pre looks presentation, drop it</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_25"><span
class="diff-chg">[XHTML2] Comments on WD 5: request block</span>
element <span class="diff-chg">rather than blockquote, blockcode,
etc.</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_26"><span
class="diff-chg">[XHTML2] Comments on WD 5: is pre</span> element
<span class="diff-new">needed?</span></a></li>

<li class="issue"><a href="#s_block-textmodule_issue_27"><span
class="diff-new">WD-xhtml2-20030506: What is "computer
code"?</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_0"><span
class="diff-new">XHTML2 slightly too strict about &lt;l&gt;
rendering</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_1"><span
class="diff-new">Getting &lt;l&gt; right</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_2"><span
class="diff-chg">l</span> element</a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_3"><span
class="diff-new">The l element</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_4"><span
class="diff-new">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_5"><span
class="diff-new">Re: Updated XHTML 2.0 draft published: Inline text
module, either reduce scope or widen to parts of text in common
use.</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_6"><span
class="diff-new">Comments about XHTML 2.0 WD5: Section 9.7, example
should use blockcode not p</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_7"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, rename kbd, samp</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_8"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7,</span> strong <span class="diff-new">element equivilent to
em</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_9"><span
class="diff-chg">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, sub/sub presentational, remove</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_10"><span
class="diff-chg">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, little use for var element</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_11"><span
class="diff-chg">[XHTML2] Comments on WD 5: make white space
preservation part of the standard</span> values <span class= 
"diff-new">for the code and kbd elements?</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_12"><span
class="diff-chg">[XHTML2WD5] Ilegal CSS Example</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_13"><span
class="diff-chg">Be more specific about &lt;abbr/&gt;'s
title</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_14"><span
class="diff-chg">A proposed additional attribute for the
&lt;dfn&gt; element</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_15"><span
class="diff-chg">em</span> and <span class="diff-chg">
strong</span></a></li>

<li class="issue"><a href="#s_inline-textmodule_issue_16"><span
class="diff-chg">Suggestion for the &lt;abbr/&gt; Element title
specification</span></a></li>

<li class="issue"><a href="#s_hypertextmodule_issue_0"><span class= 
"diff-chg">[XHTML2] Poor little old &lt;a&gt;</span></a></li>

<li class="issue"><a href="#s_hypertextmodule_issue_1"><span class= 
"diff-chg">comments on 2002-12-12 XHTML 2.0 WD: Anchors
(sources</span> of <span class="diff-chg">a link) are still
mono-target</span></a></li>

<li class="issue"><a href="#s_listmodule_issue_0"><span class= 
"diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_listmodule_issue_1"><span class= 
"diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_listmodule_issue_2"><span class= 
"diff-chg">Fw: [XHTML2] 4th WD comments: Sec 10, remove
&lt;strong&gt; in example in favor of CSS
properties.</span></a></li>

<li class="issue"><a href="#s_listmodule_issue_3"><span class= 
"diff-chg">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7,
tighter association of dd</span> and <span class="diff-chg">dt
needed.</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_0"><span class= 
"diff-chg">Fw: Request for interpretation / clarification of USEMAP
semantics</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_1"><span class= 
"diff-chg">Re: Request for interpretation / clarification of USEMAP
semantics</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_2"><span class= 
"diff-chg">Re: Request for interpretation / clarification of USEMAP
semantics</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_3"><span class= 
"diff-chg">Re: Request for interpretation / clarification of USEMAP
semantics</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_4"><span class= 
"diff-chg">[xhtml2] Client-Side Image Map Module hard to
find</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_5"><span class= 
"diff-chg">Fw: [XHTML2] 4th WD comments: section 6.7 map/usemap/id
not</span> needed</a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_6"><span class= 
"diff-chg">[XHTML2] Editorial comments on WD4: section 11.2, change
use of object in examples to p or another text module
element</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_7"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Add ellipse to shape of image
maps</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_8"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Add rounded rectangles to
shape of image maps</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_9"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Change Image Map Rectangles
from LTRB to LTWH</span></a></li>

<li class="issue"><a href="#s_csImgMapmodule_issue_10"><span class= 
"diff-chg">(Image)Maps in</span> XHTML <span class="diff-new">
2</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_0"><span class= 
"diff-new">more xhtml</span> 2.0 <span class="diff-chg">
comments</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_1"><span class= 
"diff-chg">comments on 2002-12-12</span> XHTML 2.0 <span class= 
"diff-chg">WD: Section 12.1, minimal set of meta properties not
needed</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_2"><span class= 
"diff-chg">WD-xhtml2-20030131: Typos and Queries: section 13,
reference Dublin Core to encourage good practice</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_3"><span class= 
"diff-chg">WD-xhtml2-20030131: Typos and Queries: section 13.1.1
suggested change to example</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_4"><span class= 
"diff-chg">Feedback on</span> XHTML <span class="diff-chg">2.0 WD
(20030131): section 13, remove &lt;html profile&gt;, add scheme
element</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_5"><span class= 
"diff-chg">[XHTML2] Editorial comments on WD4: add profile
attribute, see issue 6444</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_6"><span class= 
"diff-chg">Re: Updated</span> XHTML <span class="diff-chg">2.0
draft published: section 13.1 use rel not profile</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_7"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: section 13.1, PICS
support?</span></a></li>

<li class="issue"><a href="#s_metamodule_issue_8"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Section 13.1 scheme
attribute?</span></a></li>

<li class="issue"><a href="#s_objectmodule_issue_0"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Section 14.1, conflicting use
of type attribute for content of both URI and src</span></a></li>

<li class="issue"><a href="#s_objectmodule_issue_1"><span class= 
"diff-chg">[XHTML2] Inconsistencies in module definitions: param
element should allow Common attributes.</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_0"><span class= 
"diff-chg">Allow &lt;noscript&gt; in &lt;head&gt;?</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_1"><span class= 
"diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_2"><span class= 
"diff-chg">Comments about</span> XHTML <span class="diff-chg">2.0
WD5: section 16.1, does noscript need a "for"
attribute?</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_3"><span class= 
"diff-chg">Comments about</span> XHTML <span class="diff-chg">2.0
WD5: section 16.2, typo: "object" should be
"script"?</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_4"><span class= 
"diff-chg">Comments about</span> XHTML <span class="diff-chg">2.0
WD5: Section 16.2.3 possible typo in example, x-vbsrcipt should be
vbscript?</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_5"><span class= 
"diff-chg">kelvSYC's Thoughts on the new</span> XHTML <span class= 
"diff-chg">Draft: Sec 6.7, need better example of noscript
element</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_6"><span class= 
"diff-chg">[XHTML2] Inconsistencies in module definitions, content
of script?</span></a></li>

<li class="issue"><a href="#s_scriptingmodule_issue_7"><span class= 
"diff-chg">[XHTML2] Inconsistencies in module definitions: script
element should allow Common attributes.</span></a></li>

<li class="issue"><a href="#s_styleAttributemodule_issue_0"><span
class="diff-chg">"style" Alternative</span></a></li>

<li class="issue"><a href="#s_styleAttributemodule_issue_1"><span
class="diff-chg">[XHTML2] Comments on WD 5: provide a generic
method of specifying attributes that contain style
information</span></a></li>

<li class="issue"><a href="#s_tablesmodule_issue_0"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Section 19.1, caption needs
own module, could be generalized</span></a></li>

<li class="issue"><a href="#s_xformsmodule_issue_0"><span class= 
"diff-chg">Idea for securityfix in HTML</span></a></li>

<li class="issue"><a href="#a_xhtml20_relaxng_issue_0"><span class= 
"diff-chg">xhtml2-datatypes-2.rng -- Possible semantic problem
with</span></a></li>

<li class="issue"><a href="#a_xhtml20_relaxng_issue_1"><span class= 
"diff-chg">Re: xhtml2-datatypes-2.rng -- Possible semantic problem
with</span></a></li>

<li class="issue"><a href="#a_xhtml20_relaxng_issue_2"><span class= 
"diff-chg">Re: xhtml2-datatypes-2.rng -- Possible semantic problem
with</span></a></li>

<li class="issue"><a href="#a_xhtml20_dtd_issue_0"><span class= 
"diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#a_xhtml20_dtd_issue_1"><span class= 
"diff-chg">more xhtml 2.0 comments</span></a></li>

<li class="issue"><a href="#a_xhtml20_dtd_issue_2"><span class= 
"diff-chg">Fw: Character entities in HTML and
MathML</span></a></li>

<li class="issue"><a href="#a_xhtml20_dtd_issue_3"><span class= 
"diff-chg">Character entities: do we still need
them?</span></a></li>
</ul>
</div>

<h1><a  id="contents">Full Table of
Contents</a></h1>

<div class="toc">
<ul class='toc'>
<li class='tocline'>1. <a href="introduction.html#s_intro" class= 
"tocxref">Introduction</a> 

<ul class="toc">
<li class='tocline'>1.1. <a href= 
"introduction.html#s_intro_whatisxhtml2" class="tocxref">What is
XHTML 2?</a> 

<ul class="toc">
<li class='tocline'>1.1.1. <a href="introduction.html#backCompat"
class="tocxref">Backwards compatibility</a></li>

<li class='tocline'>1.1.2. <a href="introduction.html#presentation"
class="tocxref">XHTML2 and Presentation</a></li>

<li class='tocline'>1.1.3. <a href="introduction.html#aims" class= 
"tocxref">Design Aims</a></li>
</ul>
</li>

<li class='tocline'>1.2. <a href= 
"introduction.html#s_intro_whatismod" class="tocxref">What are the
XHTML 2 Modules?</a></li>
</ul>
</li>

<li class='tocline'>2. <a href="#a_terms" class="tocxref">Terms and
Definitions</a></li>

<li class='tocline'>3. <a href="conformance.html#s_conform" class= 
"tocxref">Conformance Definition</a> 

<ul class="toc">
<li class='tocline'>3.1. <a href="conformance.html#doccont" class= 
"tocxref">Document Conformance</a> 

<ul class="toc">
<li class='tocline'>3.1.1. <a href="conformance.html#strict" class= 
"tocxref">Strictly Conforming Documents</a></li>
</ul>
</li>

<li class='tocline'>3.2. <a href="conformance.html#uaconf" class= 
"tocxref">User Agent Conformance</a></li>
</ul>
</li>

<li class='tocline'>4. <a href="#s_doctype" class="tocxref">The
XHTML 2.0 Document Type</a> 

<ul class="toc">
<li class='tocline'><span class="diff-new">4.1.</span> <a href= 
"#sec_4.1." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>5. <a href="#s_abstraction" class="tocxref">
Module Definition Conventions</a> 

<ul class="toc">
<li class='tocline'>5.1. <a href="#sec_5.1." class="tocxref">Module
Structure</a></li>

<li class='tocline'>5.2. <a href="#abstraction_abstract_definition"
class="tocxref">Abstract Module Definitions</a></li>

<li class='tocline'>5.3. <a href="#sec_5.3." class="tocxref">
Syntactic Conventions</a></li>

<li class='tocline'>5.4. <a href="#s_common_types" class="tocxref">
Content Types</a></li>

<li class='tocline'>5.5. <a href="#s_common_attrtypes" class= 
"tocxref">Attribute Types</a></li>

<li class='tocline'><span class="diff-new">5.6.</span> <a href= 
"#sec_5.6." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>6. <a href="#s_attribute-collectionsmodule"
class="tocxref">XHTML Attribute Collections</a> 

<ul class="toc">
<li class='tocline'>6.1. <a href="#col_Core" class="tocxref">Core
Attribute Collection</a></li>

<li class='tocline'>6.2. <a href="#col_I18N" class="tocxref">I18N
Attribute Collection</a></li>

<li class='tocline'>6.3. <a href="#col_Bi-directional" class= 
"tocxref">Bi-directional Text Collection</a> 

<ul class="toc">
<li class='tocline'>6.3.1. <a href="#sec_6.3.1." class="tocxref">
Inheritance of text direction information</a></li>

<li class='tocline'>6.3.2. <a href="#sec_6.3.2." class="tocxref">
The effect of style sheets on bidirectionality</a></li>
</ul>
</li>

<li class='tocline'>6.4. <a href="#col_Edit" class="tocxref">Edit
Collection</a></li>

<li class='tocline'>6.5. <a href="#col_Hypertext" class="tocxref">
Hypertext Attribute Collection</a></li>

<li class='tocline'>6.6. <a href="#col_Embedding" class="tocxref">
Embedding Attribute Collection</a></li>

<li class='tocline'>6.7. <a href="#col_Map" class="tocxref">Image
Map Attribute Collection</a></li>

<li class='tocline'>6.8. <a href="#col_Events" class="tocxref">
Events</a></li>

<li class='tocline'>6.9. <a href="#col_Style" class="tocxref">Style
Attribute Collection</a></li>

<li class='tocline'>6.10. <a href="#col_Common" class="tocxref">
Common Attribute Collection</a></li>

<li class='tocline'><span class="diff-new">6.11.</span> <a href= 
"#sec_6.11." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>7. <a href="#s_structuremodule" class=
"tocxref">XHTML Structure Module</a> 

<ul class="toc">
<li class='tocline'>7.1. <a href="#sec_7.1." class="tocxref">The
html element</a></li>

<li class='tocline'>7.2. <a href="#sec_7.2." class="tocxref">The
head element</a></li>

<li class='tocline'>7.3. <a href="#sec_7.3." class="tocxref">The
title element</a></li>

<li class='tocline'>7.4. <a href="#sec_7.4." class="tocxref">The
body element</a></li>

<li class='tocline'><span class="diff-new">7.5.</span> <a href= 
"#sec_7.5." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>8. <a href="#s_block-textmodule" class=
"tocxref">XHTML Block Text Module</a> 

<ul class="toc">
<li class='tocline'>8.1. <a href="#sec_8.1." class="tocxref">The
address element</a></li>

<li class='tocline'>8.2. <a href="#sec_8.2." class="tocxref">The
blockcode element</a></li>

<li class='tocline'>8.3. <a href="#sec_8.3." class="tocxref">The
blockquote element</a></li>

<li class='tocline'>8.4. <a href="#sec_8.4." class="tocxref">The
div element</a></li>

<li class='tocline'>8.5. <a href="#sec_8.5." class="tocxref">The
heading elements</a></li>

<li class='tocline'>8.6. <a href="#sec_8.6." class="tocxref">The hr
element</a></li>

<li class='tocline'>8.7. <a href="#sec_8.7." class="tocxref">The p
element</a></li>

<li class='tocline'>8.8. <a href="#sec_8.8." class="tocxref">The
pre element</a></li>

<li class='tocline'>8.9. <a href="#sec_8.9." class="tocxref">The
section element</a></li>

<li class='tocline'><span class="diff-new">8.10.</span> <a href= 
"#sec_8.10." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>9. <a href="#s_inline-textmodule" class=
"tocxref">XHTML Inline Text Module</a> 

<ul class="toc">
<li class='tocline'>9.1. <a href="#sec_9.1." class="tocxref">The
abbr element</a></li>

<li class='tocline'>9.2. <a href="#sec_9.2." class="tocxref">The
cite element</a></li>

<li class='tocline'>9.3. <a href="#sec_9.3." class="tocxref">The
code element</a></li>

<li class='tocline'>9.4. <a href="#sec_9.4." class="tocxref">The
dfn element</a></li>

<li class='tocline'>9.5. <a href="#sec_9.5." class="tocxref">The em
element</a></li>

<li class='tocline'>9.6. <a href="#sec_9.6." class="tocxref">The
kbd element</a></li>

<li class='tocline'>9.7. <a href="#sec_9.7." class="tocxref">The l
element</a></li>

<li class='tocline'>9.8. <a href="#sec_9.8." class="tocxref">The
quote element</a></li>

<li class='tocline'>9.9. <a href="#sec_9.9." class="tocxref">The
samp element</a></li>

<li class='tocline'>9.10. <a href="#sec_9.10." class="tocxref">The
span element</a></li>

<li class='tocline'>9.11. <a href="#sec_9.11." class="tocxref">The
strong element</a></li>

<li class='tocline'>9.12. <a href="#sec_9.12." class="tocxref">The
sub element</a></li>

<li class='tocline'>9.13. <a href="#sec_9.13." class="tocxref">The
sup element</a></li>

<li class='tocline'>9.14. <a href="#sec_9.14." class="tocxref">The
var element</a></li>

<li class='tocline'><span class="diff-new">9.15.</span> <a href= 
"#sec_9.15." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>10. <a href="#s_hypertextmodule" class=
"tocxref">XHTML Hypertext Module</a> 

<ul class="toc">
<li class='tocline'>10.1. <a href="#sec_10.1." class="tocxref">The
a element</a></li>

<li class='tocline'><span class="diff-new">10.2.</span> <a href= 
"#sec_10.2." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>11. <a href="#s_listmodule" class="tocxref">
XHTML List Module</a> 

<ul class="toc">
<li class='tocline'>11.1. <a href="#sec_11.1." class="tocxref">
Definition lists: the dl, <span class="diff-new">di,</span> dt, and
dd elements</a></li>

<li class='tocline'>11.2. <a href="#sec_11.2." class="tocxref">The
nl element</a></li>

<li class='tocline'>11.3. <a href="#sec_11.3." class="tocxref">The
ol, and ul elements</a></li>

<li class='tocline'>11.4. <a href="#sec_11.4." class="tocxref">The
li element</a></li>

<li class='tocline'>11.5. <a href="#sec_11.5." class="tocxref">The
label element</a></li>

<li class='tocline'><span class="diff-new">11.6.</span> <a href= 
"#sec_11.6." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>12. <a href="#s_bidimodule" class="tocxref">
<span class="diff-new">XHTML Bi-directional Text Attribute
Module</span></a></li>

<li class='tocline'><span class="diff-new">13.</span> <a href= 
"#s_editmodule" class="tocxref"><span class="diff-new">XHTML Edit
Attributes Module</span></a></li>

<li class='tocline'><span class="diff-new">14.</span> <a href= 
"#s_embeddingmodule" class="tocxref"><span class="diff-new">XHTML
Embedding Attributes Module</span></a></li>

<li class='tocline'><span class="diff-new">15.</span> <a href= 
"#s_csImgMapmodule" class="tocxref"><span class="diff-new">XHTML
Image Map Attributes Module</span></a> 

<ul class="toc">
<li class='tocline'><span class="diff-new">15.1.</span> <a href= 
"#sec_15.1." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-new">16.</span> <a href= 
"#s_linkmodule" class="tocxref">XHTML Linking Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">16.1.</span> <a href= 
"#sec_16.1." class="tocxref">The link element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">16.1.1.</span> <a href= 
"#sec_16.1.1." class="tocxref">Forward and reverse links</a></li>

<li class='tocline'><span class="diff-chg">16.1.2.</span> <a href= 
"#link_stylesheets" class="tocxref">Links and external style
sheets</a></li>

<li class='tocline'><span class="diff-chg">16.1.3.</span> <a href= 
"#sec_16.1.3." class="tocxref">Links and search engines</a></li>
</ul>
</li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">17.</span> <a href= 
"#s_metamodule" class="tocxref">XHTML Metainformation Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">17.1.</span> <a href= 
"#sec_17.1." class="tocxref">The meta element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">17.1.1.</span> <a href= 
"#sec_17.1.1." class="tocxref">meta and search engines</a></li>

<li class='tocline'><span class="diff-chg">17.1.2.</span> <a href= 
"#sec_17.1.2." class="tocxref">meta and RDF</a></li>

<li class='tocline'><span class="diff-chg">17.1.3.</span> <a href= 
"#sec_17.1.3." class="tocxref">meta data profiles</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-new">17.2.</span> <a href= 
"#sec_17.2." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">18.</span> <a href= 
"#s_objectmodule" class="tocxref">XHTML Object Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">18.1.</span> <a href= 
"#sec_18.1." class="tocxref">The object element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">18.1.1.</span> <a href= 
"#sec_18.1.1." class="tocxref">Defining terminology</a></li>

<li class='tocline'><span class="diff-chg">18.1.2.</span> <a href= 
"#sec_18.1.2." class="tocxref">Basic Information for Object
Handlers</a></li>

<li class='tocline'><span class="diff-chg">18.1.3.</span> <a href= 
"#sec_18.1.3." class="tocxref">Rules for processing
objects</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">18.2.</span> <a href= 
"#sec_18.2." class="tocxref">The param element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">18.2.1.</span> <a href= 
"#sec_18.2.1." class="tocxref">Referencing object data</a></li>

<li class='tocline'><span class="diff-chg">18.2.2.</span> <a href= 
"#sec_18.2.2." class="tocxref">Object element declarations and
instantiations</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">18.3.</span> <a href= 
"#sec_18.3." class="tocxref">The standby element</a></li>

<li class='tocline'><span class="diff-new">18.4.</span> <a href= 
"#sec_18.4." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">19.</span> <a href= 
"#s_rubymodule" class="tocxref">Ruby Module</a></li>

<li class='tocline'><span class="diff-chg">20.</span> <a href= 
"#s_scriptingmodule" class="tocxref">XHTML Scripting Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">20.1.</span> <a href= 
"#sec_20.1." class="tocxref">The noscript element</a></li>

<li class='tocline'><span class="diff-chg">20.2.</span> <a href= 
"#sec_20.2." class="tocxref">The script element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">20.2.1.</span> <a href= 
"#sec_20.2.1." class="tocxref">Rules for processing
scripts</a></li>

<li class='tocline'><span class="diff-chg">20.2.2.</span> <a href= 
"#sec_20.2.2." class="tocxref">Specifying the scripting
language</a></li>

<li class='tocline'><span class="diff-chg">20.2.3.</span> <a href= 
"#sec_20.2.3." class="tocxref">Declaration of a scripting
language</a></li>

<li class='tocline'><span class="diff-chg">20.2.4.</span> <a href= 
"#sec_20.2.4." class="tocxref">Dynamic modification of
documents</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-new">20.3.</span> <a href= 
"#sec_20.3." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">21.</span> <a href= 
"#s_styleAttributemodule" class="tocxref">XHTML Style Attribute
Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-new">21.1.</span> <a href= 
"#sec_21.1." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">22.</span> <a href= 
"#s_styleSheetmodule" class="tocxref">XHTML Style Sheet Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">22.1.</span> <a href= 
"#sec_22.1." class="tocxref">The style element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">22.1.1.</span> <a href= 
"#styleSheet_external" class="tocxref">External style
sheets</a></li>

<li class='tocline'><span class="diff-chg">22.1.2.</span> <a href= 
"#sec_22.1.2." class="tocxref">Preferred and alternate style
sheets</a></li>

<li class='tocline'><span class="diff-chg">22.1.3.</span> <a href= 
"#sec_22.1.3." class="tocxref">Specifying external style
sheets</a></li>
</ul>
</li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">23.</span> <a href= 
"#s_tablesmodule" class="tocxref">XHTML Tables Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">23.1.</span> <a href= 
"#sec_23.1." class="tocxref">The caption element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">23.1.1.</span> <a href= 
"#sec_23.1.1." class="tocxref">Caption Clipping</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">23.2.</span> <a href= 
"#sec_23.2." class="tocxref">The col and colgroup elements</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">23.2.1.</span> <a href= 
"#column-calc" class="tocxref">Calculating the number of columns in
a table</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">23.3.</span> <a href= 
"#sec_23.3." class="tocxref">The summary element</a></li>

<li class='tocline'><span class="diff-chg">23.4.</span> <a href= 
"#sec_23.4." class="tocxref">The table element</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">23.4.1.</span> <a href= 
"#sec_23.4.1." class="tocxref">Visual Rendering</a></li>

<li class='tocline'><span class="diff-chg">23.4.2.</span> <a href= 
"#table-directionality" class="tocxref">Table
directionality</a></li>

<li class='tocline'><span class="diff-chg">23.4.3.</span> <a href= 
"#non-visual-rendering" class="tocxref">Table rendering by
non-visual user agents</a></li>

<li class='tocline'><span class="diff-chg">23.4.4.</span> <a href= 
"#sec_23.4.4." class="tocxref">Sample table</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">23.5.</span> <a href= 
"#sec_23.5." class="tocxref">The tbody element</a></li>

<li class='tocline'><span class="diff-chg">23.6.</span> <a href= 
"#sec_23.6." class="tocxref">The td and th elements</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">23.6.1.</span> <a href= 
"#sec_23.6.1." class="tocxref">Cells that span several rows or
columns</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">23.7.</span> <a href= 
"#sec_23.7." class="tocxref">The thead and tfoot elements</a></li>

<li class='tocline'><span class="diff-chg">23.8.</span> <a href= 
"#sec_23.8." class="tocxref">The tr element</a></li>

<li class='tocline'><span class="diff-new">23.9.</span> <a href= 
"#sec_23.9." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">24.</span> <a href= 
"#s_xformsmodule" class="tocxref">XForms Module</a> 

<ul class="toc">
<li class='tocline'><span class="diff-new">24.1.</span> <a href= 
"#sec_24.1." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">25.</span> <a href= 
"#s_xml-eventsmodule" class="tocxref">XML Events Module</a></li>

<li class='tocline'>A. <a href="#a_changes" class="tocxref">Changes
from XHTML 1.1</a></li>

<li class='tocline'>B. <a href="#a_xhtml20_relaxng" class=
"tocxref">XHTML 2.0 RELAX NG Definition</a> 

<ul class="toc">
<li class='tocline'>
<ul class="toc">
<li class='tocline'>B.0.1. <a href= 
"#a_rmodule_RELAX_NG_XHTML_2.0_Driver" class="tocxref">RELAX NG
XHTML 2.0 Driver</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-new">B.1.</span> <a href= 
"#sec_B.1." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>C. <a href="#a_relaxng_module_defs" class= 
"tocxref">XHTML RELAX NG Module Implementations</a> 

<ul class="toc">
<li class='tocline'>C.1. <a href="#a_relaxng_special" class=
"tocxref">XHTML Module Implementations</a> 

<ul class="toc">
<li class='tocline'>C.1.1. <a href=
"#a_rmodule_Attribute_Collections" class="tocxref">Attribute
Collections</a></li>

<li class='tocline'>C.1.2. <a href="#a_rmodule_Structure" class= 
"tocxref">Structure</a></li>

<li class='tocline'>C.1.3. <a href="#a_rmodule_Block_Text" class= 
"tocxref">Block Text</a></li>

<li class='tocline'>C.1.4. <a href="#a_rmodule_Inline_Text" class= 
"tocxref">Inline Text</a></li>

<li class='tocline'>C.1.5. <a href="#a_rmodule_Hypertext" class= 
"tocxref">Hypertext</a></li>

<li class='tocline'>C.1.6. <a href="#a_rmodule_List" class=
"tocxref">List</a></li>

<li class='tocline'>C.1.7. <a href="#a_rmodule_Link" class=
"tocxref">Link</a></li>

<li class='tocline'>C.1.8. <a href="#a_rmodule_Metainformation"
class="tocxref">Metainformation</a></li>

<li class='tocline'>C.1.9. <a href="#a_rmodule_Object" class= 
"tocxref">Object</a></li>

<li class='tocline'>C.1.10. <a href="#a_rmodule_Scripting" class= 
"tocxref">Scripting</a></li>

<li class='tocline'>C.1.11. <a href="#a_rmodule_Style_Attribute"
class="tocxref">Style Attribute</a></li>

<li class='tocline'>C.1.12. <a href="#a_rmodule_Style_Sheet" class= 
"tocxref">Style Sheet</a></li>

<li class='tocline'>C.1.13. <a href="#a_rmodule_Tables" class= 
"tocxref">Tables</a></li>
</ul>
</li>

<li class='tocline'>C.2. <a href="#a_dtdsupport" class="tocxref">
XHTML RELAX NG Support Modules</a> 

<ul class="toc">
<li class='tocline'>C.2.1. <a href="#a_rmodule_Datatypes" class= 
"tocxref">Datatypes</a></li>

<li class='tocline'>C.2.2. <a href="#a_rmodule_Events" class= 
"tocxref">Events</a></li>

<li class='tocline'>C.2.3. <a href="#a_rmodule_Param" class=
"tocxref">Param</a></li>

<li class='tocline'>C.2.4. <a href="#a_rmodule_Caption" class= 
"tocxref">Caption</a></li>
</ul>
</li>

<li class='tocline'>C.3. <a href="#a_relaxng_external" class= 
"tocxref">RELAX NG External Modules</a> 

<ul class="toc">
<li class='tocline'>C.3.1. <a href="#a_rmodule_Ruby" class=
"tocxref">Ruby</a></li>

<li class='tocline'>C.3.2. <a href= 
"#a_rmodule_Ruby_Driver_for_Full_Ruby_Markup" class="tocxref">Ruby
Driver for Full Ruby Markup</a></li>

<li class='tocline'>C.3.3. <a href="#a_rmodule_XML_Events" class= 
"tocxref">XML Events</a></li>
</ul>
</li>
</ul>
</li>

<li class='tocline'>D. <a href="#a_xhtml20_schema" class="tocxref">
XHTML 2.0 Schema</a></li>

<li class='tocline'>E. <a href="#a_schema_module_defs" class= 
"tocxref">XHTML Schema Module Implementations</a></li>

<li class='tocline'>F. <a href="#a_xhtml20_dtd" class="tocxref">
XHTML 2.0 Document Type Definition</a> 

<ul class="toc">
<li class='tocline'><span class="diff-new">F.1.</span> <a href= 
"#sec_F.1." class="tocxref"><span class="diff-new">
Issues</span></a></li>
</ul>
</li>

<li class='tocline'>G. <a href="#a_dtd_module_defs" class=
"tocxref">XHTML DTD Module Implementations</a> 

<ul class="toc">
<li class='tocline'>G.1. <a href="#a_xhtml_framework" class=
"tocxref">XHTML Modular Framework</a> 

<ul class="toc">
<li class='tocline'>G.1.1. <a href= 
"#a_module_XHTML_Base_Architecture" class="tocxref">XHTML Base
Architecture</a></li>

<li class='tocline'>G.1.2. <a href="#a_module_XHTML_Notations"
class="tocxref">XHTML Notations</a></li>

<li class='tocline'>G.1.3. <a href="#a_module_XHTML_Datatypes"
class="tocxref">XHTML Datatypes</a></li>

<li class='tocline'>G.1.4. <a href= 
"#a_module_XHTML_Common_Attribute_Definitions" class="tocxref">
XHTML Common Attribute Definitions</a></li>

<li class='tocline'>G.1.5. <a href=
"#a_module_XHTML_Qualified_Names" class="tocxref">XHTML Qualified
Names</a></li>

<li class='tocline'>G.1.6. <a href= 
"#a_module_XHTML_Character_Entities" class="tocxref">XHTML
Character Entities</a></li>
</ul>
</li>

<li class='tocline'>G.2. <a href="#a_dtdspecial" class="tocxref">
XHTML Module Implementations</a> 

<ul class="toc">
<li class='tocline'>G.2.1. <a href="#a_module_Structure" class= 
"tocxref">Structure</a></li>

<li class='tocline'>G.2.2. <a href="#a_module_Block_Text" class= 
"tocxref">Block Text</a></li>

<li class='tocline'>G.2.3. <a href="#a_module_Inline_Text" class= 
"tocxref">Inline Text</a></li>

<li class='tocline'>G.2.4. <a href="#a_module_Hypertext" class= 
"tocxref">Hypertext</a></li>

<li class='tocline'>G.2.5. <a href="#a_module_List" class=
"tocxref">List</a></li>

<li class='tocline'>G.2.6. <a href="#a_module_Link" class=
"tocxref">Link</a></li>

<li class='tocline'>G.2.7. <a href="#a_module_Metainformation"
class="tocxref">Metainformation</a></li>

<li class='tocline'>G.2.8. <a href="#a_module_Object" class=
"tocxref">Object</a></li>

<li class='tocline'>G.2.9. <a href="#a_module_Scripting" class= 
"tocxref">Scripting</a></li>

<li class='tocline'>G.2.10. <a href="#a_module_Style_Attribute"
class="tocxref">Style Attribute</a></li>

<li class='tocline'>G.2.11. <a href="#a_module_Style_Sheet" class= 
"tocxref">Style Sheet</a></li>

<li class='tocline'>G.2.12. <a href="#a_module_Tables" class= 
"tocxref">Tables</a></li>
</ul>
</li>

<li class='tocline'>G.3. <a href="#a_dtdsupport" class="tocxref">
XHTML DTD Support Modules</a> 

<ul class="toc">
<li class='tocline'>G.3.1. <a href="#a_module_Param" class=
"tocxref">Param</a></li>
</ul>
</li>
</ul>
</li>

<li class='tocline'>H. <a href="#a_stylesheet" class="tocxref">
<span class="diff-new">Stylesheet for XHTML 2</span></a></li>

<li class='tocline'><span class="diff-new">J.</span> <a href= 
"#a_elements" class="tocxref">List of Elements</a></li>

<li class='tocline'><span class="diff-chg">I.</span> <a href= 
"#a_attributes" class="tocxref">List of Attributes</a></li>

<li class='tocline'><span class="diff-chg">K.</span> <a href= 
"#a_xref" class="tocxref">Cross-reference Index</a></li>

<li class='tocline'><span class="diff-chg">L.</span> <a href= 
"#a_refs" class="tocxref">References</a> 

<ul class="toc">
<li class='tocline'><span class="diff-chg">L.1.</span> <a href= 
"#a_normrefs" class="tocxref">Normative References</a></li>

<li class='tocline'><span class="diff-chg">L.2.</span> <a href= 
"#a_inforefs" class="tocxref">Informative References</a></li>
</ul>
</li>

<li class='tocline'><span class="diff-chg">M.</span> <a href= 
"#a_acks" class="tocxref">Acknowledgements</a></li>
</ul>
</div>

<h1><a id="s_intro">1.</a> Introduction</h1>

<p>This section is <em>informative</em> .</p>

<h2><a  id="s_intro_whatisxhtml2">
1.1.</a> What is XHTML 2?</h2>

<p>XHTML 2 is a general purpose markup language designed for
representing documents for a wide range of purposes across the
World Wide Web. To this end it does not attempt to be all things to
all people, supplying every possible markup idiom, but to supply a
generally useful set of elements, with the possibility of extension
using the <code>span</code> and <code>div</code> elements in
combination with stylesheets.</p>

<h3><a  id="backCompat">1.1.1.</a> Backwards
compatibility</h3>

<p>Because earlier versions of HTML were special-purpose languages,
it was necessary to ensure a level of backwards compatibility with
new versions so that new documents would still be usable in older
browsers. However, thanks to XML and stylesheets, such strict
element-wise backwards compatibility is no longer necessary, since
an XML-based browser, of which at the time of writing means more
than 95% of browsers in use, can process new markup languages
without having to be updated. Much of XHTML2 works already in
existing browsers. Much, but not all: just as when forms and tables
were added to HTML, and people had to wait for new version of
browsers before being able to use the new facilities, some parts of
XHTML2, such as XForms and XML Events, still require user agents
that understand that functionality.</p>

<h3><a  id="presentation">1.1.2.</a> XHTML2 and
Presentation</h3>

<p>The original version of HTML was designed to represent the
structure of a document, not its presentation. Even though
presentation-oriented elements were later added to the language by
browser manufacturers, HTML is at heart a document structuring
language. XHTML2 takes HTML back to these roots, by removing all
presentation elements, and subordinating all presentation to
stylesheets. This gives greater flexibility, and more powerful
presentation possibilities, since CSS can do more than the
presentational elements of HTML ever did.</p>

<h3><a  id="aims">1.1.3.</a> Design Aims</h3>

<p>In designing XHTML, a number of design aims were kept in mind to
help direct the design. These included:</p>

<ul>
<li>As generic XML as possible: if a facility exists in XML, try to
use that rather than duplicating it.</li>

<li>Less presentation, more structure: already mentioned
above.</li>

<li>More usability: try to make the language easy to write, and
make the resulting documents easy to use.</li>

<li>More accessibility: some call it 'designing for our future
selves'; the design should be as inclusive as possible.</li>

<li>Better internationalization: it is a World Wide Web.</li>

<li>More device independence: new devices coming online, such as
telephones, PDAs, tablets, televisions and so on mean that it is
imperative to have a design that allows you to author once and
render in different ways on different devices, rather than
authoring new versions of the document for each type of
device.</li>

<li>Less scripting: achieving functionality through scripting is
difficult for the author and restricts the type of user agent you
can use to view the document. We have tried to identify current
typical usage, and include those usages in markup.</li>
</ul>

<h2><a  id="s_intro_whatismod">1.2.</a>
What are the XHTML 2 Modules?</h2>

<p>XHTML 2 is a member of the XHTML Family of markup languages. It
is an XHTML Host Language as defined in XHTML Modularization. As
such, it is made up of a set of XHTML Modules that together
describe the elements and attributes of the language, and their
content model. XHTML 2 updates many of the modules defined in XHTML
Modularization 1.0 [ <a class="nref" href="#ref_XHTMLMOD">
XHTMLMOD</a> ], and includes the updated versions of all those
modules and their semantics. XHTML 2 also uses modules from Ruby [
<a class="nref" href="#ref_RUBY">RUBY</a> ], XML Events [ <a class= 
"nref" href="#ref_XMLEVENTS">XMLEVENTS</a> ], and XForms [ <a
class="nref" href="#ref_XFORMS">XFORMS</a> ].</p>

<p>The modules defined in this specification are largely extensions
of the modules defined in XHTML Modularization 1.0. This
specification also defines the semantics of the modules it
includes. So, that means that unlike earlier versions of XHTML that
relied upon the semantics defined in HTML 4 [ <a class="nref" href= 
"#ref_HTML4">HTML4</a> ], all of the semantics for XHTML 2 are
defined either in this specification or in the specifications that
it normatively references.</p>

<p>Even though the XHTML 2 modules are defined in this
specification, they are available for use in other XHTML family
markup languages. Over time, it is possible that the modules
defined in this specification will migrate into the XHTML
Modularization specification.</p>

<h1><a  id="a_terms">2.</a> Terms and
Definitions</h1>

<p>This section is <em><span class="diff-chg">normative</span></em>
.</p>

<p>While some terms are defined in place, the following definitions
are used throughout this document. Familiarity with the W3C XML 1.0
Recommendation [ <a class="nref" href="#ref_XML">XML</a> ] is
highly recommended.</p>

<dl class="termlist">
<dt>abstract module</dt>

<dd>a unit of document type specification corresponding to a
distinct type of content, corresponding to a markup construct
reflecting this distinct type.</dd>

<dt>content model</dt>

<dd>the declared markup structure allowed within instances of an
element type. XML 1.0 differentiates two types: elements containing
only element content (no character data) and mixed content
(elements that may contain character data optionally interspersed
with child elements). The latter are characterized by a content
specification beginning with the "#PCDATA" string (denoting
character data).</dd>

<dt><a id="deprecated">deprecated</a></dt>

<dd>a feature marked as deprecated is in the process of being
removed from this recommendation. Portable applications should not
use features marked as deprecated.</dd>

<dt>document model</dt>

<dd>the effective structure and constraints of a given document
type. The document model constitutes the abstract representation of
the physical or semantic structures of a class of documents.</dd>

<dt>document type</dt>

<dd>a class of documents sharing a common abstract structure. The
ISO 8879 [ <a class="nref" href="#ref_SGML">SGML</a> ] definition
is as follows: "a class of documents having similar
characteristics; for example, journal, article, technical manual,
or memo. (4.102)"</dd>

<dt>document type definition (DTD)</dt>

<dd>a formal, machine-readable expression of the XML structure and
syntax rules to which a document instance of a specific document
type must conform; the schema type used in XML 1.0 to validate
conformance of a document instance to its declared document type.
The same markup model may be expressed by a variety of DTDs.</dd>

<dt>driver</dt>

<dd>a generally short file used to declare and instantiate the
modules of a DTD. A good rule of thumb is that a DTD driver
contains no markup declarations that comprise any part of the
document model itself.</dd>

<dt>element</dt>

<dd>an instance of an element type.</dd>

<dt>element type</dt>

<dd>the definition of an element, that is, a container for a
distinct semantic class of document content.</dd>

<dt>entity</dt>

<dd>an entity is a logical or physical storage unit containing
document content. Entities may be composed of parseable XML markup
or character data, or unparsed (i.e., non-XML, possibly
non-textual) content. Entity content may be either defined entirely
within the document entity ("internal entities") or external to the
document entity ("external entities"). In parsed entities, the
replacement text may include references to other entities.</dd>

<dt id="terms_entity-reference">entity reference</dt>

<dd>a mnemonic string used as a reference to the content of a
declared entity <span class="diff-chg">(e.g.,</span> "&amp;amp;"
for "&amp;", "&amp;lt;" for "&lt;", "&amp;copy;" for
"&copy;".)</dd>

<dt>generic identifier</dt>

<dd>the name identifying the element type of an element. Also,
element type name.</dd>

<dt>hybrid document</dt>

<dd>A hybrid document is a document that uses more than one XML
namespace. Hybrid documents may be defined as documents that
contain elements or attributes from hybrid document types.</dd>

<dt>instantiate</dt>

<dd>to replace an entity reference with an instance of its declared
content.</dd>

<dt>markup declaration</dt>

<dd>a syntactical construct within a DTD declaring an entity or
defining a markup structure. Within XML DTDs, there are four
specific types: entity declaration defines the binding between a
mnemonic symbol and its replacement content; element declaration
constrains which element types may occur as descendants within an
element (see also content model); attribute definition list
declaration defines the set of attributes for a given element type,
and may also establish type constraints and default values;
notation declaration defines the binding between a notation name
and an external identifier referencing the format of an unparsed
entity.</dd>

<dt>markup model</dt>

<dd>the markup vocabulary (i.e., the gamut of element and attribute
names, notations, etc.) and grammar (i.e., the prescribed use of
that vocabulary) as defined by a document type definition (i.e., a
schema) The markup model is the concrete representation in markup
syntax of the document model, and may be defined with varying
levels of strict conformity. The same document model may be
expressed by a variety of markup models.</dd>

<dt>module</dt>

<dd>an abstract unit within a document model expressed as a DTD
fragment, used to consolidate markup declarations to increase the
flexibility, modifiability, reuse and understanding of specific
logical or semantic structures.</dd>

<dt>modularization</dt>

<dd>an implementation of a modularization model; the process of
composing or de-composing a DTD by dividing its markup declarations
into units or groups to support specific goals. Modules may or may
not exist as separate file entities (i.e., the physical and logical
structures of a DTD may mirror each other, but there is no such
requirement).</dd>

<dt>modularization model</dt>

<dd>the abstract design of the document type definition (DTD) in
support of the modularization goals, such as reuse, extensibility,
expressiveness, ease of documentation, code size, consistency and
intuitiveness of use. It is important to note that a modularization
model is only orthogonally related to the document model it
describes, so that two very different modularization models may
describe the same document type.</dd>

<dt>parameter entity</dt>

<dd>an entity whose scope of use is within the document prolog
(i.e., the external subset/DTD or internal subset). Parameter
entities are disallowed within the document instance.</dd>

<dt>parent document type</dt>

<dd>A parent document type of a hybrid document is the document
type of the root element.</dd>

<dt>tag</dt>

<dd>descriptive markup delimiting the start and end (including its
generic identifier and any attributes) of an element.</dd>
</dl>

<h1><a  id="s_conform">3.</a> Conformance
Definition</h1>

<p>This section is <em>normative</em> .</p>

<p>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [ <a class="nref"
href="#ref_RFC2119">RFC2119</a> ].</p>

<h2><a  id="doccont">3.1.</a> Document
Conformance</h2>

<h3><a  id="strict">3.1.1.</a> Strictly Conforming
Documents</h3>

<div class="issue">
<p id="s_conform_issue_0" class="issueTitle">DTD Bias</p>

<p>This section has a distinct DTD bias. We need to make it clear
that any of DTD, XML Schema or RELAX NG can be used to validate
XHTML 2.0 documents.</p>
</div>

<p>A strictly conforming XHTML 2.0 document is a document that
requires only the facilities described as mandatory in this
specification. Such a document must meet all the following
criteria:</p>

<ol>
<li>
<p>The document must conform to the constraints expressed in <a
href="#a_xhtml20_relaxng">Appendix&nbsp;B - XHTML 2.0 RELAX NG
Definition</a> , <a href="#a_xhtml20_schema">Appendix&nbsp;D -
XHTML 2.0 Schema</a> or <a href="#a_xhtml20_dtd">Appendix&nbsp;F -
XHTML 2.0 Document Type Definition</a> .</p>
</li>

<li>
<p>The root element of the document must be <code>html</code> .</p>
</li>

<li>
<p>The root element of the document must contain an <code>
xmlns</code> declaration for the XHTML 2.0 namespace [ <a class= 
"nref" href="#ref_XMLNAMES">XMLNAMES</a> ]. The namespace for XHTML
2.0 is defined to be <code>http://www.w3.org/2002/06/xhtml2</code>
. An example root element might look like:</p>

<div class="good">
<pre>
&lt;html xmlns="http://www.w3.org/2002/06/xhtml2" xml:lang="en"&gt;
</pre>
</div>
</li>

<li>
<p>There must be a DOCTYPE declaration in the document prior to the
root element. If present, the public identifier included in the
DOCTYPE declaration must reference the DTD found in <a href= 
"#a_dtd_module_defs">Appendix&nbsp;F</a> using its Public
Identifier. The system identifier may be modified
appropriately.</p>

<pre>
&lt;!DOCTYPE
 html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
 "TBD"&gt;
</pre>
</li>
</ol>

<p>Here is an example of an XHTML 2.0 document.</p>

<div class="good">
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
    "TBD"&gt;
&lt;html xmlns="http://www.w3.org/2002/06/xhtml2" xml:lang="en"&gt;
  &lt;head&gt;
    &lt;title&gt;Virtual Library&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;p&gt;Moved to &lt;a href="http://vlib.org/"&gt;vlib.org&lt;/a&gt;.&lt;/p&gt;
  &lt;/body&gt;
&lt;/html&gt;
</pre>
</div>

<p>Note that in this example, the XML declaration is included. An
XML declaration like the one above is not required in all XML
documents. XHTML document authors are strongly encouraged to use
XML declarations in all their documents. Such a declaration is
required when the character encoding of the document is other than
the default UTF-8 or UTF-16 and no encoding was determined by a
higher-level protocol.</p>

<h2><a  id="uaconf">3.2.</a> User Agent
Conformance</h2>

<p>A conforming user agent must meet all user agent conformance
requirements defined in [ <a class="nref" href="#ref_XHTMLMOD">
XHTMLMOD</a> ].</p>

<h1><a  id="s_doctype">4.</a> The XHTML 2.0
Document Type</h1>

<p>This section is <em>normative</em> .</p>

<p>The XHTML 2.0 document type is a fully functional document type
with rich semantics. It is a collection of XHTML-conforming modules
(most of which are defined in this specification). The Modules and
their elements are listed here for information purposes, but the
definitions in their base documents should be considered
authoritative. In the on-line version of this document, the module
names in the list below link into the definitions of the modules
within the relevant version of the authoritative specification.</p>

<dl>
<dt><a href="#s_structuremodule">Structure Module</a> *</dt>

<dd><code>body, head, html, title</code></dd>

<dt><a href="#s_block-textmodule">Block Text Module</a> *</dt>

<dd><code>address, blockcode, blockquote, div, h, h1, h2, h3, h4,
h5, h6, hr, p, pre, section</code></dd>

<dt><a href="#s_inline-textmodule">Inline Text Module</a> *</dt>

<dd><code>abbr, cite, code, dfn, em, kbd, l, quote, samp, span,
strong, sub, sup, var</code></dd>

<dt><a href="#s_hypertextmodule">Hypertext Module</a> *</dt>

<dd><code>a</code></dd>

<dt><a href="#s_listmodule">List Module</a> *</dt>

<dd><code>dl, dt, dd, label, nl, ol, ul, li</code></dd>

<dt><a href="#s_linkmodule">Link Module</a></dt>

<dd><code>link</code></dd>

<dt><a href="#s_metamodule">Metainformation Module</a></dt>

<dd><code>meta</code></dd>

<dt><a href="#s_objectmodule">Object Module</a></dt>

<dd><code>object, param, standby</code></dd>

<dt><a href="#s_scriptingmodule">Scripting Module</a></dt>

<dd><code>noscript, script</code></dd>

<dt><a href="#s_styleAttributemodule">Style Attribute
Module</a></dt>

<dd><code>style</code> attribute</dd>

<dt><a href="#s_styleSheetmodule">Stylesheet Module</a></dt>

<dd><code>style</code> element</dd>

<dt><a href="#s_tablesmodule">Tables Module</a></dt>

<dd><code>caption, col, colgroup, summary, table, tbody, td, tfoot,
th, thead, tr</code></dd>
</dl>

<p>XHTML 2.0 also uses the following externally defined
modules:</p>

<dl>
<dt>Ruby Annotation Module [ <a class="nref" href="#ref_RUBY">
RUBY</a> ]</dt>

<dd><code>ruby, rbc, rtc, rb, rt, rp</code></dd>

<dt>XML Events Module [ <a class="nref" href="#ref_XMLEVENTS">
XMLEVENTS</a> ]</dt>

<dd><code>listener</code></dd>

<dt>XForms Module [ <a class="nref" href="#ref_XFORMS">XFORMS</a>
]</dt>

<dd><code>action, alert, bind, case, choices, copy, delete,
dispatch, extension, filename, group, help, hint, input, insert,
instance, item, itemset, label, load, mediatype, message, model,
output, range, rebuild, recalculate, refresh, repeat, reset,
revalidate, secret, select, select1, send, setfocus, setindex,
setvalue, submission, submit, switch, textarea, toggle, trigger,
upload, value</code></dd>
</dl>

<p>There are no additional definitions required by this document
type. An implementation of this document type as a RELAX NG grammar
is defined in <a href="#a_xhtml20_relaxng">Appendix B</a> , as an
XML Schema in <a href="#a_xhtml20_schema">Appendix D</a> , and as a
DTD in <a href="#a_xhtml20_dtd">Appendix F</a> .</p>

<h2><a id="sec_4.1."><span class="diff-new">
4.1.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_doctype_issue_0" class="issueTitle"><span class=
"diff-new">Identifying XHTML version in ansence of DTDs</span>
<span class="pr"><span class="diff-new">PR
#7336</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">This is a tricky issue, and the working
group needs to resolve it quickly. We are asking for input from the
HyperText Coordination Group and others in our quest to sort it
out.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">If we move to a world of schema-based validation, the DOCTYPE disappears.
But that is the principle method of idetifying the XHTML variant.
What method should we use to identify the variant in the absence of DTDs?
</span>
</pre>
</div>

<h1><a  id="s_abstraction">5.</a> Module
Definition Conventions</h1>

<p>This section is <em>normative</em> .</p>

<p>This document defines a variety of XHTML modules and the
semantics of those modules. This section describes the conventions
used in those module definitions.</p>

<h2><a id="sec_5.1.">5.1.</a> Module Structure</h2>

<p>Each module in this document is structured in the following
way:</p>

<ul>
<li>An <a href="#abstraction_abstract_definition">abstract
definition</a> of the module's elements, attributes, and content
models, as appropriate.</li>

<li>A sub-section for each element in the module; These
sub-sections contain the following components: 

<ul>
<li>A brief description of the element,</li>

<li>A definition of each attribute or <a href= 
"#s_attribute-collectionsmodule">attribute collection</a> usable
with the element, and</li>

<li>A detailed description of the behavior of the element, if
appropriate.</li>
</ul>

<p><em class="note">Note that attributes are fully defined only the
first time they are used in each module. After that, only a brief
description of the attribute is provided, along with a link back to
the primary definition.</em></p>
</li>
</ul>

<h2><a  id= 
"abstraction_abstract_definition">5.2.</a> Abstract Module
Definitions</h2>

<p>An abstract module is a definition of an XHTML module using
prose text and some informal markup conventions. While such a
definition is not generally useful in the machine processing of
document types, it is critical in helping people understand what is
contained in a module. This section defines the way in which XHTML
abstract modules are defined. An XHTML-conforming module is <em>not
required</em> to provide an abstract module definition. However,
anyone developing an XHTML module is encouraged to provide an
abstraction to ease in the use of that module.</p>

<h2><a id="sec_5.3.">5.3.</a> Syntactic
Conventions</h2>

<p>The abstract modules are not defined in a formal grammar.
However, the definitions do adhere to the following syntactic
conventions. These conventions are similar to those of XML DTDs,
and should be familiar to XML DTD authors. Each discrete syntactic
element can be combined with others to make more complex
expressions that conform to the algebra defined here.</p>

<dl>
<dt>element name</dt>

<dd>When an element is included in a content model, its explicit
name will be listed.</dd>

<dt>content set</dt>

<dd>Some modules define lists of explicit element names called <em>
content sets</em> . When a content set is included in a content
model, its name will be listed.</dd>

<dt><code>expr ?</code></dt>

<dd>Zero or one instances of expr are permitted.</dd>

<dt><code>expr +</code></dt>

<dd>One or more instances of expr are required.</dd>

<dt><code>expr *</code></dt>

<dd>Zero or more instances of expr are permitted.</dd>

<dt><code>a , b</code></dt>

<dd>Expression <code>a</code> is required, followed by expression
<code>b</code> .</dd>

<dt><code>a | b</code></dt>

<dd>Either expression a or expression b is required.</dd>

<dt><code>a - b</code></dt>

<dd>Expression a is permitted, omitting elements in expression
b.</dd>

<dt>parentheses</dt>

<dd>When an expression is contained within parentheses, evaluation
of any subexpressions within the parentheses take place before
evaluation of expressions outside of the parentheses (starting at
the deepest level of nesting first).</dd>

<dt>extending pre-defined elements</dt>

<dd>In some instances, a module adds attributes to an element. In
these instances, the element name is followed by an ampersand (
<code>&amp;</code> ).</dd>

<dt>defining required attributes</dt>

<dd>When an element requires the definition of an attribute, that
attribute name is followed by an asterisk ( <code>*</code> ).</dd>

<dt>defining the type of attribute values</dt>

<dd>When a module defines the type of an attribute value, it does
so by listing the type in parentheses after the attribute
name.</dd>

<dt>defining the legal values of attributes</dt>

<dd>When a module defines the legal values for an attribute, it
does so by listing the explicit legal values (enclosed in quotation
marks), separated by vertical bars ( <code>|</code> ), inside of
parentheses following the attribute name. If the attribute has a
default value, that value is followed by an asterisk ( <code>
*</code> ). If the attribute has a fixed value, the attribute name
is followed by an equals sign ( <code>=</code> ) and the fixed
value enclosed in quotation marks.</dd>
</dl>

<h2><a  id="s_common_types">5.4.</a> Content
Types</h2>

<p>Abstract module definitions define minimal, atomic content
models for each module. These minimal content models reference the
elements in the module itself. They may also reference elements in
other modules upon which the abstract module depends. Finally, the
content model in many cases requires that text be permitted as
content to one or more elements. In these cases, the symbol used
for text is <span class="content">PCDATA</span> . This is a term,
defined in the XML 1.0 Recommendation, that refers to processed
character data. A content type can also be defined as <span class= 
"content">EMPTY</span> , meaning the element has no content in its
minimal content model.</p>

<h2><a  id="s_common_attrtypes">5.5.</a>
Attribute Types</h2>

<p>In some instances, it is necessary to define the types of
attribute values or the explicit set of permitted values for
attributes. The following attribute types (defined in the XML 1.0
Recommendation) are used in the definitions of the abstract
modules:</p>

<table border="1" summary="Definitions of Attribute Types">
<thead>
<tr>
<th>Attribute Type</th>
<th>Definition</th>
</tr>
</thead>

<tbody>
<tr>
<td id="dt_CDATA">CDATA</td>
<td>Character data</td>
</tr>

<tr>
<td id="dt_ID">ID</td>
<td>A document-unique identifier</td>
</tr>

<tr>
<td id="dt_IDREF">IDREF</td>
<td>A reference to a document-unique identifier</td>
</tr>

<tr>
<td id="dt_IDREFS">IDREFS</td>
<td>A space-separated list of references to document-unique
identifiers</td>
</tr>

<tr>
<td id="dt_NMTOKEN">NMTOKEN</td>
<td>A name composed of only name tokens as defined in XML 1.0 [ <a
class="nref" href="#ref_XML">XML</a> ].</td>
</tr>

<tr>
<td id="dt_NMTOKENS">NMTOKENS</td>
<td>One or more white space separated NMTOKEN values</td>
</tr>

<tr>
<td id="dt_NUMBER"><span class="diff-new">NUMBER</span></td>
<td><span class="diff-chg">Sequence consisting only digits
([0-9])</span></td>
</tr>

<tr>
<td id="dt_PCDATA">PCDATA</td>
<td>Processed character data</td>
</tr>
</tbody>
</table>

<p>In addition to these pre-defined data types, XHTML
Modularization defines the following data types and their semantics
(as appropriate):</p>

<table border='1' summary='Custom data types'>
<tr>
<th>Data type</th>
<th>Description</th>
</tr>

<tr>
<td id="dt_Character">Character</td>
<td>A single character, as per section 2.2 of [ <a class="nref"
href="#ref_XML">XML</a> ].</td>
</tr>

<tr>
<td id="dt_Charset">Charset</td>
<td>A character encoding, as per [ <a class="nref" href= 
"#ref_RFC2045">RFC2045</a> ].</td>
</tr>

<tr>
<td id="dt_ContentType">ContentType</td>
<td>A list of media ranges with optional accept parameters, as
defined in section 14.1 of [ <a class="nref" href="#ref_RFC2616">
RFC2616</a> ] as the field value of the accept request header.</td>
</tr>

<tr>
<td id="dt_Coordinates">Coordinates</td>
<td>Comma separated list of <a href="#dt_Length">Length</a> s used
in defining areas.</td>
</tr>

<tr>
<td id="dt_Datetime">Datetime</td>
<td>Date and time information, as defined by the type <code>
dateTime</code> in [ <a class="nref" href="#ref_XMLSCHEMA">
XMLSCHEMA</a> ].</td>
</tr>

<tr>
<td id="dt_HrefTarget">HrefTarget</td>
<td>Name used as destination for results of certain actions, with
legal values as defined by <span class="datatype"><a href= 
"#dt_NMTOKEN">NMTOKEN</a></span> .</td>
</tr>

<tr>
<td id="dt_LanguageCode">LanguageCode</td>
<td>A language code, as per [ <a class="nref" href="#ref_RFC3066">
RFC3066</a> ].</td>
</tr>

<tr>
<td id="dt_Length">Length</td>
<td>The value may be either in pixels or a percentage of the
available horizontal or vertical space. Thus, the value "50%" means
half of the available space.</td>
</tr>

<tr>
<td id="dt_LinkTypes">LinkTypes</td>
<td>Authors may use the following recognized link types, listed
here with their conventional interpretations. A LinkTypes value
refers to a space-separated list of link types. White space
characters are not permitted within link types. 

<p>These link types are case-insensitive, i.e., "Alternate" has the
same meaning as "alternate".</p>

<p>User agents, search engines, etc. may interpret these link types
in a variety of ways. For example, user agents may provide access
to linked documents through a navigation bar.</p>

<dl>
<dt><strong>Alternate</strong></dt>

<dd>Designates substitute versions for the document in which the
link occurs. When used together with the <code>xml:lang</code>
attribute, it implies a translated version of the document. When
used together with the <code>media</code> attribute, it implies a
version designed for a different medium (or media).</dd>

<dt><strong>Stylesheet</strong></dt>

<dd>Refers to an external style sheet. See the <a href= 
"#s_styleSheetmodule">Style Sheet Module</a> for details. This is
used together with the link type "Alternate" for user-selectable
alternate style sheets.</dd>

<dt><strong>Start</strong></dt>

<dd>Refers to the first document in a collection of documents. This
link type tells search engines which document is considered by the
author to be the starting point of the collection.</dd>

<dt><strong>Next</strong></dt>

<dd>Refers to the next document in an ordered sequence of
documents. User agents may choose to pre-load the "next" document,
to reduce the perceived load time.</dd>

<dt><strong>Prev</strong></dt>

<dd>Refers to the previous document in an ordered series of
documents. Some user agents also support the synonym
"Previous".</dd>

<dt><strong>Parent</strong></dt>

<dd>Refers to the parent document in a structured set of
documents.</dd>

<dt><strong>Contents</strong></dt>

<dd>Refers to a document serving as a table of contents. Some user
agents also support the synonym <em>ToC</em> (from "Table of
Contents").</dd>

<dt><strong>Index</strong></dt>

<dd>Refers to a document providing an index for the current
document.</dd>

<dt><strong>Glossary</strong></dt>

<dd>Refers to a document providing a glossary of terms that pertain
to the current document.</dd>

<dt><strong>Copyright</strong></dt>

<dd>Refers to a copyright statement for the current document.</dd>

<dt><strong>Chapter</strong></dt>

<dd>Refers to a document serving as a chapter in a collection of
documents.</dd>

<dt><strong>Section</strong></dt>

<dd>Refers to a document serving as a section in a collection of
documents.</dd>

<dt><strong>Subsection</strong></dt>

<dd>Refers to a document serving as a subsection in a collection of
documents.</dd>

<dt><strong>Appendix</strong></dt>

<dd>Refers to a document serving as an appendix in a collection of
documents.</dd>

<dt><strong>Help</strong></dt>

<dd>Refers to a document offering help (more information, links to
other sources information, etc.)</dd>

<dt><strong>Bookmark</strong></dt>

<dd>Refers to a bookmark. A bookmark is a link to a key entry point
within an extended document. The <span class='attributes'>
title</span> attribute may be used, for example, to label the
bookmark. Note that several bookmarks may be defined in each
document.</dd>

<dt><strong>Meta</strong></dt>

<dd>Refers to a document that provides metadata, for instance in
RDF, about the current document.</dd>

<dt><strong>P3Pv1</strong></dt>

<dd>Refers to a P3P Policy Reference File. See [ <a class="nref"
href="#ref_P3P">P3P</a> ]</dd>
</dl>
</td>
</tr>

<tr>
<td id="dt_MediaDesc">MediaDesc</td>
<td>
<p>A comma-separated list of media descriptors as described by [ <a
class="nref" href="#ref_CSS2">CSS2</a> ]. The default is <code>
all</code> .</p>
</td>
</tr>

<tr>
<td id="dt_Number">Number</td>
<td>One or more digits</td>
</tr>

<tr>
<td id="dt_Shape">Shape</td>
<td>The shape of a region.</td>
</tr>

<tr>
<td id="dt_Text">Text</td>
<td>Arbitrary textual data, likely meant to be human-readable.</td>
</tr>

<tr>
<td id="dt_URI">URI</td>
<td>A Uniform Resource Identifier Reference, as defined by the type
<code>anyURI</code> in [ <a class="nref" href="#ref_XMLSCHEMA">
XMLSCHEMA</a> ].</td>
</tr>

<tr>
<td id="dt_URIs">URIs</td>
<td>A space-separated list of URIs as defined above.</td>
</tr>
</table>

<h2><a  id="sec_5.6."><span class="diff-chg">
5.6.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_abstraction_issue_0" class="issueTitle"><span class= 
"diff-new">WD-xhtml2-20021211: Additional Linktypes</span> <span
class="pr"><span class="diff-new">PR #6203</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">These are reasonable suggestions. I feel we
should include them. -spm</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class=
"diff-chg">I see section 5.5 is slowly growing, with additional attribute types for
linking ('Meta', 'Prefetch', etc.) being added.  Last year I was looking
into how best to use the &lt;link&gt; element with various browsers, including
Mozilla[1], and suggested the following five as potential new ones:
Parent
    Refers to the document above the present document in a hierarchical
    collection of documents.
First
    Refers to the first document in a linear sequence of documents.  May
    be used in conjunction with "Next", "Prev" and "Last".
Last
    Refers to the last document in a linear sequence of documents.  May
    be used in conjunction with "First", "Next" and "Prev".
Search
    Refers to a document for searching material related to a collection
    of documents.
Author
    Refers to a contact URI for the document author or authors.
    Typically this may be a "mailto:" URL.
Is there any chance they could be looked into for possible inclusion
within XHTML 2.0?
Thanks,
Dave
[1] http://lists.w3.org/Archives/Public/www-html/2001Oct/0026.html
</span>
</pre>
</div>

<div class="issue">
<p id="s_abstraction_issue_1" class="issueTitle"><span class= 
"diff-chg">comments on 2002-12-12 XHTML 2.0 WD: Link types should
allow "icon" for rel/rev</span> <span class="pr"><span class= 
"diff-chg">PR #6389</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">I think anything like this should be done
through a stylesheet. -spm</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">Important disclaimers:
  (a) The current message expresses my personal opinions ONLY, and
      does NOT reflect the position of my employer.
  (b) The current message is meant to be constructive; criticism is
      always helpful when carefully used.
Comments are extracted from Issue 6211:
9. Link types should allow "icon" for rel/rev. That's proposed by
   Mozilla for page favicons.
Conclusion:
  As it is in its 2002-12-11 WD, I think that XHTML 2.0 is far
  away from both what the Web Authors are expecting and from what
  could be done to "lead the Web to its full potential".
  The current WD makes some strategic choices (style attribute
  for instance) that seem to me harmful.
  I see no incentive for a Web Author to ever move to XHTML 2 from
  a simple XMLized version of the actual transitional HTML4 (call
  that as you wish). XHTML 2.0 does not contain ANY new key feature
  and seem to get totally rid of all Authors' requests between 1998
  and today.
  From my perspective, XHTML 2.0 as it is today is a failure and the
  work of the HTML WG on this topic should be immediately and
  totally reoriented.
  Once again, the current message expresses ONLY my personal opinions.
Regards,
&lt;/Daniel&gt;
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran&ccedil;ais !
Yahoo! Mail : http://fr.mail.yahoo.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_abstraction_issue_2" class="issueTitle"><span class= 
"diff-chg">Re: Updated XHTML 2.0 draft published: Sec 5.5,
additions to linktypes value</span> <span class="pr"><span class= 
"diff-chg">PR #6461</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span><br />
<span class="diff-chg">Location:</span> <a href=
"#s_common_attrtypes"><span class="diff-chg">near
here</span></a></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">There are several suggested link types in
this issue. In general, we should consider all</span> of <span
class="diff-chg">them and pick some or none. I have no preference.
-spm</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">This issue extracted from PR # 7334:
My comments:
...
5.5 - LinkTypes
Yes to redirect. It's a hack of sorts, but better than what we have now.
Also add "disclaimer" (we have "copyright", so why not?). "P3Pv1" should 
be deprecated in favour of the more general "privacy" which may point to 
a P3P v1 file, or alternatively some other machine- or human-readable 
privacy policy.
There should be an "original" link type to link to the original version 
of a file, from a mirror.
There should be "earliest", "earlier", "later" and "latest" link types. 
For example, the XHTML 2 specification could link (rel earlier) to XHTML 
1.1 and (rel earliest) to XHTML 1.0 (or HTML 1.0?).
There is a "start" link type, but no "end".
Add an "accessibility" link to let people know about a page's 
accessibility features (such as a list of accesskeys).
Some links have written by them "Some user agents also support the 
synonym foobar". Who cares? We're defining a new standard here.
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_abstraction_issue_3" class="issueTitle"><span class= 
"diff-chg">Comments about XHTML 2.0 WD5: Sec 5.5, why the linktype
stylesheet?</span> <span class="pr"><span class="diff-chg">PR
#6484</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span><br />
<span class="diff-chg">Location:</span> <a href=
"#s_common_attrtypes"><span class="diff-chg">near
here</span></a></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">We continue to support the stylesheet link
type because it is familiar to our community and because it will
then be available in the DOM tree. We will, however, clearly define
the order in which various styling components are to be
processed.</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
SECTION 5.5
LinkTypes
...
2. What's with the type of "stylesheet"?  The XHTML Media Types Note
    says, "When serving an XHTML document with [the
    application/xhtml+xml] media type, authors SHOULD include the XML
    stylesheet processing instruction [XMLstyle] to associate style
    sheets." and in section 1.1.3 of the XHTML WD, it says "if a
    facility exists in XML, try to use that rather than duplicating
    it."  So with those things in mind, shouldn't &lt;?xml-stylesheet
    ... ?&gt; be the recommended method?
...
</span>
</pre>
</div>

<h1><a  id= 
"s_attribute-collectionsmodule">6.</a> XHTML Attribute
Collections</h1>

<p>This section is <em>normative</em> .</p>

<p>Many of the abstract modules in this document define the
required attributes for their elements. The table below defines
some collections of attributes that are referenced throughout the
modules. <span class="diff-chg">The names of the collections</span>
should in no way be considered normative or mandatory. They are an
editorial convenience for this document. When used in the remainder
of this <span class="diff-chg">document,</span> it is the expansion
of the <span class="diff-chg">name</span> that is normative, not
the <span class="diff-chg">name</span> itself.</p>

<p>The following basic attribute sets are used on many elements. In
each case where they are used, their use is identified via their
collection name.</p>

<p><span class="diff-new">Each of the attributes declared in this
section is available when their corresponding module is included in
an XHTML Host Language or an XHTML Integration Set (see [</span> <a
class="nref" href="#ref_XHTMLMOD"><span class="diff-new">
XHTMLMOD</span></a> <span class="diff-new">]). In such a situation,
the attributes are available for use on elements that are NOT in
the XHTML namespace when they are referenced using their
namespace-qualified identifier (e.g.,</span> <code><span class= 
"diff-new">xhtml:id</span></code> <span class="diff-new">). The
semantics of the attributes remain the same regardless of whether
they are referenced using their qualified identifier or not. If
both the qualified and non-qualified identifier for an attribute
are used on the same XHTML namespace element, the behavior is
unspecified.</span></p>

<h2><a  id="col_Core">6.1.</a> Core Attribute
Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_inline-textmodule"><span class="diff-new">Inline
Text</span></a> <span class="diff-new">module.</span></p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_class"><span
class="adef">class</span></a> = <span class="datatype"><a href= 
"#dt_NMTOKENS">NMTOKENS</a></span></dt>

<dd>This attribute assigns one or more class names to an element;
the element may be said to belong to these classes. A class name
may be shared by several element instances. 

<p>The <a class="aref" href="#adef_attribute-collections_class">
class</a> attribute can be used for different purposes in XHTML,
for instance as a <a href="#s_styleSheetmodule">style sheet</a>
selector (when an author wishes to assign style information to a
set of elements), and for general purpose processing by user
agents.</p>

<div class="example">
<p>For instance in the following example, the <a class="eref" href= 
"#edef_block-text_p">p</a> element is used in conjunction with the
<a class="aref" href="#adef_attribute-collections_class">class</a>
attribute to identify a particular type of paragraph.</p>

<pre>
&lt;p class="note"&gt;
These programs are only available if you have purchased
the advanced professional suite.
&lt;/p&gt;
</pre>

<p>Style sheet rules can then be used to render the paragraph
appropriately, for instance by putting a border around it, giving
it a different background colour, or where necessary by not
displaying it at all.</p>
</div>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_id"><span class= 
"adef">id</span></a> = <span class="datatype"><a href="#dt_ID">
ID</a></span></dt>

<dd>The <a class="aref" href="#adef_attribute-collections_id">
id</a> attribute assigns an <a class="xdef" id= 
"s_attribute-collectionsmodule_xref_0">identifier</a> to an
element. The id of an element must be unique within a document. 

<p>The <a class="aref" href="#adef_attribute-collections_id">id</a>
attribute has several <a class="xdef" id= 
"s_attribute-collectionsmodule_xref_1">roles</a> in XHTML:</p>

<ul>
<li>As a <a href="#s_styleSheetmodule">style sheet</a>
selector.</li>

<li>As a target <a class="eref" href="#edef_hypertext_a">anchor</a>
for hypertext links.</li>

<li>As a means to reference a particular element from a <a class= 
"eref" href="#edef_scripting_script">script</a> .</li>

<li>As the name of a declared <a class="eref" href= 
"#edef_object_object">object</a> element.</li>

<li>For general purpose processing by user agents (e.g. for
identifying fields when extracting data from XHTML pages into a
database, translating XHTML documents into other formats,
etc.).</li>
</ul>

<p>As an example, the following headings are distinguished by their
<a class="aref" href="#adef_attribute-collections_id">id</a>
values:</p>

<div class="example">
<pre>
&lt;h id="introduction"&gt;Introduction&lt;/h&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;h id="events"&gt;The Events Module&lt;/h&gt;
&lt;p&gt;...&lt;/p&gt;
</pre>
</div>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_title"><span
class="adef">title</span></a> = <span class="datatype"><a href= 
"#dt_Text">Text</a></span></dt>

<dd>This attribute offers advisory information about the element
for which it is set. 

<p>Values of the <a class="aref" href= 
"#adef_attribute-collections_title">title</a> attribute may be used
by user agents in a variety of ways. For instance, visual browsers
should display the title as a "tool tip" (a short message that
appears when the pointing device pauses over an object). Audio user
agents may speak the title information in a similar context.</p>

<p>Example of the use of <a class="aref" href= 
"#adef_attribute-collections_title">title</a> :</p>

<pre class="example">
<span class=
"diff-chg">&lt;a href="Jakob.html" title="Author biography"&gt;Jakob Nielsen&lt;/a&gt;'s Alertbox for January 11, 1998
</span>
</pre>

<p>The <a class="aref" href="#adef_attribute-collections_title">
title</a> attribute has an additional role when used with the <a
class="eref" href="#edef_link_link">link</a> element to designate
an <a href="#styleSheet_external">external style sheet.</a> See the
section on <a href="#link_stylesheets">links and style sheets</a>
for details.</p>
</dd>
</dl>

<h2><a  id="col_I18N">6.2.</a> I18N Attribute
Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_inline-textmodule"><span class="diff-new">Inline
Text</span></a> <span class="diff-new">module.</span></p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute_collections_xml_lang"><span
class="adef">xml:lang</span></a> = <span class="datatype"><a href= 
"#dt_LanguageCode">LanguageCode</a></span></dt>

<dd>This attribute specifies the base language of an element's
attribute values and text content. It is defined normatively in [
<a class="nref" href="#ref_XML">XML</a> ] <a href= 
"http://www.w3.org/TR/REC-xml#sec-lang-tag">section 2.12</a> . The
default value of this attribute is unspecified. 

<p>An element inherits language code information according to the
following order of precedence (highest to lowest):</p>

<ul>
<li>The <a class="aref" href=
"#adef_attribute-collections_xml:lang">xml:lang</a> attribute set
for the element itself.</li>

<li>The closest parent element that has the <a class="aref" href= 
"#adef_attribute-collections_xml:lang">xml:lang</a> attribute set
(i.e., the <a class="aref" href= 
"#adef_attribute-collections_xml:lang">xml:lang</a> attribute is
inherited).</li>

<li>The HTTP "Content-Language" header (which may be configured in
a server).</li>
</ul>

<div class="example">
<p>In this example, the primary language of the document is French
("fr"). One paragraph is declared to be in US English ("en-us"),
after which the primary language returns to French. The following
paragraph includes an embedded Japanese ("ja") phrase, after which
the primary language returns to French.</p>

<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
   "TBD"&gt;
&lt;html xmlns="http://www.w3.org/2002/06/xhtml2" xml:lang="fr"&gt;
&lt;head&gt;
   &lt;title&gt;Un document multilingue&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;p&gt;<em>...Interpreted as French...</em>&lt;/p&gt;
&lt;p xml:lang="en-us"&gt;<em>...Interpreted as US English...</em>&lt;/p&gt;
&lt;p&gt;<em>...Interpreted as French again...</em>&lt;/p&gt;
&lt;p&gt;<em>...French text interrupted by</em>&lt;em xml:lang="ja"&gt;some
         Japanese&lt;/em&gt;<em>French begins here again...</em>&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
</div>
</dd>
</dl>

<h2><a  id="col_Bi-directional">6.3.</a>
Bi-directional Text Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_bidimodule"><span class="diff-new">Bi-Directional
Text</span></a> <span class="diff-new">module.</span></p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_dir"><span
class="adef">dir</span></a> = <samp>"ltr|rtl|lro|rlo"</samp></dt>

<dd>This attribute specifies the base direction of the element's
text content. This direction overrides the inherent directionality
of characters as defined in [ <a class="nref" href="#ref_UAX9">
UAX9</a> ], and defines directional properties of text as defined
by CSS2 [ <a class="nref" href="#ref_CSS2">CSS2</a> ]. The default
value of this attribute is user-agent dependent. Possible values
are: 

<ul>
<li><samp>ltr</samp> : Left-to-right text. The effect of this
attribute is defined by the CSS2 rule: 

<pre>
*[dir="ltr"] { unicode-bidi: embed; direction: ltr}
</pre>
</li>

<li><samp>rtl</samp> : Right-to-left text. The effect of this
attribute is defined by the CSS2 rule: 

<pre>
*[dir="rtl"] { unicode-bidi: embed; direction: rtl}
</pre>
</li>

<li><samp>lro</samp> : Left-to-right override. The effect of this
attribute is defined by the CSS2 rule: 

<pre>
*[dir="lro"] { unicode-bidi: bidi-override; direction: ltr}
</pre>
</li>

<li><samp>rlo</samp> : Right-to-left override. The effect of this
attribute is defined by the CSS2 rule: 

<pre>
*[dir="rlo"] { unicode-bidi: bidi-override; direction: rtl}
</pre>
</li>
</ul>

<div class="example">
<p>Example:</p>

<pre>
&lt;p dir="ltr"&gt;
I received the following email:
&lt;l dir="lro"&gt;english werbeh english&lt;/l&gt;
&lt;l dir="lro"&gt;werbeh english werbeh&lt;/l&gt;
&lt;/p&gt;
</pre>
</div>

<h3><a id="sec_6.3.1.">6.3.1.</a> Inheritance of
text direction information</h3>

<p>The Unicode bidirectional algorithm requires a base text
direction for text blocks. To specify the base direction of a
block-level element, set the element's <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute. The default
value of the <a class="aref" href=
"#adef_attribute-collections_dir">dir</a> attribute is "ltr"
(left-to-right text).</p>

<p>When the <a class="aref" href="#adef_attribute-collections_dir">
dir</a> attribute is set for a block-level element, it remains in
effect for the duration of the element and any nested block-level
elements. Setting the <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute on a nested
element overrides the inherited value.</p>

<p>To set the base text direction for an entire document, set the
<a class="aref" href="#adef_attribute-collections_dir">dir</a>
attribute on the <a class="eref" href="#edef_structure_html">
html</a> element.</p>

<div class="example">
<p>Example:</p>

<pre>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN"
   "http://www.w3.org/TR/xhtml2/DTD/xhtml2.dtd"&gt;
&lt;html dir="rtl"&gt;
&lt;head&gt;
&lt;title&gt;<em>...a right-to-left title...</em>&lt;/title&gt;
&lt;/head&gt;
<em>...right-to-left text...</em>
&lt;p dir="ltr"&gt;<em>...left-to-right text...</em>&lt;/p&gt;
&lt;p&gt;<em>...right-to-left text again...</em>&lt;/p&gt;
&lt;/html&gt;
</pre>
</div>

<p>Inline elements, on the other hand, do not inherit the <a class= 
"aref" href="#adef_attribute-collections_dir">dir</a> attribute.
This means that an inline element without a <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute does <strong>
not</strong> open an additional level of embedding with respect to
the bidirectional algorithm. (Here, an element is considered to be
block-level or inline based on its default presentation.)</p>

<h3><a  id="sec_6.3.2.">6.3.2.</a> The effect of
style sheets on bidirectionality</h3>

<p>In general, using style sheets to change an element's visual
rendering from block-level to inline or vice-versa is
straightforward. However, because the bidirectional algorithm
relies on the inline/block-level distinction, special care must be
taken during the transformation.</p>

<p>When an inline element that does not have a <a class="aref"
href="#adef_attribute-collections_dir">dir</a> attribute is
transformed to the style of a block-level element by a style sheet,
it inherits the <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute from its
closest parent block element to define the base direction of the
block.</p>

<p>When a block element that does not have a <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute is transformed
to the style of an inline element by a style sheet, the resulting
presentation should be equivalent, in terms of bidirectional
formatting, to the formatting obtained by explicitly adding a <a
class="aref" href="#adef_attribute-collections_dir">dir</a>
attribute (assigned the inherited value) to the transformed
element.</p>
</dd>
</dl>

<h2><a  id="col_Edit">6.4.</a> Edit Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_editmodule"><span class="diff-new">Edit Attribute</span></a>
<span class="diff-new">module.</span></p>

<p>This collection allows elements to carry information indicating
how, when and why content has changed.</p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_edit"><span
class="adef">edit</span></a> = <samp>
"inserted|deleted|changed|moved"</samp></dt>

<dd>This attribute allows elements to carry information indicating
how content has changed. Possible values: 

<ul>
<li><samp>inserted</samp> : the content has been inserted</li>

<li><samp>deleted</samp> : the content has been deleted</li>

<li><samp>changed</samp> : the content has changed considerably,
therefore making it not worth being marked up with values of <code>
inserted</code> and <code>deleted</code></li>

<li><samp>moved</samp> : the content has been moved from some other
part of the document.</li>
</ul>

<p>The default presentation for an element with <code>
edit="deleted"</code> is <code>display: none</code> (in other
words, it is not displayed) although an alternate style might
display it as crossed through. The other three values cause no
special presentation by default, though an alternate style might
use background colors or other text decoration to indicate the
changed text.</p>

<div class="example">
<p>Example:</p>

<pre>
&lt;p&gt;I will do it
next &lt;span edit="deleted"&gt;week&lt;/span&gt;&lt;span edit="inserted"&gt;month&lt;/span&gt;.&lt;/p&gt;
</pre>
</div>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_datetime"><span
class="adef">datetime</span></a> = <span class="datatype"><a href= 
"#dt_Datetime">Datetime</a></span></dt>

<dd>The value of this attribute specifies the date and time when a
change was made. 

<p>Example:</p>

<pre>
datetime="2003-01-13T13:15:30Z"
</pre>
</dd>
</dl>

<h2><a  id="col_Hypertext">6.5.</a> Hypertext
Attribute Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_hypertextmodule"><span class="diff-new">Hypertext</span></a>
<span class="diff-new">module.</span></p>

<p>This collection allows an element to be the start point of a
hypertext link to a remote resource.</p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_href"><span
class="adef">href</span></a> = <span class="datatype"><a href= 
"#dt_URI">URI</a></span></dt>

<dd>This attribute specifies a URI that is actuated when the
element is activated. 

<div class="example">
<p>Examples:</p>

<pre>
&lt;abbr href="http://www.w3.org/" title="World Wide Web"&gt;WWW&lt;/abbr&gt;
&lt;li href="contents.xhtml"&gt;contents&lt;/li&gt;
&lt;a href="http://www.cwi.nl/~steven/amsterdam.html"&gt;Amsterdam&lt;/a&gt;
&lt;quote href="hamlet.xhtml#p2435"&gt;To be or not to be&lt;/quote&gt;
&lt;var href="#index_ninc"&gt;ninc&lt;/var&gt;
</pre>
</div>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_cite"><span
class="adef">cite</span></a> = <span class="datatype"><a href= 
"#dt_URI">URI</a></span></dt>

<dd>The value of this attribute is a URI that designates a source
document or message. This attribute is intended to give further
information about the element's contents (e.g., the source from
which a quotation was borrowed, or the reason text was inserted or
deleted). User Agents should provide a means for the user to access
the further information. 

<p>Example:</p>

<pre>
cite="comments.html"
</pre>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_target"><span
class="adef">target</span></a> = <span class="datatype"><a href= 
"#dt_HrefTarget">HrefTarget</a></span></dt>

<dd>This attribute identifies an environment that will act as the
destination for a resource identified by a hyperlink when it is
activated. 

<p>This specification does not define how this attribute gets used,
since that is defined by the environment that the hyperlink is
actuated in. See for instance XFrames [ <a class="nref" href= 
"#ref_XFRAMES">XFRAMES</a> ].</p>

<p>Example:</p>

<pre>
&lt;a href="home.html" target="main"&gt;Home&lt;/a&gt;
</pre>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_rel"><span
class="adef">rel</span></a> = <span class="datatype"><a href= 
"#dt_LinkTypes">LinkTypes</a></span></dt>

<dd>This attribute describes the relationship from the current
document to the URI referred to by the element. The value of this
attribute is a space-separated list of link types. 

<div class="example">
<p>Example:</p>

<pre>
&lt;link href="top.html" rel="contents"/&gt;
</pre>
</div>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_rev"><span
class="adef">rev</span></a> = <span class="datatype"><a href= 
"#dt_LinkTypes">LinkTypes</a></span></dt>

<dd>This attribute is used to describe a reverse link from the
anchor specified by the <a class="aref" href= 
"#adef_attribute-collections_href">href</a> attribute to the
current document. The value of this attribute is a space-separated
list of link types.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_accesskey"><span
class="adef">accesskey</span></a> = <span class="datatype"><a href= 
"#dt_Character">Character</a></span></dt>

<dd>This attribute assigns an access key to an element. <a class= 
"xdef" id="s_attribute-collectionsmodule_xref_2">An access key</a>
is a single character from the document character set. <strong>
Note.</strong> Authors should consider the input method of the
expected reader when specifying an accesskey. 

<p><a class="xdef" id="s_attribute-collectionsmodule_xref_3">
Pressing an access key assigned to an element gives focus to the
element.</a> The action that occurs when an element receives focus
depends on the element. For example, when a user activates a link
defined by the <a class="eref" href="#edef_hypertext_a">a</a>
element, the user agent generally follows the link. When a user
activates a radio button, the user agent changes the value of the
radio button. When the user activates a text field, it allows
input, etc.</p>

<div class="example">
<p>In this example, we assign the access key "C" to a link. Typing
this access key takes the user to another document, in this case, a
table of contents.</p>

<pre>
&lt;p accesskey="C" 
   rel="contents"
   href="http://example.com/specification/contents.html"&gt;
  Table of Contents
&lt;/p&gt;
</pre>
</div>

<p>The invocation of access keys depends on the underlying system.
For instance, on machines running MS Windows, one generally has to
press the "alt" key in addition to the access key. On Apple
systems, one generally has to press the "cmd" key in addition to
the access key.</p>

<p>The rendering of access keys depends on the user agent. We
recommend that authors include the access key in label text or
wherever the access key is to apply. User agents should render the
value of an access key in such a way as to emphasize its role and
to distinguish it from other characters (e.g., by underlining
it).</p>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_navindex"><span
class="adef">navindex</span></a> = <span class="datatype"><a href= 
"#dt_Number">Number</a></span></dt>

<dd>This attribute specifies the position of the current element in
the navigation order for the current document. This value must be a
number between 0 and 32767. User agents must ignore leading zeros. 

<p><a class="xdef" id="s_attribute-collectionsmodule_xref_4">The
navigation order</a> defines the order in which elements will
receive focus when navigated by the user via the keyboard. The
navigation order may include elements nested within other
elements.</p>

<p>Elements that may receive focus should be navigated by user
agents according to the following rules:</p>

<ol>
<li>Those elements that support the <a class="aref" href= 
"#adef_attribute-collections_navindex">navindex</a> attribute and
assign a positive value to it are navigated first. Navigation
proceeds from the element with the lowest <a class="aref" href= 
"#adef_attribute-collections_navindex">navindex</a> value to the
element with the highest value. Values need not be sequential nor
need they begin with any particular value. Elements that have
identical <a class="aref" href=
"#adef_attribute-collections_navindex">navindex</a> values should
be navigated in the order they appear in the character stream.</li>

<li>Those elements that do not support the <a class="aref" href= 
"#adef_attribute-collections_navindex">navindex</a> attribute or
support it and assign it a value of "0" are navigated next. These
elements are navigated in the order they appear in the character
stream.</li>
</ol>

<p>When a document is loaded using a URL that includes a fragment
reference (such as <code>book.html#chapter5</code> ) navigation
begins at the point the fragment begins. If the user has moved away
from that point (for instance using page up or page down), the
navigation starting point is undefined.</p>

<p>The following example would allow the links to be navigated in
column order (without the use of <code>navindex</code> they would
be navigated in document, i.e. row, order):</p>

<pre class="example">
&lt;table&gt;
&lt;tr&gt;&lt;td href="a" navindex="1"&gt;NW&lt;/td&gt;
    &lt;td href="c" navindex="3"&gt;NE&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td href="b" navindex="2"&gt;SW&lt;/td&gt;
    &lt;td href="d" navindex="4"&gt;SE&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;
</pre>

<div class="note">
<p><em><strong>Navigation keys.</strong> The actual key sequence
that causes navigation or element activation depends on the
configuration of the user agent (e.g., the "tab" key might be used
for navigation and the "enter" key or "space" key used to activate
a selected element).</em></p>

<p><em>User agents may also define key sequences to navigate the
navigation order in reverse. When the end (or beginning) of the
navigation order is reached, user agents may circle back to the
beginning (or end).</em></p>
</div>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_xml_base"><span
class="adef">xml:base</span></a> = <span class="datatype"><a href= 
"#dt_URI">URI</a></span></dt>

<dd>This attribute specifies the base URI from which to resolve
relative URIs. It is normatively defined in [ <a class="nref" href= 
"#ref_XMLBASE">XMLBASE</a> ]. Any relative URI used on an element
that uses this attribute, or on an element contained within an
element that uses this attribute, must be resolved relative to the
base URI defined by this attribute. 

<p>An element inherits URI base information according to the
following order of precedence (highest to lowest):</p>

<ul>
<li>The <a class="aref" href=
"#adef_attribute-collections_xml:base">xml:base</a> attribute set
for the element itself.</li>

<li>The closest parent element that has the <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute set
(i.e., the <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute is
inherited).</li>

<li>The HTTP "Content-Location" header (which may be configured in
a server).</li>

<li>The location of the document itself.</li>
</ul>

<p>Example:</p>

<pre>
See:
&lt;ul xml:base="http://www.w3.org"&gt;
&lt;li href="/"&gt;The W3C home page&lt;/li&gt;
&lt;li href="/TR"&gt;The W3C Technical Reports page&lt;/li&gt;
&lt;li href="/Markup"&gt;The HTML home page&lt;/li&gt;
&lt;li href="/Markup/Forms"&gt;The XForms home page&lt;/li&gt;
&lt;/ul&gt;
</pre>
</dd>
</dl>

<h2><a  id="col_Embedding">6.6.</a> Embedding
Attribute Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_embeddingmodule"><span class="diff-new">Embedding</span></a>
<span class="diff-new">module.</span></p>

<p>This collection causes the contents of a remote resource to be
embedded in the document in place of the element's content. If
accessing the remote resource fails, for whatever reason (network
unavailable, no resource available at the URI given, inability of
the user agent to process the type of resource) the content of the
element must be processed instead.</p>

<p>Note that this behavior makes documents far more robust, and
gives much better opportunities for accessible documents than the
<code>longdesc</code> attribute present in earlier versions of
XHTML, since it allows the description of the resource to be
included in the document itself, rather than in a separate
document.</p>

<p>Examples:</p>

<pre>
&lt;p src="holiday.png" type="image/png"&gt;
    &lt;span src="holiday.gif" type="image/gif"&gt;
        An image of us on holiday.
    &lt;/span&gt;
&lt;/p&gt;
&lt;table src="temperature-graph.png" type="image/png"&gt;
&lt;caption&gt;Average monthly temperature over the last 20 years&lt;/caption&gt;
&lt;tr&gt;&lt;th&gt;Jan&lt;/th&gt;&lt;th&gt;Feb&lt;/th&gt;&lt;th&gt;Mar&lt;/th&gt;&lt;th&gt;Apr&lt;/th&gt;&lt;th&gt;May&lt;/th&gt;&lt;th&gt;Jun&lt;/th&gt;
    &lt;th&gt;Jul&lt;/th&gt;&lt;th&gt;Aug&lt;/th&gt;&lt;th&gt;Sep&lt;/th&gt;&lt;th&gt;Oct&lt;/th&gt;&lt;th&gt;Nov&lt;/th&gt;&lt;th&gt;Dec&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt; 4&lt;/td&gt;&lt;td&gt; 2&lt;/td&gt;&lt;td&gt; 7&lt;/td&gt;&lt;td&gt; 9&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;
    &lt;td&gt;17&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt; 7&lt;/td&gt;&lt;td&gt; 4&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
</pre>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_src"><span
class="adef">src</span></a> = <span class="datatype"><a href= 
"#dt_URI">URI</a></span></dt>

<dd>This attribute specifies the location of an external source for
the contents of the element.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_type"><span
class="adef">type</span></a> = <span class="datatype"><a href= 
"#dt_ContentTypes"><span class="diff-chg">
ContentTypes</span></a></span></dt>

<dd>
<p>This attribute specifies the allowable content types of the
relevant <a class="aref" href="#adef_attribute-collections_src">
src</a> URI. At its most general, it is a comma-separated list of
media ranges with optional accept parameters, as defined in section
14.1 of [ <a class="nref" href="#ref_RFC2616">RFC2616</a> ] as the
field value of the accept request header.</p>

<p>In its simplest case, this is just a media type, such as
"image/png" or "application/xml", but it may also contain
asterisks, such as "image/*" or "*/*", or lists of acceptable media
types, such as "image/png, image/gif, image/jpeg".</p>

<p>The user agent must combine this list it with its own list of
acceptable media types by taking the intersection, and then use the
resulting list as the field value of the <code>accept</code>
request header when requesting the resource using HTTP.</p>

<p>For instance, if the attribute specifies the value "image/png,
image/gif, image/jpeg", but the user agent does not accept images
of type "image/gif" then the resultant accept header would contain
"image/png, image/jpeg".</p>

<p>A user agent should imitate similar behavior when using other
methods than HTTP. For instance, when accessing files in a local
filestore, <code>&lt;p src="logo" type="image/png,
image/jpeg"&gt;</code> might cause the user agent first to look for
a file <code>logo.png</code> , and then for <code>logo.jpg</code>
.</p>

<p>If this attribute is not present, "*/*" is used for its
value.</p>

<p>For the current list of registered content types, please consult
[ <a class="nref" href="#ref_MIMETYPES">MIMETYPES</a> ].</p>

<p>Examples:</p>

<pre>
&lt;script src="pop" type="application/x-javascript, text/x-newspeak"/&gt;
&lt;style src="midnight" type="text/css, text/x-mystyle"/&gt;
&lt;p src="w3c-logo" type="image/png, image/jpeg;q=0.2"&gt;W3C logo&lt;/p&gt;
&lt;span src="logo.png"&gt;Our logo&lt;/span&gt;
&lt;span src="theme.mp3" type="audio/x-mpeg"&gt;Our theme jingle&lt;/span&gt;
</pre>
</dd>
</dl>

<h2><a  id="col_Map">6.7.</a> Image Map Attribute
Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_csImgMapmodule"><span class="diff-new">Image Map
Attributes</span></a> <span class="diff-new">module.</span></p>

<p>This collection adds attributes that specify that an embedded
image may be used as an image map, so that clicking on different
parts of the image causes different hyperlinks to be activated.</p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_usemap"><span
class="adef">usemap</span></a> = <span class="datatype"><a href= 
"#dt_URI">URI</a></span></dt>

<dd>This attribute associates an image map with an element. The
value of <samp>usemap</samp> must match the value of the <a class= 
"aref" href="#adef_attribute-collections_id">id</a> attribute of an
element that contains one or more elements with <a class="aref"
href="#adef_attribute-collections_shape">shape</a> and <a class= 
"aref" href="#adef_attribute-collections_coords">coords</a>
attributes.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_ismap"><span
class="adef">ismap</span></a> = "ismap"</dt>

<dd>This attribute indicates that the associated image is to be
treated as a "server-side image map". When selected, the
coordinates within the element that the user selected are sent to
the server where the document resides. Screen coordinates are
expressed as screen pixel values relative to the image, and start
at (0,0) at the top left corner. 

<div class="example">
<p>In the following example, the active region defines a
server-side image map. A click anywhere on the image will cause the
click's coordinates to be sent to the server.</p>

<pre>
&lt;p href="http://www.example.com/cgi-bin/map"
      src="map.png" ismap="ismap"&gt;
   Our location.
&lt;/p&gt;
</pre>
</div>

<p><a class="xdef" id="s_attribute-collectionsmodule_xref_5">The
location clicked</a> is passed to the server as follows. The user
agent derives a new URI from the URI specified by the <a class=
"aref" href="#adef_attribute-collections_href">href</a> attribute
of the element, by appending `?' followed by the x and y
coordinates, separated by a comma. The link is then actuated using
the new URI. For instance, in the given example, if the user clicks
at the location x=10, y=27 then the derived URI is
"http://www.example.com/cgi-bin/map?10,27".</p>

<p>User agents that do not offer the user a means to select
specific coordinates (e.g., non-graphical user agents that rely on
keyboard input, speech-based user agents, etc.) should send the
coordinates "0,0" to the server when the link is activated.</p>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_shape"><span
class="adef">shape</span></a> = <samp>
"default|rect|circle|poly"</samp></dt>

<dd>This attribute specifies the shape of a region. Possible
values: 

<ul>
<li><samp>default:</samp> Specifies the entire region.</li>

<li><samp>rect:</samp> Define a rectangular region.</li>

<li><samp>circle:</samp> Define a circular region.</li>

<li><samp>poly:</samp> Define a polygonal region.</li>
</ul>
</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_coords"><span
class="adef">coords</span></a> = <span class="datatype"><a href= 
"#dt_Coordinates">Coordinates</a></span></dt>

<dd>This attribute specifies the position and shape of the area.
The number and order of values depends on the shape being defined.
Possible combinations: 

<ul>
<li><samp>rect:</samp> left-x, top-y, right-x, bottom-y.</li>

<li><samp>circle:</samp> center-x, center-y, radius. <strong>
Note.</strong> When the radius value is a percentage value, user
agents should calculate the final radius value based on the
associated object's width and height. The radius should be the
smaller value of the two.</li>

<li><samp>poly:</samp> x1, y1, x2, y2, ..., xN, yN. The first x and
y coordinate pair and the last should be the same to close the
polygon. When these coordinate values are not the same, user agents
should infer an additional coordinate pair to close the
polygon.</li>
</ul>

<p>Coordinates are relative to the top, left corner of the object.
All values are of type <span class="datatype"><a href="#dt_Length">
Length</a></span> . All values are separated by commas. The
coordinates of the top, left corner of an area are <code>0,
0</code> .</p>
</dd>
</dl>

<p>Note that in the following example, if the image is unavailable
for any reason, the fallback properties of the <a class="aref"
href="#adef_attribute-collections_src">src</a> attribute mean that
the &lt;nl&gt; will be displayed instead of the image, thus making
the page still useful:</p>

<pre>
 
&lt;html xmlns="http://www.w3.org/2002/06/xhtml2"&gt;
   &lt;head&gt;
      &lt;title&gt;The cool site!&lt;/title&gt;
   &lt;/head&gt; 
   &lt;body&gt;
     &lt;p src="navbar1.png" type="image/png" usemap="#map1"&gt; 
         &lt;nl id="map1"&gt;
           &lt;label&gt;Navigate the site:&lt;/label&gt;
           &lt;li href="guide.html" shape="rect" coords="0,0,118,28"&gt;
           Access Guide&lt;/li&gt; 
           &lt;li href="shortcut.html" shape="rect" coords="118,0,184,28"&gt;
           Go&lt;/li&gt; 
           &lt;li href="search.html" shape="circle" coords="184,200,60"&gt;
           Search&lt;/li&gt;
           &lt;li href="top10.html" shape="poly" coords="276,0,276,28,100,200,50,50,276,0"&gt;
           Top Ten&lt;/li&gt;
         &lt;/nl&gt;
      &lt;/p&gt;
   &lt;/body&gt;
&lt;/html&gt; 
</pre>

<p>Note that an <a class="eref" href="#edef_list_li">li</a> in an
<a class="eref" href="#edef_list_nl">nl</a> is not required to have
an <a class="aref" href="#adef_attribute-collections_href">href</a>
attribute. In that case, the relevant region of the image is
inactive:</p>

<pre>
&lt;p src="image.png" type="image/png" usemap="#map1"&gt;
   &lt;nl id="map1"&gt;
   &lt;li shape="circle" coords="100,200,50"&gt;I'm inactive.&lt;/li&gt;
   &lt;li href="outer-ring-link.html" shape="circle" coords="100,200,250"&gt;I'm active.&lt;/li&gt;
   &lt;/nl&gt;
&lt;/p&gt;
</pre>

<h2><a  id="col_Events">6.8.</a> Events</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_xml-eventsmodule"><span class="diff-new">XML Events</span></a>
<span class="diff-new">module.</span></p>

<p>The global attributes from [ <a class="nref" href=
"#ref_XMLEVENTS">XMLEVENTS</a> ] are included in the Events
attribute collection. The normative definition of those attributes
and their semantics is included in that specification. They are
described briefly below:</p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_defaultAction">
<span class="adef">defaultAction</span></a> = <span class=
"diff-new">"</span> <samp>cancel|perform</samp> <span class= 
"diff-chg">"</span></dt>

<dd>This attribute defines whether or not the default action
associated with the event should be processed. The default value is
<samp>perform</samp></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_event"><span
class="adef">event</span></a> = <span class="datatype"><a href= 
"#dt_CDATA">CDATA</a></span></dt>

<dd>This attribute defines the event type that is being listened
for. The set of legal names for XHTML 2 is to be defined.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_handler"><span
class="adef">handler</span></a> = <span class="datatype"><a href= 
"#dt_IDREF">IDREF</a></span></dt>

<dd>This attribute specifies the ID of a handler element that
defines the action that should be performed if the event reaches
the observer.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_observer"><span
class="adef">observer</span></a> = <span class="datatype"><a href= 
"#dt_IDREF">IDREF</a></span></dt>

<dd>This attribute specifies an ID for an observer element for
which the listener is to be registered.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_phase"><span
class="adef">phase</span></a> = <span class="diff-new">"</span>
<samp>capture|default</samp> <span class="diff-chg">"</span></dt>

<dd>This attribute specifies the phase of event propagation in
which to process the event. If not specified, the default value of
this attribute is <samp>default</samp> .</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_propagate"><span
class="adef">propagate</span></a> = <span class="diff-new">"</span>
<samp>stop|continue</samp> <span class="diff-chg">"</span></dt>

<dd>This attribute specifies whether an event should stop
propagating after this observer processes it, or continue for
possible further processing. The default value of this attribute is
<samp>continue</samp> .</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_target_2"><span
class="adef">target</span></a> = <span class="datatype"><a href= 
"#dt_IDREF">IDREF</a></span></dt>

<dd>This attribute specifies the id of the target element of the
event (i.e., the node that caused the event). If not specified, the
default value of this attribute is the element on which the event
attribute is specified.</dd>
</dl>

<p>Note that these attributes are <strong>not</strong> in the XHTML
namespace but in the XML Events namespace. The XHTML namespace is
the default namespace for XHTML documents, so XHTML elements and
attributes may be expressed without namespace prefixes (although
they are permitted on elements). XML Events attributes MUST use a
prefix, since they are not in the default namespace of the
document.</p>

<h2><a  id="col_Style">6.9.</a> Style Attribute
Collection</h2>

<p><span class="diff-new">Enabled by the</span> <a href= 
"#s_styleAttributemodule"><span class="diff-new">Style
Attribute</span></a> <span class="diff-new">module.</span></p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_attribute-collections_style"><span
class="adef">style</span></a> = <span class="datatype"><a href= 
"#dt_CDATA">CDATA</a></span></dt>

<dd>This attribute specifies style information for the current
element. 

<p><a class="xdef" id="s_attribute-collectionsmodule_xref_6">
The</a> syntax of the value of the <a class="aref" href= 
"#adef_attribute-collections_style">style</a> attribute is
determined by the default style sheet language.</p>

<div class="example">
<p>This CSS example sets color and font size information for the
text in a specific paragraph.</p>

<pre>
&lt;p style="font-size: 12pt; color: fuchsia"&gt;Aren't style sheets wonderful?&lt;/p&gt;
</pre>

<p>In CSS, property declarations have the form "name : value" and
are separated by a semi-colon.</p>
</div>

<p>To specify style information for more than one element, authors
should use the <a class="eref" href="#edef_styleSheet_style">
style</a> element. For optimal flexibility, authors should define
styles in external style sheets.</p>
</dd>
</dl>

<h2><a  id="col_Common">6.10.</a> Common Attribute
Collection</h2>

<p>This collection assembles the <a class="colref" href=
"#col_Core">Core</a> , <a class="colref" href="#col_I18N">I18N</a>
, <a class="colref" href="#col_Events">Events</a> , <a class=
"colref" href="#col_Edit">Edit</a> , <a class="colref" href= 
"#col_Embedding">Embedding</a> , <a class="colref" href="#col_Map">
Map</a> , <a class="colref" href="#col_Style">Style</a> , <a class= 
"colref" href="#col_Bi-directional">Bi-directional</a> , and <a
class="colref" href="#col_Hypertext">Hypertext</a> attribute
collections defined above.</p>

<h2><a  id="sec_6.11."><span class="diff-new">
6.11.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_0" class="issueTitle">
<span class="diff-new">[XHTML2] type attribute</span> <span class= 
"pr"><span class="diff-new">PR #6315</span></span><br />
<span class="diff-new">State: Feedback</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The working group has agreed that the "type"
of an href attribute is not really important to the processing of a
document, whereas the type of the "src" attribute IS important.
That is why there is only one type attribute.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">There is currently a clash over the two uses of the type attribute. For 
example, if &lt;span src="alpha" href="beta" type="image/*" /&gt; was in a 
XHTML2 document, would "image/*" the type of the src URI, the href URI 
or both? The ambiguity could be resolved by using two seperate nested 
elements, but that would be wasteful.  Also, there is currently no 
mechanism for specifying the media type of the cite attribute. May I 
suggest that instead of a generic type attibute, that there be 
attributes of the form srctype, hreftype and citetype and that if 
additional attributes with a URI for their argument are definined that 
each have an associated type attribute whose name is the name of the 
base attribute + "type"?
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_1" class="issueTitle">
<span class="diff-new">Modularizing the Attribute Collections
Module</span> <span class="pr"><span class="diff-new">PR
#6332</span></span><br />
<span class="diff-new">State: Feedback</span><br />
<span class="diff-new">Resolution: Modify and Accept</span><br />
<span class="diff-new">User: Agree</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We are adding a "selectable" module for each
of the optional attribute collections.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">Probably not for the next public draft, but for future consideration:
Masayasu Ishikawa &lt;mimasa@w3.org&gt; wrote:
&gt; We have general issue of too many "common"
&gt; attributes, which we need to address anyway.
We are moving many things into the Attribute Collections Module.
XHTML 2.0 would require all of them anyway, but I don't think
we should require all of them for XHTML2 Family document types.
Also we should make reuse of these attribute collections easier.
For example, other vocabulary (not XHTML) might want to reuse
the Bi-directional Text Collection.  Actually we coordinated with
DocBook folks to adopt the same solution for XHTML2 and DocBook [1], 
so other vocabularies may well want to do the same.  But at the moment
the Attribute Collections Module is a bag of various attribute
collections, and it's not clear if someone can take one attribute
collection without introducing a bunch of other attribute collections.
At the moment the RELAX NG implementation defines all of them in
a single module (with the exception of Events, which is defined
in the XML Events Module), but it's quite easy to split them.
If we define the Style Attribute Module as a separate module
rather than part of the Attribute Collections Module, then it
would make sense to break up the Attribute Collections Module
so that each attribute collection would be more easily reusable.
If we do that, we also need to clarify which attribute collection
is required for the XHTML2 Family.
[1] http://lists.w3.org/Archives/Member/w3c-i18n-ig/2003Feb/thread#44
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_2" class="issueTitle">
<span class="diff-new">more xhtml 2.0 comments</span> <span class= 
"pr"><span class="diff-new">PR #6342</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href=
"#col_Bi-directional"><span class="diff-new">near
here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The submitter requested that we use CSS to
describe display characteristics of various portions of XHTML
(including the dir attribute). The working group is trying to defer
all such things to CSS, and will work to remove any such
descriptions from the XHTML 2 specification.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
12. the definition of the dir attribute is exactly what I called in my previous
    messages a normative definition of an xhtml attribute using a css
    redundancy. If it can be done there, it can be done elsewhere. For example
    the edit attribute where the prose assigns the default rendering 'display:
    none' to 'edit="deleted"'.
[12] http://www.w3.org/TR/xhtml2/xhtml2.html#col_Bi-directional
      http://www.w3.org/TR/xhtml2/xhtml2.html#col_Edit
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_3" class="issueTitle">
<span class="diff-new">more xhtml 2.0 comments</span> <span class= 
"pr"><span class="diff-new">PR #6347</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Modify and Accept</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Hypertext">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Access key is a commonly used feature that
allows content developers to make their content more friendly for
power users. Just because this is not consistently supported in
User Agents does not mean it should no longer be required by XHTML.
However, the working group had already decided to change the name
to "access" and bind it to an access mechanism ala CSS3.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
17. I don't understand why access-key is in XHTML2. In the XHTML2 spirit as
    described in the introduction of the document, it should not be here.
    Furthermore, system-dependant and language-dependant common practices make
    this completely unusable.
[17] http://www.w3.org/TR/xhtml2/xhtml2.html#col_Hypertext
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_4" class="issueTitle">
<span class="diff-new">more xhtml 2.0 comments</span> <span class= 
"pr"><span class="diff-new">PR #6348</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Hypertext">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The navindex is a convenient mechanism for
content developers, especially those who wish to dynamically
integrate unrelated content. Requiring prior knowledge of the
nextitem IDREF would be an unreasonable burden on content
developers. However, this _could_ be supported in addition to the
navindex feature. The working group is discussing possible
alternatives to nav order, but we need to be careful to ensure that
we don't break things XForms rely upon.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
18. the navindex attribute seems to me the worst choice of all for that
    feature. Having this defined by an integer is a design mistake in a
    structured XML-based world. This should be defined by ID and an IDREF:
    &lt;table&gt;
    &lt;tr&gt;&lt;td href="a" nextlink="link2"&gt;NW&lt;/td&gt;
        &lt;td href="c" id="link3" nextlink="link4"&gt;NE&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td href="b" id="link2" nextlink="link3"&gt;SW&lt;/td&gt;
        &lt;td href="d" id="link4"&gt;SE&lt;/td&gt;&lt;/tr&gt;
    &lt;/table&gt;
[18] http://www.w3.org/TR/xhtml2/xhtml2.html#col_Hypertext
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_5" class="issueTitle">
<span class="diff-new">more xhtml 2.0 comments</span> <span class= 
"pr"><span class="diff-new">PR #6349</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Embedding">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We are working to ensure that the src
attribute is consistently applied throughout the
specification.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
19. as I said above in item 4 [issue 6334], the src attribute conflicts with other element.
[19] http://www.w3.org/TR/xhtml2/xhtml2.html#col_Embedding
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_6" class="issueTitle">
<span class="diff-new">more xhtml 2.0 comments</span> <span class= 
"pr"><span class="diff-new">PR #6359</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Hypertext">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The specification only says that the user
agent is required to provide an activation mechanism. That
mechanism is up to the UA implementor (e.g., context-menu that
allows selection of either link).</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
29. if an element carries both the href attribute and the cite attribute, how
    can the link to the cite URI be activated?
[29] http://www.w3.org/TR/xhtml2/xhtml2.html#col_Hypertext
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_7" class="issueTitle">
<span class="diff-new">more xhtml 2.0 comments</span> <span class= 
"pr"><span class="diff-new">PR #6369</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Hypertext">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I don't have a record of why this attribute
was removed. I think it makes sense to permit the dynamic creation
of a blank target window in which to place the contents of the
target of the link. Why did we remove it? All the _* attributes
were removed; what functionality is now not possible?
target="blank" would open a new window, called 'blank'; is that a
problem?</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
39. the removal of the "_blank" value for the target attribute seems to me an
    error.
[39] http://www.w3.org/TR/xhtml2/xhtml2.html#col_Hypertext
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_8" class="issueTitle">
<span class="diff-new">comments on 2002-12-12 XHTML 2.0 WD: section
5.5, hreflang not defined</span> <span class="pr"><span class= 
"diff-new">PR #6386</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Hypertext">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The hreflang attribute is only a hint to the
user agent. Its functionality is superceded by the xml:lang
attribute. Besides there is an HTTP accept-lang field that supports
this better than the hreflanf attribute.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Important disclaimers:
  (a) The current message expresses my personal opinions ONLY, and
      does NOT reflect the position of my employer.
  (b) The current message is meant to be constructive; criticism is
      always helpful when carefully used.
Comments are extracted from Issue 6211:
6. The hreflang attribute is mentioned in section 5.5 but is not defined
   in the spec.
Conclusion:
  As it is in its 2002-12-11 WD, I think that XHTML 2.0 is far
  away from both what the Web Authors are expecting and from what
  could be done to "lead the Web to its full potential".
  The current WD makes some strategic choices (style attribute
  for instance) that seem to me harmful.
  I see no incentive for a Web Author to ever move to XHTML 2 from
  a simple XMLized version of the actual transitional HTML4 (call
  that as you wish). XHTML 2.0 does not contain ANY new key feature
  and seem to get totally rid of all Authors' requests between 1998
  and today.
  From my perspective, XHTML 2.0 as it is today is a failure and the
  work of the HTML WG on this topic should be immediately and
  totally reoriented.
  Once again, the current message expresses ONLY my personal opinions.
Regards,
&lt;/Daniel&gt;
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran&ccedil;ais !
Yahoo! Mail : http://fr.mail.yahoo.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_9" class="issueTitle">
<span class="diff-new">Fw: [XHTML2] 4th WD comments: section 6.6,
'p' example bad</span> <span class="pr"><span class="diff-new">PR
#6395</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Accepted</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Hypertext">
<span class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We will look at these examples and make
certain they are appropriate.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">----- Original Message -----
From: "Christoph P&ccedil;&Ntilde;er" &lt;christoph.paeper@tu-clausthal.de&gt;
To: &lt;www-html@w3.org&gt;
Sent: Monday, February 03, 2003 7:48 AM
Subject: [XHTML2] 4th WD comments: section 6.6, 'p' example bad
This issue was extracted from Issue 6248:
&gt;
&gt; Just a few comments based on the diff marked version:
&gt;
&gt; 6.6. Embedding Attribute Collection
&gt;
&gt; The 'table'/PNG example is a good one, the 'p' a very bad one.
&gt;
&gt;
&gt;
&gt; Christoph P&ccedil;&Ntilde;er
&gt;
&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_10" class="issueTitle">
<span class="diff-new">Feedback on XHTML 2.0 WD (20030131): Sec
6.7, expand role of Image Map Collection?</span> <span class="pr">
<span class="diff-new">PR #6422</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Map"><span
class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I don't think we can extend the semantics of
the Length data type. Does anyone have any suggestions about this?
SVG has a better way to do image maps anyway. Image maps are a way
of attaching some sort of structure to otherwise unstructured data.
It would be a bad idea to attach image maps to SVG.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 6308:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello dear list members,
here's my feedback on the XHTML 2.0 WD
http://www.w3.org/TR/2003/WD-xhtml2-20030131
,.,,
6.7 Image Map Attribute Collection
I also like that idea. I also like attaching it to other elements than img, 
thought this really might be considered featurism.
But I want to note that it is somewhat restricted.
Someone can't make a SVG scaled in relative units by CSS being an image map 
externally through HTML because the Length type of HTML is not powerful 
enough.
....
Bye
- -- 
ITCQIS GmbH
Christian Wolfgang Hujer
Gesch&auml;ftsf&uuml;hrender Gesellschafter
Telefon: +49  (0)89  27 37 04 37
Telefax: +49  (0)89  27 37 04 39
E-Mail: Christian.Hujer@itcqis.com
WWW: http://www.itcqis.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE+gvvszu6h7O/MKZkRAk8HAJ4kR+1YtdBIgMEU9w6ktNd5KEVJDACgoPAP
HrD7VM71nxGkUyJq82NLvqg=
=ByZ4
-----END PGP SIGNATURE-----
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_11" class="issueTitle">
<span class="diff-new">Re: Updated XHTML 2.0 draft published: Sec
6.4, what of multiple edits to an element?</span> <span class="pr">
<span class="diff-new">PR #6464</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Edit"><span
class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">There is no way to have multiple attribute
edit attribute values associated with the same element. The only
way to really accomplish this is by nexting span
elements.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from PR # 7334:
My comments:
...
6.4
What do we do if more than one edit is made to and element?
&lt;p edit="changed" datetime="2003-01-13T13:15:30Z"
   edit="deleted" datetime="2003-01-17T17:15:30Z"&gt; .. &lt;/p&gt;
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_12" class="issueTitle">
<span class="diff-new">Comments about XHTML 2.0 WD5: Sec 6.1,
What's with the type of "stylesheet"?</span> <span class="pr"><span
class="diff-new">PR #6486</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Modify and Accept</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Core"><span
class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We should likely prefer that people use
xml-stylesheet.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 6.1
"title"
2. What's with the type of "stylesheet"?  The XHTML Media Types Note says,
    "When serving an XHTML document with [the application/xhtml+xml] 
media type,
    authors SHOULD include the XML stylesheet processing instruction
    [XMLstyle] to associate style sheets." and in section 1.1.3 of the 
XHTML WD,
    it says "if a facility exists in XML, try to use that rather than
    duplicating it."  So with those things in mind, shouldn't
    &lt;?xml-stylesheet ... ?&gt; be the recommended method?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_13" class="issueTitle">
<span class="diff-new">Comments about XHTML 2.0 WD5: Sec 6.4 more
information about edit</span> <span class="pr"><span class=
"diff-new">PR #6487</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span><br />
<span class="diff-new">Location:</span> <a href="#col_Edit"><span
class="diff-new">near here</span></a></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I think we discussed this and decided that
while richer semantics might be useful, they are outside of our
scope for this version.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 6.4
"edit"
1. Should there be more information about the edit?  For example,
    edit="changed" might be complemented by, for example,
    edited-from="old-text", or maybe edit="moved" might have some way to
    indicate the old position (via id?)?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_14" class="issueTitle">
<span class="diff-new">kelvSYC's Thoughts on the new XHTML Draft:
extend edit collection to maintain history</span> <span class="pr">
<span class="diff-new">PR #6508</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Not sure what to say here. The real problem
is that we are trying for a simple facility, not a complex markup
for document editing.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Edit Collection:
This seems like metadata about some part of the document, and it looks 
like you can only have information about (presumably) the last time the 
content was edited (instead of every time).  To resolve this, I propose 
that there should be some child to this element that can deal with the 
changes.  Here's an example:
&lt;div&gt;I am a
   &lt;edit&gt;
    &lt;original date="before_operation"&gt;boy&lt;/original&gt;
    &lt;change date="after_operation"&gt;girl&lt;/change&gt;
   &lt;/edit&gt;
&lt;/div&gt;
It's a rough idea, but it might work.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_15" class="issueTitle">
<span class="diff-new">kelvSYC's Thoughts on the new XHTML Draft:
what is point of rev attribute?</span> <span class="pr"><span
class="diff-new">PR #6510</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I can't decide - does this have any merit?
rev="..." was in HTML 4; the question is do people use it.
Replacing it with rel="reverse" doesn't work, because it doesn't
say what the reverse relationship is. There has been discussion of
removing this attribute.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
rev Attribute:
I don't see the point in having this, when something like rel="reverse" 
might work.  Speaking of which, wasn't there some debacle about XLink 
in XHTML?  This Collection could be replaced with some form of XLink 
implementation...
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_16" class="issueTitle">
<span class="diff-new">kelvSYC's Thoughts on the new XHTML Draft:
drop accessday/navindex</span> <span class="pr"><span class= 
"diff-new">PR #6511</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We are examining reworking these.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
accesskey and navindex Attributes:
In the spirit of Device Independence, please drop these...
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_attribute-collectionsmodule_issue_17" class="issueTitle">
<span class="diff-new">kelvSYC's Thoughts on the new XHTML Draft:
Sec 6.7, image map comments</span> <span class="pr"><span class= 
"diff-new">PR #6512</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I am pretty sure we like image maps. There
is certainly user demand for them.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
Image maps seem to be unchanged, which is a bad thing.  For one thing, 
the power of XML could sure be used to improve the shape and coords 
attributes to something that could describe a shape better (say, a la 
SVG)...
But then, most consider image maps to be a turn-off, so why keep it at 
all?
...
</span>
</pre>
</div>

<h1><a  id="s_structuremodule">7.</a> XHTML
Structure Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Structure Module defines the major structural elements for
XHTML. These elements effectively act as the basis for the content
model of many XHTML family document types. The elements and
attributes included in this module are:</p>

<table border="1" summary="Elements and Attributes for Structure 
Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_structure_html">html</a></td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_structure_version"><span class="diff-chg">
version</span></a> ( <span class="datatype"><a href="#dt_CDATA">
<span class="diff-chg">CDATA</span></a></span> ), xmlns ( <span
class="datatype"><a href="#dt_URI">URI</a></span> =
"http://www.w3.org/2002/06/xhtml2")</td>
<td class="content"><a class="eref" href="#edef_structure_head">
head</a> , <a class="eref" href="#edef_structure_body">
body</a></td>
</tr>

<tr>
<td><a class="eref" href="#edef_structure_head">head</a></td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_structure_profile"><span class="diff-new">
profile</span></a> <span class="diff-new">(</span> <span class= 
"datatype"><a href="#dt_URIs"><span class="diff-new">
URIs</span></a></span> <span class="diff-new">)</span></td>
<td class="content"><a class="eref" href="#edef_structure_title">
title</a></td>
</tr>

<tr>
<td><a class="eref" href="#edef_structure_title">title</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_structure_body">body</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><span class="diff-chg">(</span> <a class=
"csref" href="#cs_Heading"><span class="diff-chg">
Heading</span></a> | <a class="csref" href="#cs_Block">Block</a> |
<a class="csref" href="#cs_List"><span class="diff-chg">
List</span></a> <span class="diff-chg">)*</span></td>
</tr>
</tbody>
</table>

<p>This module is the basic structural definition for XHTML
content. The <code>html</code> element acts as the root element for
all XHTML Family Document Types.</p>

<p>Note that the value of the xmlns attribute is defined to be
"http://www.w3.org/2002/06/xhtml2". Also note that because the
xmlns attribute is treated specially by XML namespace-aware parsers
[ <a class="nref" href="#ref_XMLNAMES">XMLNAMES</a> ], it is legal
to have it present as an attribute of each element. However, any
time the xmlns attribute is used in the context of an XHTML module,
whether with a prefix or not, the value of the attribute shall be
the XHTML namespace defined here.</p>

<p>Implementation: <a href="#a_rmodule_Structure">RELAX NG</a></p>

<div class="issue">
<p id="s_structuremodule_issue_0" class="issueTitle">footer <span
class="pr">PR #744</span></p>

There was a suggestion for a footer element to contain data that
should be presented at the bottom of content. The working group has
not yet addressed this suggestion.</div>

<h2><a  id="sec_7.1.">7.1.</a> The <a class="edef"
id="edef_structure_html">html</a> element</h2>

<p>After the document type declaration, the remainder of an XHTML
document is contained by the <a class="eref" href= 
"#edef_structure_html">html</a> element.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrDef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_structure_version"><span class="adef">
<span class="diff-chg">version</span></span></a> = <span class= 
"datatype"><a href="#dt_CDATA"><span class="diff-chg">
CDATA</span></a></span></dt>

<dd><span class="diff-chg">The value of this</span> attribute
specifies <span class="diff-new">which XHTML Family document type
governs</span> the <span class="diff-chg">current document. The
format</span> of this <span class="diff-chg">attribute value is
unspecified.</span></dd>
</dl>
</div>

<p>Example:</p>

<pre>
&lt;html class="slideshow"&gt;
</pre>

<h2><a  id="sec_7.2.">7.2.</a> The <a class="edef"
id="edef_structure_head">head</a> element</h2>

<p>The <a class="eref" href="#edef_structure_head">head</a> element
contains information about the current document, such as its title,
that is not considered document content. The default presentation
of the head is not to display it; however that can be overridden
with a stylesheet for special purpose use. User agents may however
make information in the <a class="eref" href=
"#edef_structure_head">head</a> available to users through other
mechanisms.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_structure_profile"><span class="adef">
<span class="diff-new">profile</span></span></a> <span class= 
"diff-new">=</span> <span class="datatype"><a href="#dt_URIs"><span
class="diff-new">URIs</span></a></span></dt>

<dd><span class="diff-new">This attribute specifies the location of
one or more meta data profiles, separated by white space. For
future extensions, user agents should consider the value to be a
list even though this specification only considers the first URI to
be significant. Profiles are discussed in the section on</span> <a
href="#s_metamodule"><span class="diff-new">meta data</span></a>
.</dd>
</dl>
</div>

<p>Example:</p>

<pre>
&lt;head&gt;
    &lt;title&gt;My Life&lt;/title&gt;
&lt;/head&gt;
</pre>

<h2><a  id="sec_7.3.">7.3.</a> The <a class="edef"
id="edef_structure_title">title</a> element</h2>

<p>Every XHTML document <strong>must</strong> have a <a class=
"eref" href="#edef_structure_title">title</a> element in the <a
class="eref" href="#edef_structure_head">head</a> section.</p>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_structure_title">title</a>
element is used to identify the <a class="xdef" id= 
"s_structuremodule_xref_0">document.</a> Since documents are often
consulted out of context, authors should provide context-rich
titles. Thus, instead of a title such as "Introduction", which
doesn't provide much contextual background, authors should supply a
title such as "Introduction to Medieval Bee-Keeping" instead.</p>

<p>For reasons of accessibility, user agents must always make the
content of the <a class="eref" href="#edef_structure_title">
title</a> element <a class="xdef" id="s_structuremodule_xref_1">
available</a> to users. The mechanism for doing so depends on the
user agent (e.g., as a caption, spoken).</p>

<p>Example:</p>

<pre class="example">
&lt;title&gt;A study of population dynamics&lt;/title&gt;
</pre>

<h2><a  id="sec_7.4.">7.4.</a> The <a class="edef"
id="edef_structure_body">body</a> element</h2>

<p>The body of a document contains the document's content. The
content may be presented by a user agent in a variety of ways. For
example, for visual browsers, you can think of the body as a canvas
where the content appears: text, images, colors, graphics, etc. For
audio user agents, the same content may be spoken.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<h2><a  id="sec_7.5."><span class="diff-new">
7.5.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_structuremodule_issue_1" class="issueTitle"><span class= 
"diff-new">comments on 2002-12-12 XHTML 2.0 WD: request
display/render of sub-elements in head be a conformance
criterium</span> <span class="pr"><span class="diff-new">PR
#6391</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The default display behavior is to suppress
the display of content in the head. Whether a browser permits
styling of items in head such that they can be displayed is
unspecified. We are not prepared to require that conforming
implementations support displaying the contents of the
head.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Important disclaimers:
  (a) The current message expresses my personal opinions ONLY, and
      does NOT reflect the position of my employer.
  (b) The current message is meant to be constructive; criticism is
      always helpful when carefully used.
Comments are extracted from Issue 6211:
11. I would like to see the fact that sub-elements in head can be
   displayed/render as a conformance criterium
Conclusion:
  As it is in its 2002-12-11 WD, I think that XHTML 2.0 is far
  away from both what the Web Authors are expecting and from what
  could be done to "lead the Web to its full potential".
  The current WD makes some strategic choices (style attribute
  for instance) that seem to me harmful.
  I see no incentive for a Web Author to ever move to XHTML 2 from
  a simple XMLized version of the actual transitional HTML4 (call
  that as you wish). XHTML 2.0 does not contain ANY new key feature
  and seem to get totally rid of all Authors' requests between 1998
  and today.
  From my perspective, XHTML 2.0 as it is today is a failure and the
  work of the HTML WG on this topic should be immediately and
  totally reoriented.
  Once again, the current message expresses ONLY my personal opinions.
Regards,
&lt;/Daniel&gt;
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran&ccedil;ais !
Yahoo! Mail : http://fr.mail.yahoo.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_structuremodule_issue_2" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: Sec 7.1, update to
reflect removal of profile attribute</span> <span class="pr"><span
class="diff-new">PR #6444</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We could move the profile attribute to the
metainformation module, unless we are going to use it to idenitfy
the XHTML Family Host Language in which the document is written. In
that case, it would need to stay here to ensure it is always
available.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
6) Section 7.1 The html element
Since metadata is not part of this module, it would seem to me that 
either the profile attribute should be moved from here to the XHTML 
Metainformation Module as an attribute that that module adds to the 
html element, or the Metainformation Module should be made part of the 
XHTML Structure Module instead of being a module of its own.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_structuremodule_issue_3" class="issueTitle"><span class= 
"diff-new">Comments about XHTML 2.0 WD5: replace &lt;html&gt; with
&lt;xhtml&gt;?</span> <span class="pr"><span class="diff-new">PR
#6489</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Should we change the root element? This
would help cement the concept that we are working with a different
language now. -spm</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 7
1. With backwards compatibility thrown out, should the root element now be
    &lt;xhtml&gt; or something?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_structuremodule_issue_4" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: allow Inline/PCDATA in
content of body?</span> <span class="pr"><span class="diff-new">PR
#6550</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We have been adamant that mixed content at
the top level is undesirable, but the rationale escapes me.
-spm</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
9) Section 7.4 The body element
Other than tradition, is there a reason to not allow Inline or PCDATA 
as acceptable content for the body element?  This would simplify the 
Minimal Content Model of body to (PCDATA|Flow)*
...
</span>
</pre>
</div>

<h1><a  id="s_block-textmodule">8.</a>
XHTML Block Text Module</h1>

<p>This section is <em>normative</em> .</p>

<p>This module defines all of the basic text container elements,
attributes, and their content models that are "block level". Note
that while the concept of "block level" can be construed as a
presentation aspect, in this case it is intended to only have a
semantic meaning.</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes in Block Text Module">
<thead>
<tr>
<th>Element</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_block-text_address">
address</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_blockcode">
blockcode</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
Inline</a> | <a class="csref" href="#cs_Heading">Heading</a> | <a
class="csref" href="#cs_Block">Block</a> | <a class="csref" href= 
"#cs_List"><span class="diff-chg">List</span></a> <span class= 
"diff-chg">)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_blockquote">
blockquote</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
Inline</a> | <a class="csref" href="#cs_Heading">Heading</a> | <a
class="csref" href="#cs_Block">Block</a> | <a class="csref" href= 
"#cs_List"><span class="diff-chg">List</span></a> <span class= 
"diff-chg">)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_div">div</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
<span class="diff-chg">Flow</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h">h</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h1">h1</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h2">h2</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h3">h3</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h4">h4</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h5">h5</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_h6">h6</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_hr">hr</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">EMPTY</td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_p">p</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
Inline</a> | <a class="csref" href="#cs_List">List</a> | blockcode
| blockquote | pre | table)*</td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_pre">pre</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_block-text_section">
section</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
<span class="diff-chg">Flow</span></a> <span class="diff-chg">
)*</span></td>
</tr>
</tbody>
</table>

<p>The minimal content model for this module defines some content
sets:</p>

<dl>
<dt id="cs_Heading">Heading</dt>

<dd><span class="content"><a class="eref" href=
"#edef_block-text_h">h</a> | <a class="eref" href= 
"#edef_block-text_h1">h1</a> | <a class="eref" href= 
"#edef_block-text_h2">h2</a> | <a class="eref" href= 
"#edef_block-text_h3">h3</a> | <a class="eref" href= 
"#edef_block-text_h4">h4</a> | <a class="eref" href= 
"#edef_block-text_h5">h5</a> | <a class="eref" href= 
"#edef_block-text_h6">h6</a></span></dd>

<dt id="cs_Block">Block</dt>

<dd><span class="content"><a class="eref" href= 
"#edef_block-text_address">address</a> | <a class="eref" href= 
"#edef_block-text_blockcode">blockcode</a> | <a class="eref" href= 
"#edef_block-text_blockquote">blockquote</a> | <a class="eref"
href="#edef_block-text_div">div</a> | <a class="eref" href= 
"#edef_block-text_p">p</a> | <a class="eref" href= 
"#edef_block-text_pre">pre</a> | <a class="eref" href= 
"#edef_block-text_section">section</a></span></dd>

<dt id="cs_Flow">Flow</dt>

<dd><span class="content"><a class="csref" href="#cs_Heading">
Heading</a> | <a class="csref" href="#cs_Block">Block</a> | <a
class="csref" href="#cs_Inline">Inline</a></span></dd>
</dl>

<p>Note that the use of the words <em>Block</em> and <em>
Inline</em> here are meant to be suggestive of the role the content
sets play. They are not normative with regards to presentation
since a style sheet might give any element within the Block content
a <code>display</code> property of <code>inline</code> .</p>

<p>Implementation: <a href="#a_rmodule_Block_Text">RELAX NG</a></p>

<h2><a  id="sec_8.1.">8.1.</a> The <a class="edef"
id="edef_block-text_address">address</a> element</h2>

<p>The <a class="eref" href="#edef_block-text_address">address</a>
element may be used by authors to supply contact information for a
document or a major part of a document such as a form. This element
often appears at the beginning or end of a document.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre class="example">
&lt;address href="mailto:webmaster@example.net"&gt;Webmaster&lt;/address&gt;
</pre>
</div>

<h2><a  id="sec_8.2.">8.2.</a> The <a class="edef"
id="edef_block-text_blockcode">blockcode</a> element</h2>

<p>This element indicates that its contents are a block of "code"
(see the <a class="eref" href="#edef_inline-text_code">code</a>
element). This element is similar to the <a class="eref" href= 
"#edef_block-text_pre">pre</a> element, in that whitespace in the
enclosed text has semantic relevance. The whitespace should
normally be included in visual renderings of the content.</p>

<p>Non-visual user agents are not required to respect extra white
space in the content of a <a class="eref" href= 
"#edef_block-text_blockcode">blockcode</a> element.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>The following example shows a code fragment:</p>

<pre>
&lt;blockcode class="Perl"&gt;
sub squareFn {
    my $var = shift;
    return $var * $var ;
}
&lt;/blockcode&gt;
</pre>

<p>Here is how this might be rendered:</p>

<pre>
<code>sub squareFn {
    my $var = shift;
    return $var * $var ;
}</code>
</pre>
</div>

<h2><a  id="sec_8.3.">8.3.</a> The <a class="edef"
id="edef_block-text_blockquote">blockquote</a> element</h2>

<p>This element designates a block of <a class="xref" id= 
"s_block-textmodule_xref_0">quoted text.</a></p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>This example formats an excerpt from "The Two Towers", by J.R.R.
Tolkien, as a blockquote.</p>

<pre>
&lt;blockquote cite="http://www.example.com/tolkien/twotowers.html"&gt;
&lt;p&gt;They went in single file, running like hounds on a strong scent,
and an eager light was in their eyes. Nearly due west the broad
swath of the marching Orcs tramped its ugly slot; the sweet grass
of Rohan had been bruised and blackened as they passed.&lt;/p&gt;
&lt;/blockquote&gt;
</pre>
</div>

<h2><a  id="sec_8.4.">8.4.</a> The <a class="edef"
id="edef_block-text_div">div</a> element</h2>

<p>The <a class="eref" href="#edef_block-text_div">div</a> element,
in conjunction with the <a class="aref" href= 
"#adef_attribute-collections_id">id</a> and <a class="aref" href= 
"#adef_attribute-collections_class">class</a> attributes, offers a
generic mechanism for adding extra structure to documents. This
element defines no presentational idioms on the content. Thus,
authors may use this element in conjunction with <a class="eref"
href="#edef_styleSheet_style">style sheets</a> , the <a class=
"aref" href="#adef_attribute-collections_xml:lang">xml:lang</a>
attribute, etc., to tailor XHTML to their own needs and tastes.</p>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>For example, suppose you wish to make a presentation in XHTML,
where each slide is enclosed in a separate element. You could use a
<a class="eref" href="#edef_block-text_div">div</a> element, with a
<a class="aref" href="#adef_attribute-collections_class">class</a>
of <code>slide</code> :</p>

<pre>
&lt;body&gt;
    &lt;h&gt;The meaning of life&lt;/h&gt;
    &lt;p&gt;By Huntington B. Snark&lt;/p&gt;
    &lt;div class="slide"&gt;
        &lt;h&gt;What do I mean by "life"&lt;/h&gt;
        &lt;p&gt;....&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class="slide"&gt;
        &lt;h&gt;What do I mean by "mean"?&lt;/h&gt;
        ...
    &lt;/div&gt;
    ...
&lt;/body&gt;
</pre>
</div>

<h2><a  id="sec_8.5.">8.5.</a> The <a class="edef"
id="edef_block-text_heading">heading</a> elements</h2>

<p>A heading element briefly describes the topic of the section it
introduces. Heading information may be used by user agents, for
example, to construct a table of contents for a document
automatically.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>There are two styles of headings in XHTML: the numbered versions
<a class="eref" href="#edef_block-text_heading">h1</a> , <a class= 
"eref" href="#edef_block-text_heading">h2</a> etc., and the
structured version <a class="eref" href="#edef_block-text_h">h</a>
, which is used in combination with the <a class="eref" href= 
"#edef_block-text_section">section</a> element.</p>

<p>There are six levels of numbered headings in XHTML with <a
class="eref" href="#edef_block-text_heading">h1</a> as the most
important and <a class="eref" href="#edef_block-text_heading">
h6</a> as the least. The visual presentation of headers can render
more important headings in larger fonts than less important
ones.</p>

<p>Structured headings use the single <a class="edef" id= 
"edef_block-text_h">h</a> element, in combination with the <a
class="eref" href="#edef_block-text_section">section</a> element to
indicate the structure of the document, and the nesting of the
sections indicates the importance of the heading. The heading for
the section is the one that is a child of the section element.</p>

<div class="example">
<p>For example:</p>

<pre>
&lt;body&gt;
&lt;h&gt;This is a top level heading&lt;/h&gt;
&lt;p&gt;....&lt;/p&gt;
&lt;section&gt;
    &lt;p&gt;....&lt;/p&gt;
    &lt;h&gt;This is a second-level heading&lt;/h&gt;
    &lt;p&gt;....&lt;/p&gt;
    &lt;h&gt;This is another second-level heading&lt;/h&gt;
    &lt;p&gt;....&lt;/p&gt;
&lt;/section&gt;
&lt;section&gt;
    &lt;p&gt;....&lt;/p&gt;
    &lt;h&gt;This is another second-level heading&lt;/h&gt;
    &lt;p&gt;....&lt;/p&gt;
    &lt;section&gt;
        &lt;h&gt;This is a third-level heading&lt;/h&gt;
        &lt;p&gt;....&lt;/p&gt;
    &lt;/section&gt;
&lt;/section&gt;
</pre>
</div>

<div class="example">
<p>These visual representation of these levels can be distinguished
in a style sheet:</p>

<pre>
h {font-family: sans-serif; font-weight: bold; font-size: 200%}
section h {font-size: 150%} /* A second-level heading */
section section h {font-size: 120%} /* A third-level heading */
</pre>

<p>etc.</p>
</div>

<div class="note">
<p><em><strong>Numbered sections and references</strong><br />
XHTML does not itself cause <span class="index-inst" title= 
"numbered headings::numbered"><a >
section numbers</a></span> to be generated from headings. Style
sheet languages such as CSS however allow authors to control the
generation of section numbers.</em></p>
</div>

<div class="note">
<p><em>The practice of <span class="index-inst" title= 
"headings::properly nested"><a >skipping heading
levels</a></span> is considered to be bad practice. The series <tt>
h1 h2 h1</tt> is acceptable, while <tt>h1 h3 h1</tt> is not, since
the heading level <tt>h2</tt> has been skipped.</em></p>
</div>

<h2><a  id="sec_8.6.">8.6.</a> The <a class="edef"
id="edef_block-text_hr">hr</a> element</h2>

<p>The <a class="eref" href="#edef_block-text_hr">hr</a> element
places a horizontal line in the document.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<h2><a  id="sec_8.7.">8.7.</a> The <a class="edef"
id="edef_block-text_p">p</a> element</h2>

<p>The <a class="eref" href="#edef_block-text_p">p</a> element
represents a paragraph.</p>

<p>In comparison with earlier versions of HTML, where a paragraph
could only contain inline text, XHTML2's paragraphs represent the
conceptual idea of a paragraph, and so may contain lists,
blockquotes, pre's and tables as well as inline text. They may not,
however, contain directly nested <a class="eref" href= 
"#edef_block-text_p">p</a> elements.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
&lt;p&gt;Payment options include:
&lt;ul&gt;
&lt;li&gt;cash&lt;/li&gt;
&lt;li&gt;credit card&lt;/li&gt;
&lt;li&gt;luncheon vouchers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
</pre>
</div>

<h2><a  id="sec_8.8.">8.8.</a> The <a class="edef"
id="edef_block-text_pre">pre</a> element</h2>

<p>The <a class="eref" href="#edef_block-text_pre">pre</a> element
indicates that whitespace in the enclosed text has semantic
relevance, and will normally be included in visual renderings of
the content.</p>

<p>Note that <em>all</em> elements in the XHTML family preserve
their whitespace in the document, which is only removed on
rendering, via a stylesheet, according to the rules of CSS [CSS].
This means that in principle any elements may preserve or collapse
whitespace on rendering, under control of a stylesheet. Also note
that there is no normative requirement that the &lt;pre&gt; element
be rendered in a monospace font (although this is the default
rendering), nor that text wrapping be disabled.</p>

<p>Non-visual user agents are not required to respect extra white
space in the content of a <a class="eref" href=
"#edef_block-text_pre">pre</a> element.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>The following example shows a preformatted verse from Shelly's
poem <em>To a Skylark</em> :</p>

<pre>
&lt;pre&gt;
       Higher still and higher
         From the earth thou springest
       Like a cloud of fire;
         The blue deep thou wingest,
And singing still dost soar, and soaring ever singest.
&lt;/pre&gt;
</pre>

<p>Here is how this might be rendered:</p>

<pre>
       Higher still and higher
         From the earth thou springest
       Like a cloud of fire;
         The blue deep thou wingest,
And singing still dost soar, and soaring ever singest.
</pre>
</div>

<h2><a  id="sec_8.9.">8.9.</a> The <a class="edef"
id="edef_block-text_section">section</a> element</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_block-text_section">section</a>
element, in conjunction with the <a class="eref" href= 
"#edef_block-text_h">h</a> element, offers a mechanism for
structuring documents into sections. This element defines content
to be block-level but imposes no other presentational idioms on the
content, which may otherwise be controlled from a style sheet.</p>

<div class="note">
<p><em>By representing the structure of documents <span class= 
"diff-chg">explicitly</span> using the <a class="eref" href= 
"#edef_block-text_section">section</a> and <a class="eref" href= 
"#edef_block-text_h">h</a> elements gives the author greater
control over presentation possibilities than the traditional
implicit structuring using numbered levels of headings. For
instance, it is then possible to indicate the nesting of sections
by causing a border to be displayed to the left of
sections.</em></p>

<p>Here is an example</p>

<pre>
&lt;body&gt;
&lt;h&gt;Events&lt;/h&gt;
&lt;section&gt;
    &lt;h&gt;Introduction&lt;/h&gt;
    &lt;p&gt;....&lt;/p&gt;
    &lt;h&gt;Specifying events&lt;/h&gt;
    &lt;p&gt;...&lt;/p&gt;
    &lt;section&gt;
        &lt;h&gt;Attaching events to the handler&lt;/h&gt;
        &lt;p&gt;...&lt;/p&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h&gt;Attaching events to the listener&lt;/h&gt;
        &lt;p&gt;...&lt;/p&gt;
    &lt;/section&gt;
    &lt;section&gt;
        &lt;h&gt;Specifying the binding elsewhere&lt;/h&gt;
        &lt;p&gt;...&lt;/p&gt;
    &lt;/section&gt;
&lt;/section&gt;    
</pre>
</div>

<h2><a  id="sec_8.10."><span class="diff-new">
8.10.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_block-textmodule_issue_0" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6337</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Well, the same argument applies for the
definitions of &lt;ol&gt; and &lt;ul&gt;. Should we introduce
&lt;ol1&gt; &lt;ol2&gt; and &lt;ol3&gt; etc to save the computers
some work? By my calculations computers are nearly 1000 times
faster now than when the Web was introduced, so they should be able
to do a little bit more work.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
7. deprecating h1-h6 is a performance hit for web browsers. If the h element is
    introduced with the section element, a default stylesheet for XHTML 2.0 will
    need
      section &gt; h                     { ... }
      section &gt; section &gt; h           { ... }
      section &gt; section &gt; section &gt; h { ... }
      ...
    that's _considerably_ slower than
     h1 { ... }
     ...
     h6 { ... }
    More generally, I am under the impression that browser performance has not
    been taken under consideration for the design of XHTML 2.0.
[7] http://www.w3.org/TR/xhtml2/xhtml2.html#s_textmodule_issue_4
     http://www.w3.org/TR/xhtml2/xhtml2.html#edef_text_h
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_1" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6354</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We agree, and are open to
suggestions.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
24. the address element should be improved, I agree. But not using the l
    element has it has often been proposed. That's not enough.
[24] http://www.w3.org/TR/xhtml2/xhtml2.html#sec_8.2.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_2" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6356</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Agree that there is a perceived use for such
a facility. Disagree that renaming it is counterproductive: in
Japanese texts it may not be a horizontal rule, but a vertical one;
and it doesn't need to be a rule at all, so why not name it
something more descriptive?</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
26. removing the hr element is counter-productive; renaming it is useless, keep
    it simple and stupid.
[26] http://www.w3.org/TR/xhtml2/xhtml2.html#s_textmodule_issue_5
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_3" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6357</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Actually this problem already exists, for
instance with the &lt;div&gt; element, so it is not a new problem.
However, we have observed that the current model is closer to how
people think of a paragraph (and use the &lt;p&gt; element), and
therefore is an improvement. It is of course harder work for simple
editors that don't understand the notion of nested blocks, but that
problem is already there.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
27. the modification of the model of the paragraph p element will drastically
    impact editing environements. Most editors rely on the inline/block
    discrimination to handle user input, in particular when the user presses the
    Enter key. I see this change as a nice structural change, unfortunately
    totally overkill for vendors. You can't say at the same time "XHTML 2.0 will
    be edited by tools and not by hand" and complexify that way the language so
    that editors will hardly handle it.
[27] http://www.w3.org/TR/xhtml2/xhtml2.html#sec_8.13.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_4" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6358</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I think that the comment is not asking for
removal of &lt;pre&gt; but of &lt;l&gt;. The advantage of using
&lt;l&gt; over &lt;br/&gt; is that you can use CSS to style lines,
such as numbering them, or doing odd/even colouring etc, or using
other forms of styling such as the marquee style that is now
appearing on some mobile phones. No functionality is lost, and some
functionality is gained.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
28. in the spirit of XHTML 2.0, the pre element should not exist. The
    non-collapsable spaces should be &amp;nbsp; and the lines should be materialized
    by &lt;br&gt; or &lt;l&gt; element. I am, as I said above, completely opposed to &lt;l&gt; and
    I am in favor of keeping &lt;pre&gt;.
[28] http://www.w3.org/TR/xhtml2/xhtml2.html#sec_8.14.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_5" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6360</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">(Don't understand the problem)</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
30. an h element child of the body is redundant with a title element child of
    body as in item 21.
[30] http://www.w3.org/TR/xhtml2/xhtml2.html#edef_text_h
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_6" class="issueTitle"><span class= 
"diff-new">comments on 2002-12-12 XHTML 2.0 WD: Why remove h1-h6 in
favor of heading and keep ol-ul ?</span> <span class="pr"><span
class="diff-new">PR #6387</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Renaming &lt;ol&gt; etc. to &lt;list
ordered="yes"&gt; does not introduce any new functionality, nor
remove anything anybody has complained about. Changing &lt;h1&gt;
etc to &lt;h&gt; does both. We agree about name: &lt;a&gt; does not
have a name attribute. It was removed after XHTML 1.0; it is not in
XHTML 1.1 nor Basic, nor XHTML 2.0</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Important disclaimers:
  (a) The current message expresses my personal opinions ONLY, and
      does NOT reflect the position of my employer.
  (b) The current message is meant to be constructive; criticism is
      always helpful when carefully used.
Comments are extracted from Issue 6211:
7. The simplification of headings is hardly understandable when different
   list elements remain in XHTML 2. Why remove h1-h6 in favor of heading
   and keep ol-ul ? Let's be consistent here and remove ol-ul in favor
   of a list element with one 'ordered' attribute with value true|false.
   This comment does not imply I am in favor of the heading element.
   And in fact I am not.
   Same thing about the dual usage of a element: named anchor, target of
   a link or source of a link. The name attribute of a SHOULD NOT be
   meaningful for named anchors and only id should allow targeting of
   fragment-identifiers.
    
Conclusion:
  As it is in its 2002-12-11 WD, I think that XHTML 2.0 is far
  away from both what the Web Authors are expecting and from what
  could be done to "lead the Web to its full potential".
  The current WD makes some strategic choices (style attribute
  for instance) that seem to me harmful.
  I see no incentive for a Web Author to ever move to XHTML 2 from
  a simple XMLized version of the actual transitional HTML4 (call
  that as you wish). XHTML 2.0 does not contain ANY new key feature
  and seem to get totally rid of all Authors' requests between 1998
  and today.
  From my perspective, XHTML 2.0 as it is today is a failure and the
  work of the HTML WG on this topic should be immediately and
  totally reoriented.
  Once again, the current message expresses ONLY my personal opinions.
Regards,
&lt;/Daniel&gt;
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran&ccedil;ais !
Yahoo! Mail : http://fr.mail.yahoo.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_7" class="issueTitle"><span class= 
"diff-new">Fw: [XHTML2] 4th WD comments: section 8.9, provide
example/style sheet</span> <span class="pr"><span class="diff-new">
PR #6398</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We could; however, we agreed that the
specification should not be a tutorial, especially on other
specifications, so I would be reluctant to add this
here.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">----- Original Message -----
From: "Christoph P&ccedil;&Ntilde;er" &lt;christoph.paeper@tu-clausthal.de&gt;
To: &lt;www-html@w3.org&gt;
Sent: Monday, February 03, 2003 7:48 AM
Subject: [XHTML2] 4th WD comments: section 8.9, provide example/style sheet
This issue was extracted from Issue 6248:
&gt;
&gt; Just a few comments based on the diff marked version:
&gt; 8.9. The heading elements
&gt; | Numbered sections and references
&gt; | XHTML does not itself cause section numbers to be generated from
&gt; | headings. Style sheet languages such as CSS however allow authors
&gt; | to control the generation of section numbers.
&gt;
&gt; Please provide at least in a sample stylesheet, if not in an inline example,
&gt; the code for this.
&gt;
&gt;
&gt;
&gt; Christoph P&ccedil;&Ntilde;er
&gt;
&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_8" class="issueTitle"><span class= 
"diff-new">Feedback on XHTML 2.0 WD (20030131): remove, not
depracate, h1-h6</span> <span class="pr"><span class="diff-new">PR
#6428</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The WG has not reached consensus to remove
h1-h6. Thanks for the input.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 6308:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello dear list members,
here's my feedback on the XHTML 2.0 WD
http://www.w3.org/TR/2003/WD-xhtml2-20030131
,.,,
8.9 headings
I'd even not include h1-h6, not just deprecate them. Remove them. With section 
and h, they're not required anymore.
....
Bye
- -- 
ITCQIS GmbH
Christian Wolfgang Hujer
Gesch&auml;ftsf&uuml;hrender Gesellschafter
Telefon: +49  (0)89  27 37 04 37
Telefax: +49  (0)89  27 37 04 39
E-Mail: Christian.Hujer@itcqis.com
WWW: http://www.itcqis.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE+gvvszu6h7O/MKZkRAk8HAJ4kR+1YtdBIgMEU9w6ktNd5KEVJDACgoPAP
HrD7VM71nxGkUyJq82NLvqg=
=ByZ4
-----END PGP SIGNATURE-----
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_9" class="issueTitle"><span class= 
"diff-new">Feedback on XHTML 2.0 WD (20030131): votes to rename
&lt;hr&gt; but not remove it</span> <span class="pr"><span class= 
"diff-new">PR #6429</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks for the input; there seems to be
agreement that the functionality is needed. There is not yet
agreement on what to call it.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 6308:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello dear list members,
here's my feedback on the XHTML 2.0 WD
http://www.w3.org/TR/2003/WD-xhtml2-20030131
,.,,
8.10 The hr element
You have my vote for renaming it to seperator.
But I'd not remove it. It is quite useful to provide information about a 
really seperated section, e.g. the footer at the bottom of a document 
containing webmaster mail, copyright, last modified etc., even when style 
sheets are not available.
....
Bye
- -- 
ITCQIS GmbH
Christian Wolfgang Hujer
Gesch&auml;ftsf&uuml;hrender Gesellschafter
Telefon: +49  (0)89  27 37 04 37
Telefax: +49  (0)89  27 37 04 39
E-Mail: Christian.Hujer@itcqis.com
WWW: http://www.itcqis.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE+gvvszu6h7O/MKZkRAk8HAJ4kR+1YtdBIgMEU9w6ktNd5KEVJDACgoPAP
HrD7VM71nxGkUyJq82NLvqg=
=ByZ4
-----END PGP SIGNATURE-----
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_10" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of
blockquote</span> <span class="pr"><span class="diff-new">PR
#6446</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks for spotting this; we are still
working on how to clarify content models.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
8) Section 8 XHTML Text Module
In the MCM table, the MCM of the blockquote element conatins the List 
content set which is not defined in this module. Either this module 
needs to reference the List Module or the List Module needs to be the 
one which adds List to the MCM of the blockquote element.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_11" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: need added info
about interaction of table module and min content module</span>
<span class="pr"><span class="diff-new">PR
#6447</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks. We are working on clarifying content
models.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
9) Section 8 XHTML Text Module
In the MCM table, the MCM of the p element contains the List content 
set and the table element which are not definined in this Module. 
Either this module needs to reference the those modules or those 
modules need to be the ones which add List and table to the MCM of the 
p element.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_12" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of p</span>
<span class="pr"><span class="diff-new">PR
#6450</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Good suggestion. The reson that tables etc
are mentioned here is that we intend to give the actual content in
XHTML 2 as well as the minimal content of the modules, and we
haven't completed that work yet.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
12) Section 8.13 The p element
Since lists and tables are not defined in this module, the description 
of the p element should be rewritten so that those are not referenced. 
A suggested rewording of the description is as follows:
The p element represents a paragraph.
In comparison with earlier versions of HTML, where a paragraph could 
only contain inline text, XHTML2's paragraphs represent the conceptual 
idea of a paragraph, and so may contain blockquote, and pre elementa as 
well as inline text. They may not, however, contain directly nested p 
elements. Other modules may add additional non-inline elements.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_13" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of
blockquote</span> <span class="pr"><span class="diff-new">PR
#6452</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
14) Section 10 XHTML List Module
See comment 8 [ issue 6446 ] above about the placement of the 
information that the List content set is part of the MCM of the 
blockquote element.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_14" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: add info about
interaction of list module and the min content module of p</span>
<span class="pr"><span class="diff-new">PR
#6453</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
15) Section 10 XHTML List Module
See comment 9 above [issue 6447] about the placement of the 
information that the List content set is part of the MCM of the p element.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_15" class="issueTitle"><span class= 
"diff-new">Re: Updated XHTML 2.0 draft published: Deprecate h1-h6?
No. Discard them? Yes.</span> <span class="pr"><span class=
"diff-new">PR #6470</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks for your input.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from PR # 7334:
My comments:
...
8.5
Deprecate h1-h6? No. Discard them? Yes. If it is really neccessary to 
add some kind of backwards compatibility measure, include a "level" 
attribute.
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_16" class="issueTitle"><span class= 
"diff-new">Re: Updated XHTML 2.0 draft published: Add a
"sectiontype" attribute</span> <span class="pr"><span class= 
"diff-new">PR #6472</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from PR # 7334:
My comments:
...
8.9
Add a "sectiontype" attribute to describe the purpose of the section. It 
should have a fixed set of possible values (like rel). I'd suggest at 
least:
    * Glossary
    * Introduction
    * Conclusion
    * Appendix
    * Contents
    * Index
    * Note
    * Bibliography
    * Example
    * Chapter
    * Subchapter
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_17" class="issueTitle"><span class= 
"diff-new">Re: Updated XHTML 2.0 draft published: need better
system or quoting/referencing</span> <span class="pr"><span class= 
"diff-new">PR #6475</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Related to both "blockquote" and "quote". We
really need a suggestion if we are to move on this. What are the
requirements?</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from PR # 7334:
My comments:
...
8, 9
We are really crying out for a better system of quoting and referencing.
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_18" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: separating
text module elements based on presentation seems wrong</span> <span
class="pr"><span class="diff-new">PR #6504</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">It is not trying to separate it on
presentation, but on content models. These two clearly form two
different groups, and splitting them up helps in their management
(and reuse).</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Inline and Block Modules:
The last time I checked, whether something was inline or block has no 
semantic meaning.  Trying to separate text module elements based on 
(visual) presentation seems to defy the overall design goals of XHTML2.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_19" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7,
rename address</span> <span class="pr"><span class="diff-new">PR
#6514</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We are agreed that &lt;address&gt; still
needs work.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
address Element:
I'd call this either a metadata element or a footer element.  address 
just sounds wrong.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_20" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7, use
presenational controls rather than block*, code, quote
elements</span> <span class="pr"><span class="diff-new">PR
#6516</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The intention is that these distinguish
themselves on their content models. That they are called 'block',
and that the CSS property is also called 'block' is a
terminological coincidence.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
blockquote, blockcode, code, and quote Elements:
As I said earlier, it seems like whether something was block or inline 
was purely presentational - thus, why not drop blockquote and blockcode 
and let the context decide its presentation?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_21" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: section 6.7,
drop div/span in favor if section</span> <span class="pr"><span
class="diff-new">PR #6517</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Div and span have different content models,
and that is their advantage. It is not a presentation
thing.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
div and span Elements:
Again, that block and inline thing.  Drop span.  Better yet, drop both 
and leave generic formatting to sections.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_22" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7, drop
h1 - h6</span> <span class="pr"><span class="diff-new">PR
#6518</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks for your input.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
h1 to h6 Elements:
Drop them.  The section/h combo has every advantage in terms of 
semantics over them.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_23" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7, hr
and presentation</span> <span class="pr"><span class="diff-new">PR
#6519</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Its role is as a light-weight separator, not
particularly for presentation, though commentators have shown many
examples of such separators with different presentations. It seems
to have a true semantic value.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
hr Element:
What's the difference between hr and giving presentation to an empty 
element?  Drop it.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_24" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7, pre
looks presentation, drop it</span> <span class="pr"><span class= 
"diff-new">PR #6521</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">It has an exact semantic: whitespace is
meaningful; it has no required presentation. It might be worth
using another example.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
pre Element:
Looks presentatonal for its example.  I'd say drop it - I don't think 
it has any semantical relevance.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_25" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: request block element rather
than blockquote, blockcode, etc.</span> <span class="pr"><span
class="diff-new">PR #6551</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">It is a common misconception that the
'block' in 'blockquote' has anything to do with the block in CSS
display: block. The separation of block and inline in XHTML is
based on content models, and not presentation.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
10) Section 8 The Block Text Module
A proliferation of blockXXX elements is occurring.  (We now have 
blockquote and blockcode, and discussion on www-html has mentioned the 
strong possibility of blocksamp being added.)  Might I suggest that 
instead we have but a single element: block.  The block element would 
indicate that a user agent should have a default method, such as 
indenting in a visual agent, to indicate that the contents are a 
coherent group (as opposed to section or div, which have no such 
recommendation.)  The exact method of indicating this would be up to 
the user agent and of course could be altered by styling information.  
The white space preservation properties of the blockcode element should 
be made part of the code element.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_26" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: is pre element needed?</span>
<span class="pr"><span class="diff-new">PR
#6552</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">xml:space has no effect on &lt;pre&gt; or
any other element in XHTML, since it is set to 'preserve' on all
elements as the default. There is no 'unpreserve' value. The use of
&lt;pre&gt; is intended above all for authors to signal that white
space is meaningful, and for user agents that don't support
CSS.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
11) Section 8.8 The pre element
Is this element really needed?  If the  white space preservation 
property was attached to code, kbd, and other appropriate computing 
elements , then one major use of pre would be taken care of.  The other 
major use presented as an example, poetry, seems to be adequately taken 
care of by the l element.  Is there any other remaining semantic use of 
white space that couldn't be handled by xml:space in the remaining rare 
cases?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_block-textmodule_issue_27" class="issueTitle"><span class= 
"diff-new">WD-xhtml2-20030506: What is "computer code"?</span>
<span class="pr"><span class="diff-new">PR
#7344</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">The &lt;blockcode&gt; element looks useful -- "&lt;blockcode&gt;foo&lt;/blockcode&gt;"
would appear to be the equivalent of "&lt;pre&gt;&lt;code&gt;foo&lt;/code&gt;&lt;/pre&gt;".
One query -- the &lt;blockcode&gt; and &lt;code&gt; elements are both intended to
contain "a fragment of computer code".  It seems clear this covers the
likes of programming and scripting languages (C, Perl, etc.), but what
about other types of "computer code"?  For example:
  * Some SGML or LaTeX markup
  * An ASCII-armoured OpenPGP key
  * A UUencoded binary
I think some clarification of this in section 9.3 would be beneficial.
Thanks
Dave
P.S., an observation:
    &lt;blockhaiku&gt;
        &lt;code&gt;&amp;lt;blockcode/&amp;gt;&lt;/code&gt; element!
        Rich markup for computing;
        Poets feel left out
    &lt;/blockhaiku&gt;
;o)
</span>
</pre>
</div>

<h1><a  id="s_inline-textmodule">9.</a>
XHTML Inline Text Module</h1>

<p>This section is <em>normative</em> .</p>

<p>This module defines all of the basic text container elements,
attributes, and their content models that are "inline level". Note
that while the concept of "inline level" can be construed as a
presentation aspect, in this case it is intended to only have a
semantic meaning.</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes in Inline Text Module">
<thead>
<tr>
<th>Element</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td>abbr</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>cite</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>code</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>dfn</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>em</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>kbd</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>l</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>quote</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>samp</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>span</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>strong</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>sub</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>sup</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>var</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>
</tbody>
</table>

<p>The minimal content model for this module defines a content
set:</p>

<dl>
<dt id="cs_Inline">Inline</dt>

<dd><span class="content"><a class="eref" href= 
"#edef_inline-text_abbr">abbr</a> | <a class="eref" href= 
"#edef_inline-text_cite">cite</a> | <a class="eref" href= 
"#edef_inline-text_code">code</a> | <a class="eref" href= 
"#edef_inline-text_dfn">dfn</a> | <a class="eref" href= 
"#edef_inline-text_em">em</a> | <a class="eref" href= 
"#edef_inline-text_kbd">kbd</a> | <a class="eref" href= 
"#edef_inline-text_l">l</a> | <a class="eref" href= 
"#edef_inline-text_quote">quote</a> | <a class="eref" href= 
"#edef_inline-text_samp">samp</a> | <a class="eref" href= 
"#edef_inline-text_span">span</a> | <a class="eref" href= 
"#edef_inline-text_strong">strong</a> | <a class="eref" href= 
"#edef_inline-text_var">var</a></span></dd>
</dl>

<p>Note that the use of the words <em>Block</em> and <em>
Inline</em> here are meant to be suggestive of the role the content
sets play. They are not normative with regards to presentation
since a style sheet might give any element within the Block content
a <code>display</code> property of <code>inline</code> .</p>

<p>Implementation: <a href="#a_rmodule_Inline_Text">RELAX
NG</a></p>

<h2><a  id="sec_9.1.">9.1.</a> The <a class="edef"
id="edef_inline-text_abbr">abbr</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_abbr">abbr</a>
element indicates that a text fragment is an abbreviation (e.g.,
W3C, XML, Inc., Ltd., Mass., etc.); this includes acronyms.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The content of the <a class="eref" href=
"#edef_inline-text_abbr">abbr</a> element specifies the abbreviated
expression itself, as it would normally appear in running text. The
<a class="aref" href="#adef_attribute-collections_title">title</a>
attribute of these elements may be used to provide the full or
expanded form of the expression.</p>

<p>Note that abbreviations often have idiosyncratic pronunciations.
For example, while "IRS" and "BBC" are typically pronounced letter
by letter, "NATO" and "UNESCO" are pronounced phonetically. Still
other abbreviated forms (e.g., "URI" and "SQL") are spelled out by
some people and pronounced as words by other people. When
necessary, authors should use style sheets to specify the
pronunciation of an abbreviated form.</p>

<div class="example">
<p>Examples:</p>

<pre>
  &lt;abbr title="Limited"&gt;Ltd.&lt;/abbr&gt;
  &lt;abbr title="Abbreviation"&gt;abbr.&lt;/abbr&gt;
</pre>
</div>

<h2><a  id="sec_9.2.">9.2.</a> The <a class="edef"
id="edef_inline-text_cite">cite</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_cite">cite</a>
element contains a citation or a reference to other sources.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>In the following example, the <a class="eref" href= 
"#edef_inline-text_cite">cite</a> element is used to <span class= 
"diff-chg">reference</span> the <span class="diff-chg">book from
which the quotation is taken:</span></p>

<pre class="example">
<span class=
"diff-chg">As &lt;cite cite="http://www.example.com/books/the_two_towers""&gt;Gandalf 
the White&lt;/cite&gt; said, &lt;quote xml:lang="en-us"&gt;The hospitality of 
your hall is somewhat lessened of late, Theoden King.&lt;/quote&gt;
</span>
</pre>

<p><span class="diff-chg">In this example, a separate specification
is referenced:</span></p>

<pre class="example">
More information can be found in &lt;cite cite="http://www.w3.org/TR/REC-xml"&gt;[XML]&lt;/cite&gt;.
</pre>

<h2><a  id="sec_9.3.">9.3.</a> The <a class="edef"
id="edef_inline-text_code">code</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_code">code</a>
element contains a fragment of computer code.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
The Pascal statement &lt;code&gt;i := 1;&lt;/code&gt; assigns the
literal value one to the variable &lt;var&gt;i&lt;/var&gt;.
</pre>
</div>

<h2><a  id="sec_9.4.">9.4.</a> The <a class="edef"
id="edef_inline-text_dfn">dfn</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_dfn">dfn</a> element
contains the defining instance of the enclosed term.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
An &lt;dfn id="def-acronym"&gt;acronym&lt;/dfn&gt; is a word formed
from the initial letters or groups of letters of words in a set phrase
or series of words.
</pre>
</div>

<h2><a  id="sec_9.5.">9.5.</a> The <a class="edef"
id="edef_inline-text_em">em</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_em">em</a> element
indicates emphasis for its contents.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
Do &lt;em&gt;not&lt;/em&gt; phone before 9 a.m.
</pre>
</div>

<h2><a  id="sec_9.6.">9.6.</a> The <a class="edef"
id="edef_inline-text_kbd">kbd</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_kbd">kbd</a> element
indicates <span class="diff-chg">input</span> to be entered by the
user.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
To exit, type &lt;kbd&gt;QUIT&lt;/kbd&gt;.
</pre>
</div>

<h2><a  id="sec_9.7.">9.7.</a> The <a class="edef"
id="edef_inline-text_l">l</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_l">l</a> element
represents a semantic line of text (e.g., a line of verse or a line
of computer code).</p>

<p>When visually represented, the <a class="eref" href= 
"#edef_inline-text_l">l</a> element should start on a new line and
have a line break at the end. Whether the line should wrap or not
depends on styling properties of the element.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="note">
<p><em>By retaining structure in text that has to be broken over
lines, you retain essential information about its makeup. This
gives you greater freedom with styling the content. For instance,
line numbers can be generated automatically from the stylesheet if
needed.</em></p>

<p><em>For instance, for a document with the following
structure:</em></p>

<pre>
&lt;p class="program"&gt;
&lt;l&gt;program p(input, output);&lt;/l&gt;
&lt;l&gt;begin&lt;/l&gt;
&lt;l&gt;   writeln("Hello world");&lt;/l&gt;
&lt;l&gt;end.&lt;/l&gt;
&lt;/p&gt;
</pre>

<p><em>the following CSS stylesheet would number each
line:</em></p>

<pre>
.program { counter-reset: linenumber }
l:before {
    position: relative;
    left: -1em;
    counter-increment: linenumber;
    content: counter(linenumber);
}
</pre>
</div>

<h2><a  id="sec_9.8.">9.8.</a> The <a class="edef"
id="edef_inline-text_quote">quote</a> element</h2>

<p>This element designates an inline text fragment of <a class=
"xref" id="s_inline-textmodule_xref_0">quoted text.</a></p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>Visual user agents must not by default add delimiting quotation
marks (as was the case for the <code>q</code> element in earlier
versions of XHTML). It is the responsibility of the document author
to add any required quotation marks, either directly in the text,
or via a stylesheet.</p>

<div class="example">
<p>The following example illustrates nested quotations with the <a
class="eref" href="#edef_inline-text_quote">quote</a> element.</p>

<pre>
&lt;p&gt;John said, &lt;quote&gt;"I saw Lucy at lunch, she told me
&lt;quote&gt;'Mary wants you
to get some ice cream on your way home.'&lt;/quote&gt; I think I will get
some at Jen and Berry's, on Gloucester Road."&lt;/quote&gt;&lt;/p&gt;
</pre>

<p>Here is an example using the <a class="aref" href= 
"#adef_attribute-collections_cite">cite</a> attribute:</p>

<pre>
Steven replied:
&lt;quote cite="http://lists.example.org/2002/01.html"&gt;We quite agree&lt;/quote&gt;
</pre>
</div>

<h2><a  id="sec_9.9.">9.9.</a> The <a class="edef"
id="edef_inline-text_samp">samp</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_samp">samp</a>
element designates sample output from programs, scripts, etc.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
On starting, you will see the prompt &lt;samp&gt;$ &lt;/samp&gt;.
</pre>
</div>

<h2><a  id="sec_9.10.">9.10.</a> The <a class=
"edef" id="edef_inline-text_span">span</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_span">span</a>
element, in conjunction with the <a class="aref" href= 
"#adef_attribute-collections_id">id</a> and <a class="aref" href= 
"#adef_attribute-collections_class">class</a> attributes, <span
class="diff-chg">offers</span> a generic mechanism for adding
structure to documents. This element imposes no presentational
idioms on the content. Thus, authors may use this element in
conjunction with <a class="eref" href="#edef_styleSheet_style">
style sheets</a> , the <a class="aref" href= 
"#adef_attribute-collections_xml:lang">xml:lang</a> attribute,
etc., to tailor XHTML to their own needs and tastes.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>For example, suppose you wish to mark all words in a document
that need to be collected into an index. You could use a <a class= 
"eref" href="#edef_inline-text_span">span</a> element, with a <a
class="aref" href="#adef_attribute-collections_class">class</a> of
<code>xref</code> :</p>

<pre>
&lt;p&gt;This operation is called
the &lt;span class="xref"&gt;transpose&lt;/span&gt;
or &lt;span class="xref"&gt;inverse&lt;/span&gt;.&lt;/p&gt;
</pre>
</div>

<h2><a  id="sec_9.11.">9.11.</a> The <a class=
"edef" id="edef_inline-text_strong">strong</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_strong">strong</a>
element indicates higher importance for its contents.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<pre>
On &lt;strong&gt;Monday&lt;/strong&gt; please put the rubbish out,
but &lt;em&gt;not&lt;/em&gt; before nightfall!
</pre>
</div>

<h2><a  id="sec_9.12.">9.12.</a> The <a class=
"edef" id="edef_inline-text_sub">sub</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_sub">sub</a> element
indicates that its contents should regarded as a subscript.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>For visual user agents this element would normally be rendered
as a subscript of the text baseline, but on user agents where this
is not possible (for instance teletype-like devices) other
renderings may be used. For instance, <code>a&lt;sub&gt;i,
j&lt;/sub&gt;</code> that would be rendered as <code>a <sub>i,
j</sub></code> on a device that can render it so, might be rendered
as <code>a[i, j]</code> on a simpler device.</p>

<div class="example">
<p>Example:</p>

<pre>
      H&lt;sub&gt;2&lt;/sub&gt;O
</pre>
</div>

<h2><a  id="sec_9.13.">9.13.</a> The <a class=
"edef" id="edef_inline-text_sup">sup</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_sup">sup</a> element
indicates that its contents should be regarded as a
super-script.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>For visual user agents this element would normally be rendered
as a super-script of the text baseline, but on user agents where
this is not possible (for instance teletype-like devices) other
renderings may be used. For instance, <code>
2&lt;sup&gt;n&lt;/sup&gt;</code> that would be rendered as <code>2
<sup>n</sup></code> on a device that can render it so, might be
rendered as <code>2&uarr;(n)</code> on a simpler device.</p>

<p>Many scripts (e.g., French) require superscripts or subscripts
for proper rendering. The <a class="eref" href= 
"#edef_inline-text_sub">sub</a> and <a class="eref" href= 
"#edef_inline-text_sup">sup</a> elements should be used to markup
text in these cases.</p>

<div class="example">
<pre>
      H&lt;sub&gt;2&lt;/sub&gt;O
      E = mc&lt;sup&gt;2&lt;/sup&gt;
      &lt;span xml:lang="fr"&gt;M&lt;sup&gt;lle&lt;/sup&gt; Dupont&lt;/span&gt;
</pre>
</div>

<h2><a  id="sec_9.14.">9.14.</a> The <a class=
"edef" id="edef_inline-text_var">var</a> element</h2>

<p>The <a class="eref" href="#edef_inline-text_var">var</a> element
indicates an instance of a variable or program argument.</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<div class="example">
<p>Example:</p>

<pre>
The parameter &lt;var&gt;ncols&lt;/var&gt; represents
the number of colors to use.
</pre>
</div>

<h2><a  id="sec_9.15."><span class="diff-new">
9.15.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_inline-textmodule_issue_0" class="issueTitle"><span class= 
"diff-new">XHTML2 slightly too strict about &lt;l&gt;
rendering</span> <span class="pr"><span class="diff-new">PR
#6234</span></span><br />
<span class="diff-new">State: Feedback</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Point taken. The draft should reflect this
comment.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">Daniel Glazman observed [1] that XHTML2 is currently slightly too strict
about the rendering of the &lt;l&gt; element [2]:
# It contains a piece of text that when visually represented should start
# on a new line, and have a line break at the end.
Could this be slightly loosened? I feel really bad asking this, because my
main complaint about HTML specs has always been that they are too vague.
However, it seems reasonable that a CSS sheet should be allowed to render
&lt;l&gt;ines however they like. How about changing the text to:
: It contains a piece of text that, by default, when visually represented
: should start on a new line, and have a line break at the end.
(Incidentally, while we're at it, if the sample in that part of the spec
is supposed to be Pascal, strings in Pascal are delimitted by single
quotes (') not double quotes (").)
Cheers.
-- References --
[1] http://lists.w3.org/Archives/Public/www-html/2003Jan/0270.html
[2] http://www.w3.org/TR/2002/WD-xhtml2-20021218/mod-text.html#sec_8.10.
-- 
Ian Hickson                                      )\._.,--....,'``.    fL
"meow"                                          /,   _.. \   _\  ;`._ ,.
http://index.hixie.ch/                         `._.-(,_..'--(,_..'`-.;.'
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_1" class="issueTitle"><span class= 
"diff-new">Getting &lt;l&gt; right</span> <span class="pr"><span
class="diff-new">PR #6316</span></span><br />
<span class="diff-new">State: Feedback</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Addressed the issues with "l". Br is still
an open issue.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">What is &lt;l&gt; supposed to be?
If I read the 20030131 draft at section 8.12, I see:
&gt;   8.12. The l element
&gt; 
&gt;   The l element contains a sub-paragraph that represents a single
&gt;   line of text.
[ERROR in draft: "single" is misspelled.]
The intended meaning would be clearer if "sub-paragraph" were replaced
by "sub-unit of a paragraph".  But what is meant by "line"?  Is that a
presentational concept?
&gt;                 It is intended as a structured replacement for the
&gt;   br element.
Because "br" is viewed as presentational?
&gt;               It contains a piece of text that when visually
&gt;   represented should start on a new line, and have a line break at
&gt;   the end. Whether the line should wrap or not visually depends on
&gt;   styling properties of the element.
In other words, so far the description of "l" is all about presentation.
  . . .
&gt;   By retaining structure in text that has to be broken over lines,
&gt;   you retain essential information about its makeup. This gives you
&gt;   greater freedom with styling the content. For instance, line
&gt;   numbers can be generated automatically from the stylesheet if
&gt;   needed.
Aha!  Structure in text.  Then an example that is not bad but less
than good:
&gt;   For instance, for a document with the following structure:
&gt; 
&gt;   &lt;p class="program"&gt;
&gt;   &lt;l&gt;program p(input, output);&lt;/l&gt;
&gt;   &lt;l&gt;begin&lt;/l&gt;
&gt;   &lt;l&gt;   writeln("Hello world");&lt;/l&gt;
&gt;   &lt;l&gt;end.&lt;/l&gt;
&gt;   &lt;/p&gt;
Have we been told how "l" fits in the content model of "p"?  Would it
be OK if the preceding "p" instance had children other than "l"?
(I hope not.)
Rather than write the content model of "p" so that if "l" is a child,
then all other children must be "l", it would be better to ensure that
"l" is always suitably wrapped in a parent that specializes in "l"
children.
Tantek provides a good example:
&gt;   &lt;blockquote&gt;
&gt;    &lt;l&gt;Peace, peace, Mercutio, peace!&lt;/l&gt;
&gt;    &lt;l&gt;Thou talk'st of nothing.&lt;/l&gt;
&gt;   &lt;/blockquote&gt;
"address" also comes quickly to mind as a suitable parent having
only "l" children.  In fact, "address" and "blockquote" should be
understood as list structures.
Also the program listing in 8.12 should be modeled as a list
structure.
Lists are among the most useful of all models for document markup.
Perhaps
  &lt;list class="program"&gt;
  &lt;l&gt;program p(input, output);&lt;/l&gt;
  &lt;l&gt;begin&lt;/l&gt;
  &lt;l&gt;   writeln("Hello world");&lt;/l&gt;
  &lt;l&gt;end.&lt;/l&gt;
  &lt;/list&gt;
or maybe
  &lt;verbatimlist class="program"&gt;
  &lt;l&gt;program p(input, output);&lt;/l&gt;
  &lt;l&gt;begin&lt;/l&gt;
  &lt;l&gt;   writeln("Hello world");&lt;/l&gt;
  &lt;l&gt;end.&lt;/l&gt;
  &lt;/verbatimlist&gt;
Please note that in suggesting "list" as a generic list structure I am
not suggesting that it be used to encompass present list structures
such as "ol" just as I would not suggest that "span" be used to
encompass present inline structures such as "em".
"verbatimlist" would be a specialized list keyed to the idea that
default presentation of its items (l's) should be in a fixed width
font.
Finally, a non bogus "l" has nothing at all to do with replacing "br".
"br" is still needed occasionally when one needs to punt -- such as
when a long head, whether the old "h1" or new "h", is susceptible
to a bad split.  It is simply not sensible to propose that the content
model for "h1" or "h" contain "l".
And while it is not sensible to allow "l" to be mixed in "p" with
children other than "l", it is sensible to permit "br" in "p" for
occasional use.
"br" should be left in XHTML forever.  Its description in the spec
should, however, say that its use is almost always both undesirable
and unnecessary.  The description should also point out that the
effect of cascading style might be that it is ignored altogether.
                                    -- Bill
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_2" class="issueTitle"><span class= 
"diff-new">l element</span> <span class="pr"><span class=
"diff-new">PR #6326</span></span><br />
<span class="diff-new">State: Feedback</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">After a quite long IRC chat with fantasai and Ian Hickson, I finally see 
some interest in the l element.
Well, not really, since I still think ol/li and div are enough, but I 
can live with it :-)
I think the WD introduced a very big confusion speaking of lines: the l 
element represents, I quote the WD, "a single line of text". Some people 
read this line as "line of poetry" or "line of program", some others 
read it as "visual line".
So a line (l element) is not a line (of poetry) is not a line (well, a 
line).
I strongly recommend (a) a clarification of the definition of the l 
element (b) another name, this one being too confusing with 1 and i, and 
intrinsicly too confusing because a "line" has multiple meanings in 
English having different visual rendering (and that's not the case in 
other languages).
This element meant to serve as a replacement for &lt;br/&gt;, I still think it 
will too drastically complexify wysiwyg editors. I still totally 
disagree with the removal of &lt;br/&gt;.
comment crossposted to www-html-editor and Karl Dubost FHI.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_3" class="issueTitle"><span class= 
"diff-new">The l element</span> <span class="pr"><span class= 
"diff-new">PR #6329</span></span><br />
<span class="diff-new">State: Feedback</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">I think the definition of the l element should read something more
like this:
    The l element represents a semantic line of text (e.g., a line of
    verse or a line of computer code). It is intended as a structured
    replacement for the br element.
    When visually represented, the l element should start on a new
    line and have a line break at the end. Whether the line should
    wrap or not depends on styling properties of the element.
Which is in my opinion much clearer.
It's especially important to separate the current paragraph
(reproduced below), which talks about what the l element is as well as
how it should be visually rendered in one breath. That's a mistake
because it leads people to believe that the l element is just a
renamed, slightly different version of the br element, when in reality
it's fundamentally different.
Here is the current definition:
    The l element contains a sub-paragraph that represents a sinle
    line of text. It is intended as a structured replacement for the
    br element. It contains a piece of text that when visually
    represented should start on a new line, and have a line break at
    the end. Whether the line should wrap or not visually depends on
    styling properties of the element.
-- 
John Lewis
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_4" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6371</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
41. I still think that the removal of B, I and U is a major error for the Web.
    One may want to annotate visually a document without adding any semantic.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_5" class="issueTitle"><span class= 
"diff-new">Re: Updated XHTML 2.0 draft published: Inline text
module, either reduce scope or widen to parts of text in common
use.</span> <span class="pr"><span class="diff-new">PR
#6473</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">The user has a good point - XHTML is pretty
computer-focused. Should we just invite them to introduce their own
module? That's what M12N is all about.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from PR # 7334:
My comments:
...
9.3, 9.6, 9.9, 9.14
Too much emphasis on a narrow field of endevour. Either remove all 
(except 9.3) of these elements, or add other elements corresponding to 
parts of text commonly use in the arts, humanities and other areas of 
science. If the latter, I'd suggest at least:
    &lt;person /&gt; 
    &lt;publication /&gt; for books, journals and even musical or 
    cinematic works.
For example:
&lt;p&gt;&lt;publication xml:lang="de" cite="#marx"&gt;Das Kapital&lt;/publication&gt; was
written by &lt;person id="marx"&gt;Karl Marx&lt;/person&gt;&lt;/p&gt;
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_6" class="issueTitle"><span class= 
"diff-new">Comments about XHTML 2.0 WD5: Section 9.7, example
should use blockcode not p</span> <span class="pr"><span class= 
"diff-new">PR #6490</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 9.7
1. Shouldn't the code example use &lt;blockcode&gt; instead of &lt;p&gt; (especially 
being
    that it's not a paragraph)?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_7" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7,
rename kbd, samp</span> <span class="pr"><span class="diff-new">PR
#6526</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Would clash in an unpleasant way with the
XForms elements of the same name...</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
kbd and samp Elements:
I'd say rename these to input and output so that it can encompass a 
greater range of semantics...
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_8" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7,
strong element equivilent to em</span> <span class="pr"><span
class="diff-new">PR #6527</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">There is not agreement on this
assertion.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
strong Element:
It's semantically identical to the em element.  Remove it.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_9" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7,
sub/sub presentational, remove</span> <span class="pr"><span class= 
"diff-new">PR #6528</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">There has been much discussion on this
issue, and there is no agreement that a subscript is per se
presentational. It represents a semantic concept that is displayed
in some contexts as smaller and below the line, and sometimes as
between brackets, and so on. For instance a subscript i in the
programming language C is written a[i]. The argument for
superscripts is weaker, but symmetry and consistency then suggests
we retain it.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
sub and sup Elements:
Presentational.  Remove it.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_10" class="issueTitle"><span
class="diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec
6.7, little use for var element</span> <span class="pr"><span
class="diff-new">PR #6529</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Thanks for your input. We decided not to
remove it because some people use it, and it does no particular
harm.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
var Element:
I find little use of this, for some reason.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_11" class="issueTitle"><span
class="diff-new">[XHTML2] Comments on WD 5: make white space
preservation part of the standard values for the code and kbd
elements?</span> <span class="pr"><span class="diff-new">PR
#6554</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">All elements preserve space in XHTML 2, so
the author has the opportunity on user agents that support CSS to
specify whether that should be reflected on output.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
13) Section 9.The Inline Text Module
Why not make white space preservation part of the standard values for 
the code and kbd elements?  Since an author might or might not wish to 
have sample output be white-space preserving, that property should be 
handled by the xml:space attribute or the pre element if it is retained 
in that case in that case.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_12" class="issueTitle"><span
class="diff-new">[XHTML2WD5] Ilegal CSS Example</span> <span class= 
"pr"><span class="diff-new">PR #7341</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Don't know if this is right or
not...</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">9.7. The l element
| &lt;p class="program"&gt;
| &lt;l&gt;program p(input, output);&lt;/l&gt;
| &lt;l&gt;begin&lt;/l&gt;
| &lt;l&gt;   writeln("Hello world");&lt;/l&gt;
| &lt;l&gt;end.&lt;/l&gt;
| &lt;/p&gt;
|  .program { counter-reset: linenumber }
|  l:before {
|    position: relative;
|    left: -1em;
|    counter-increment: linenumber;
|    content: counter(linenumber);
|  }
At least in CSS 2.0 generated content can't be positioned. In CSS3 it would
be "l::before". Also "counter(linenumber, decimal-leading-zero);" might be
more appropriate. With the introduction of 'blockcode' it should be used
here:
 &lt;blockcode&gt;
 &lt;l&gt;begin&lt;/l&gt;
 &lt;l&gt;   writeln("Hello world");&lt;/l&gt;
 &lt;l&gt;end&lt;/l&gt;
 &lt;/blockcode&gt;
 blockcode {counter-reset: linenumber;}
 l::before {
   counter-increment: linenumber;
   content: counter(linenumber, decimal-leading-zero);
 }
Christoph P&auml;per
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_13" class="issueTitle"><span
class="diff-new">Be more specific about &lt;abbr/&gt;'s
title</span> <span class="pr"><span class="diff-new">PR
#7345</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Hello dear HTML Editors,
I think the HTML Specifications should be more specific about how to use an 
abbreviation's title attribute.
If I use the same abbreviation, e.g. &lt;abbr&gt;XHTML&lt;/abbr&gt;, in my document more 
than once, should I specify the title always or only on the first occurrence?
This should be specified for XHTML 2.0, I think 
(http://www.w3.org/TR/xhtml2/mod-inline-text.html#s_inline-textmodule)
Greetings and thanks for your food work, dear W3C
- -- 
ITCQIS GmbH
Christian Wolfgang Hujer
Gesch&auml;ftsf&uuml;hrender Gesellschafter
Telefon: +49  (0)89  27 37 04 37
Telefax: +49  (0)89  27 37 04 39
E-Mail: Christian.Hujer@itcqis.com
WWW: http://www.itcqis.com/
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_14" class="issueTitle"><span
class="diff-new">A proposed additional attribute for the
&lt;dfn&gt; element</span> <span class="pr"><span class="diff-new">
PR #7346</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">In theory, a user agent could make use of the &lt;dfn&gt; element to provide 
access to that defining instance from elsewhere within that document, 
even if links have not been explicitly provided.  While I am not aware 
of a user agent that provides that facility at present, I can envision 
one that does so, perhaps by providing access via a right click when 
the cursor is over text elsewhere that matches the content of the &lt;dfn&gt; 
element.
However, there could be a set of related words or phrases for which 
that term also provides a definition, even if it is not convenient to 
include that related word or phrase in the content.  This proposal 
gives a way to have that facility also refer to the definition for 
related terms.
Therefore I propose adding a terms attribute to the &lt;dfn&gt; element that 
would take a comma separated list of related words or phrases.
Examples:
&lt;p&gt;A &lt;dfn terms="children"&gt;child&lt;/dfn&gt; is a bundle of energy that 
produces both grief and joy.&lt;/p&gt;
&lt;p&gt;&lt;dfn terms="metainformation,meta-information,meta information,
meta-data"&gt;Meta data&lt;/dfn&gt; consists of data that is about a set
of data.  Do not confuse with the registered trademark
&lt;a href="www.metadata.com"&gt;Metadata&lt;/a&gt;.&lt;/p&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_15" class="issueTitle"><span
class="diff-new">em and strong</span> <span class="pr"><span class= 
"diff-new">PR #7352</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">"T. Daniel" &lt;tdaniel@adetti.net&gt; writes:
...
&gt; &gt; I disagree. In my documents &lt;em&gt;&lt;em&gt; has a different meaning from
&gt; &lt;strong&gt;.
... 
&gt; &gt; In my style sheets, I generally use:
&gt; &gt; em { font-style: italic }
&gt; &gt; em em { font-style: normal }
&gt; 
&gt; This is in keeping with standard typographical practices in print.
Yes!  For example, \emph{} has order 2 effect in LaTeX.
&gt; I'd prefer it if &lt;strong&gt; isn't trashed, but if it is, I'll learn to live
&gt; without it.
_&lt;em&gt;_ and *&lt;strong&gt;* are usefully different inside xterms (or vt100s)
with user agents such as "lynx" or "w3m".  In my opinion &lt;em&gt; should
be understood to have order 2 meaning at the level of content, while
&lt;strong&gt; should not be a legal child of &lt;strong&gt;.  Because such
content exclusions are not possible in XML DTDs, I think that the
XHTML specification should characterize &lt;strong&gt; at the content level
as idempotent.
(Alas, I don't know any present UA that handles &lt;em&gt; as having order 2
without the intervention of CSS.)
                                    -- Bill
</span>
</pre>
</div>

<div class="issue">
<p id="s_inline-textmodule_issue_16" class="issueTitle"><span
class="diff-new">Suggestion for the &lt;abbr/&gt; Element title
specification</span> <span class="pr"><span class="diff-new">PR
#7353</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Hello dear editors,
I have a suggestion for the &lt;abbr/&gt; Element title specification in case you'd 
decide the title is only required once:
"User Agents should hash all occuring abbreviations with their title, so that 
for multiple occurrences of the same abbreviation within the same document 
instance only the first occurrence is required to carry the title attribute, 
while for all subsequent occurrences of the same abbreviation the element 
markup will be sufficient. User Agents will then display their title in the 
same manner as if the title attribute has been declared.
Example:
&lt;p&gt;&lt;abbr title="Extensible Hypertext Markup Language"&gt;XHTML&lt;/abbr&gt; 2.0 is the 
successor of &lt;abbr&gt;XHTML&lt;/abbr&gt; 1.1, which was the successor of 
&lt;abbr&gt;XHTML&lt;/abbr&gt; 1.0.&lt;/p&gt;
will have the same effect as
&lt;p&gt;&lt;abbr title="Extensible Hypertext Markup Language"&gt;XHTML&lt;/abbr&gt; 2.0 is the 
successor of &lt;abbr title="Extensible Hypertext Markup Language"&gt;XHTML&lt;/abbr&gt; 
1.1, which was the successor of &lt;abbr title="Extensible Hypertext Markup 
Language"&gt;XHTML&lt;/abbr&gt; 1.0.&lt;/p&gt;
I'm no English native speaker, so pleace feel free do with the above what you 
want.
I don't suggest specifying automatic inheritance of abbr title attributes of 
their preceeding abbr elements with the same element content text is a good 
idea, I only suggest it is an idea, another idea would be to say the title 
attribute must always be specified in order to take the full effect of the 
abbreviation or specify the title attribute at good will, I just suggest you 
make some statement about the title attribute concerning its occurence and 
repitition at all.
Good bye
- -- 
ITCQIS GmbH
Christian Wolfgang Hujer
Gesch&auml;ftsf&uuml;hrender Gesellschafter
Telefon: +49  (0)89  27 37 04 37
Telefax: +49  (0)89  27 37 04 39
E-Mail: Christian.Hujer@itcqis.com
WWW: http://www.itcqis.com/
</span>
</pre>
</div>

<h1><a  id="s_hypertextmodule">10.</a>
XHTML Hypertext Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Hypertext Module provides an element that traditionally has
been used in HTML to define hypertext links to other resources.
Although all elements may now play the role of a hyperlink (using
the <a class="aref" href="#adef_attribute-collections_href">
href</a> attribute) or hyperlink anchor (using the <a class="aref"
href="#adef_attribute-collections_id">id</a> attribute), this
element remains for explicit markup of links, though is otherwise
identical in semantics to the <a class="eref" href= 
"#edef_inline-text_span">span</a> element.</p>

<p>This module supports the following element:</p>

<table class="moduledef" border="1" summary="The a element and its 
attributes">
<thead>
<tr>
<th>Element</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_hypertext_a">a</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>
</tbody>
</table>

<p>This module adds the <a class="eref" href="#edef_hypertext_a">
a</a> element to the <a class="csref" href="#cs_Inline">Inline</a>
content set of the <a href="#s_inline-textmodule">Inline Text</a>
Module.</p>

<p>Implementation: <a href="#a_rmodule_Hypertext">RELAX NG</a></p>

<h2><a  id="sec_10.1.">10.1.</a> The <a class=
"edef" id="edef_hypertext_a">a</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>An <a class="eref" href="#edef_hypertext_a">a</a> element
defines an anchor.</p>

<ol>
<li>The <a class="eref" href="#edef_hypertext_a">a</a> element's
content defines the position of the anchor.</li>

<li>An <a class="aref" href="#adef_attribute-collections_href">
href</a> attribute makes this anchor the source anchor of exactly
one link.</li>

<li>An <a class="aref" href="#adef_attribute-collections_id">id</a>
attribute makes this anchor the possible target of other
links.</li>
</ol>

<p>Authors may also create an <a class="eref" href= 
"#edef_hypertext_a">a</a> element that specifies no anchors, i.e.,
that doesn't specify <a class="aref" href= 
"#adef_attribute-collections_href">href</a> , or <a class="aref"
href="#adef_attribute-collections_id">id</a> . Values for these
attributes may be set at a later time through scripts as defined in
the <a href="#s_scriptingmodule">Scripting</a> module.</p>

<div class="example">
<p>In the example that follows, the <a class="eref" href= 
"#edef_hypertext_a">a</a> element defines a link. The source anchor
is the text "W3C Web site" and the destination anchor is
"http://www.w3.org/":</p>

<pre>
For more information about W3C, please consult the 
&lt;a href="http://www.w3.org/"&gt;W3C Web site&lt;/a&gt;. 
</pre>

<p>This link designates the home page of the World Wide Web
Consortium. When a user activates this link in a user agent, the
user agent will retrieve the resource, in this case, an XHTML
document.</p>

<p><a class="xdef" id="s_hypertextmodule_xref_0">User agents
generally render links</a> in such a way as to make them obvious to
users (underlining, reverse video, etc.). The exact rendering
depends on the user agent. Rendering may vary according to whether
the user has already visited the link or not. A possible visual
rendering of the previous link might be:</p>

<pre>
For more information about W3C, please consult the W3C Web site.
                                                   ~~~~~~~~~~~~
</pre>
</div>

<div class="example">
<p>Suppose we define an anchor named "anchor-one" in the file
"one.html".</p>

<pre>
<em>...text before the anchor...</em>
&lt;a id="anchor-one"&gt;This is the location of anchor one.&lt;/a&gt;
<em>...text after the anchor...</em>
</pre>

<p>This creates an anchor around the text "This is the location of
anchor one.". Usually, the contents of <a class="eref" href= 
"#edef_hypertext_a">a</a> are not rendered in any special way when
<a class="eref" href="#edef_hypertext_a">a</a> defines an anchor
only.</p>

<p>Having defined the anchor, we may link to it from the same or
another document. URIs that designate anchors contain a "#"
character followed by the anchor name (the fragment identifier).
Here are some examples of such URIs:</p>

<ul>
<li>An absolute URI: <tt>
http://www.mycompany.com/one.html#anchor-one</tt></li>

<li>A relative URI: <tt>./one.html#anchor-one</tt> or <tt>
one.html#anchor-one</tt></li>

<li>When the link is defined in the same document: <tt>
#anchor-one</tt></li>
</ul>

<p>Thus, a link defined in the file "two.html" in the same
directory as "one.html" would refer to the anchor as follows:</p>

<pre>
<em>...text before the link...</em>
For more information, please consult &lt;a href="./one.html#anchor-one"&gt; anchor one&lt;/a&gt;.
<em>...text after the link...</em>
</pre>
</div>

<div class="example">
<p>The <a class="eref" href="#edef_hypertext_a">a</a> element in
the following example specifies a link (with <a class="aref" href= 
"#adef_attribute-collections_href">href</a> ) and creates a named
anchor (with <a class="aref" href="#adef_attribute-collections_id">
id</a> ) simultaneously:</p>

<pre>
I just returned from vacation! Here's a
&lt;a id="anchor-two" 
   href="http://www.somecompany.com/People/Ian/vacation/family.png"&gt;
photo of my family at the lake.&lt;/a&gt;.
</pre>

<p>This example contains a link to a different type of Web resource
(a PNG image). Activating the link should cause the image resource
to be retrieved from the Web (and possibly displayed if the system
has been configured to do so).</p>
</div>

<div class="note">
<p><em><strong>Note.</strong> User agents are required to find
anchors created by empty <a class="eref" href="#edef_hypertext_a">
a</a> elements.</em></p>
</div>

<h2><a  id="sec_10.2."><span class="diff-new">
10.2.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_hypertextmodule_issue_0" class="issueTitle"><span class= 
"diff-new">[XHTML2] Poor little old &lt;a&gt;</span> <span class=
"pr"><span class="diff-new">PR #6317</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We are addressing the issue of how nested
links behave. However, we have decided that the only element with
"fallback" semantics should be object. The a element will not be
extended to have semantics similar to object.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">Let's face it. There is very little purpose that &lt;a&gt; serves in the 
current working draft. About the only thing it still has going for it 
is that links specified by &lt;a&gt; are still supposed to look like links.
I have an idea that might just revive a reason for &lt;a&gt;, nested &lt;a&gt;'s.
Right now, Mozilla implements nested &lt;a&gt;'s in XHTML1 so that only the 
outer &lt;a&gt; really matters. (The spec says nested &lt;a&gt;'s should not be 
used but that XML provides no way to exclude them. They cannot occur in 
HTML.
However, what if nested &lt;a&gt;'s were treated in a manner similar to 
&lt;object&gt;  That is, suppose we have the following XHTML fragment:
&lt;a href="doc.pdf"&gt;&lt;a href="doc.txt&gt;The Document&lt;/a&gt;&lt;/a&gt;
Now have the behavior of &lt;a&gt; be defined so as to allowed to nest so 
that if the user agent cannot find or use doc.pdf then it tries 
doc.txt. If this sort of nesting behavior for links was resticted to 
just &lt;a&gt; then it would give a reason for &lt;a&gt; to still exist besides 
historical sentiment.  In any case, the effect of nested elements with 
href attributes is something that does need to be addressed in the 
XHTML2 standard.
</span>
</pre>
</div>

<div class="issue">
<p id="s_hypertextmodule_issue_1" class="issueTitle"><span class= 
"diff-new">comments on 2002-12-12 XHTML 2.0 WD: Anchors (sources of
a link) are still mono-target</span> <span class="pr"><span class= 
"diff-new">PR #6388</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I believe that nested anchors and some rules
about how to present them address the multi-target requirements.
-spm</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Important disclaimers:
  (a) The current message expresses my personal opinions ONLY, and
      does NOT reflect the position of my employer.
  (b) The current message is meant to be constructive; criticism is
      always helpful when carefully used.
Comments are extracted from Issue 6211:
8. Anchors (sources of a link) are still mono-target. This is a pity.
   There should be an inline-level element containing a elements. Ex:
     &lt;link&gt; &lt;!-- I am using that name on purpose --&gt;
       &lt;a href="http://www.w3.org/TR/xhtml"&gt;XHTML 2.0&lt;/a&gt;
       &lt;a href="htttp://www.ercim.org/xhtml"&gt;XHTML 2.0
          (Mirror at ERCIM)&lt;/a&gt;
     &lt;/link&gt;
Conclusion:
  As it is in its 2002-12-11 WD, I think that XHTML 2.0 is far
  away from both what the Web Authors are expecting and from what
  could be done to "lead the Web to its full potential".
  The current WD makes some strategic choices (style attribute
  for instance) that seem to me harmful.
  I see no incentive for a Web Author to ever move to XHTML 2 from
  a simple XMLized version of the actual transitional HTML4 (call
  that as you wish). XHTML 2.0 does not contain ANY new key feature
  and seem to get totally rid of all Authors' requests between 1998
  and today.
  From my perspective, XHTML 2.0 as it is today is a failure and the
  work of the HTML WG on this topic should be immediately and
  totally reoriented.
  Once again, the current message expresses ONLY my personal opinions.
Regards,
&lt;/Daniel&gt;
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran&ccedil;ais !
Yahoo! Mail : http://fr.mail.yahoo.com
</span>
</pre>
</div>

<h1><a  id="s_listmodule">11.</a> XHTML List
Module</h1>

<p>This section is <em>normative</em> .</p>

<p>As its name suggests, the List Module provides list-oriented
elements. Specifically, the List Module supports the following
elements and attributes:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes of the List Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_list_dl">dl</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_list_label"><span
class="diff-chg">label</span></a> <span class="diff-chg">?,
((</span> <a class="eref" href="#edef_list_dt"><span class=
"diff-chg">dt</span></a> | <a class="eref" href="#edef_list_dd">
<span class="diff-chg">dd</span></a> <span class="diff-chg">)+
|</span> <a class="eref" href="#edef_list_di"><span class=
"diff-chg">di</span></a> <span class="diff-chg">+)</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_di"><span class="diff-chg">
di</span></a></td>
<td><a class="colref" href="#col_Common"><span class="diff-chg">
Common</span></a></td>
<td class="content"><span class="diff-chg">(</span> <a class="eref"
href="#edef_list_dt"><span class="diff-chg">dt</span></a> <span
class="diff-chg">+,</span> <a class="eref" href="#edef_list_dd">
<span class="diff-chg">dd</span></a> <span class="diff-chg">
*)</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_dt">dt</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_dd">dd</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
<span class="diff-chg">Flow</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_label">label</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_nl">nl</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_list_label">
label</a> , <a class="eref" href="#edef_list_li">li</a> +</td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_ol">ol</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_list_label"><span
class="diff-new">label</span></a> <span class="diff-new">?,</span>
<a class="eref" href="#edef_list_li">li</a> +</td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_ul">ul</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_list_label"><span
class="diff-new">label</span></a> <span class="diff-new">?,</span>
<a class="eref" href="#edef_list_li">li</a> +</td>
</tr>

<tr>
<td><a class="eref" href="#edef_list_li">li</a></td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_list_value"><span class="diff-new">
value</span></a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
<span class="diff-chg">Flow</span></a> <span class="diff-chg">
)*</span></td>
</tr>
</tbody>
</table>

<p id="cs_List">This module also defines the content set List with
the minimal content model <span class="content">(dl | nl | ol |
ul)+</span> and adds this set to the <a class="csref" href=
"#cs_Flow">Flow</a> content set of the <a href=
"#s_block-textmodule">Block Text</a> Module.</p>

<p>Implementation: <a href="#a_rmodule_List">RELAX NG</a></p>

<p>XHTML offers authors several mechanisms for specifying lists of
information. All lists must contain one or more list elements.
Lists may contain:</p>

<ul>
<li>Unordered information.</li>

<li>Ordered information.</li>

<li>Navigation information.</li>

<li>Definitions.</li>
</ul>

<p>The previous list, for example, is an unordered list, created
with the <a class="eref" href="#edef_list_ul">ul</a> element:</p>

<pre class="example">
&lt;ul&gt;
&lt;li&gt;Unordered information. &lt;/li&gt;
&lt;li&gt;Ordered information. &lt;/li&gt;
&lt;li&gt;Navigation information. &lt;/li&gt;
&lt;li&gt;Definitions. &lt;/li&gt;
&lt;/ul&gt;
</pre>

<p>An ordered list, created using the <a class="eref" href= 
"#edef_list_ol">ol</a> element, should contain information where
order should be emphasized, as in a recipe:</p>

<ol>
<li>Mix dry ingredients thoroughly.</li>

<li>Pour in wet ingredients.</li>

<li>Mix for 10 minutes.</li>

<li>Bake for one hour at 300 degrees.</li>
</ol>

<p>Definition lists, created using the <a class="eref" href= 
"#edef_list_dl">dl</a> element, generally consist of a series of
term/definition pairs (although definition lists may have other
applications). Thus, when advertising a product, one might use a
definition list:</p>

<dl>
<dt><strong>Lower cost</strong></dt>

<dd>The new version of this product costs significantly less than
the previous one!</dd>

<dt><strong>Easier to use</strong></dt>

<dd>We've changed the product so that it's much easier to use!</dd>

<dt><strong>Safe for kids</strong></dt>

<dd>You can leave your kids alone in a room with this product and
they won't get hurt (not a guarantee).</dd>
</dl>

<p>defined in XHTML as:</p>

<pre class="example">
&lt;dl&gt;
&lt;dt&gt;&lt;strong&gt;Lower cost&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;The new version of this product costs significantly less than the
previous one!&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Easier to use&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;We've changed the product so that it's much easier to
use!&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;Safe for kids&lt;/strong&gt;&lt;/dt&gt;
&lt;dd&gt;You can leave your kids alone in a room with this product and
they won't get hurt (not a guarantee).&lt;/dd&gt;
&lt;/dl&gt;
</pre>

<p>Lists may also be nested and different list types may be used
together, as in the following example, which is a definition list
that contains an unordered list (the ingredients) and an ordered
list (the procedure):</p>

<dl>
<dt><strong>The ingredients:</strong></dt>

<dd>
<ul>
<li>100 g. flour</li>

<li>10 g. sugar</li>

<li>1 cup water</li>

<li>2 eggs</li>

<li>salt, pepper</li>
</ul>
</dd>

<dt><strong>The procedure:</strong></dt>

<dd>
<ol>
<li>Mix dry ingredients thoroughly.</li>

<li>Pour in wet ingredients.</li>

<li>Mix for 10 minutes.</li>

<li>Bake for one hour at 300 degrees.</li>
</ol>
</dd>

<dt><strong>Notes:</strong></dt>

<dd>The recipe may be improved by adding raisins.</dd>
</dl>

<p>The exact presentation of the three list types depends on the
user agent and/or the stylesheet in effect. Authors must not use
lists purely as a means of indenting text. This is a stylistic
issue and is properly handled by style sheets.</p>

<h2><a  id="sec_11.1.">11.1.</a> Definition lists:
the <a class="edef" id="edef_list_dl">dl</a> <span class=
"diff-chg">,</span> <a class="edef" id="edef_list_di"><span class= 
"diff-chg">di</span></a> <span class="diff-chg">,</span> <a class= 
"edef" id="edef_list_dt">dt</a> <span class="diff-chg">,</span> and
<a class="edef" id="edef_list_dd">dd</a> elements</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>Definition lists vary only slightly from other types of lists in
that list items consist of two parts: a term and a description. The
term is given by the dt element and is restricted to inline
content. The description is given with a dd element that contains
block-level content. <span class="diff-new">The term and its
definition can be grouped within a</span> <a class="eref" href= 
"#edef_list_di"><span class="diff-new">di</span></a> <span class= 
"diff-new">element to help clarify the relationship between a term
and its definition(s).</span></p>

<div class="example">
<p>Here is an example:</p>

<pre>
  
&lt;dl&gt;
<span class="diff-chg">  &lt;di&gt;
    &lt;dt&gt;Dweeb&lt;/dt&gt;
    &lt;dd&gt;young excitable person who may mature
      into a &lt;em&gt;Nerd&lt;/em&gt; or &lt;em&gt;Geek&lt;/em&gt;&lt;/dd&gt;
  &lt;/di&gt;
</span>
<span class="diff-chg">  &lt;di&gt;
    &lt;dt&gt;Hacker&lt;/dt&gt;
    &lt;dd&gt;a clever programmer&lt;/dd&gt;
  &lt;/di&gt;
</span>
<span class="diff-chg">  &lt;di&gt;
    &lt;dt&gt;Nerd&lt;/dt&gt;
    &lt;dd&gt;technically bright but socially inept person&lt;/dd&gt;
  &lt;/di&gt;
</span>
&lt;/dl&gt;
</pre>
</div>

<div class="example">
<p>Here is an example with multiple terms and descriptions:</p>

<pre>
&lt;dl&gt;
   &lt;dt&gt;Center&lt;/dt&gt;
   &lt;dt&gt;Centre&lt;/dt&gt;
   &lt;dd&gt; A point equidistant from all points
              on the surface of a sphere.&lt;/dd&gt;
   &lt;dd&gt; In some field sports, the player who
              holds the middle position on the field, court,
              or forward line.&lt;/dd&gt;
&lt;/dl&gt;
</pre>
</div>

<p>Another application of <a class="eref" href="#edef_list_dl">
dl</a> , for example, is for marking up dialogues, with each dt
naming a speaker, and each dd containing his or her words.</p>

<h2><a  id="sec_11.2.">11.2.</a> The <a class=
"edef" id="edef_list_nl">nl</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>Navigation lists are intended to be used to define collections
of selectable items for presentation in a "navigation" menu. A
navigation list is required to start with a <a class="eref" href= 
"#edef_list_label">label</a> element that defines the label for the
list.</p>

<p>On visual user agents, the default presentation behavior is as
follows:</p>

<ol>
<li>The contents of the <a class="eref" href="#edef_list_label">
label</a> element are presented.</li>

<li>When the <a class="eref" href="#edef_list_label">label</a>
element's content is selected, the navigation list's <a class=
"eref" href="#edef_list_li">li</a> element contents are
displayed.</li>

<li>If an <a class="eref" href="#edef_list_li">li</a> element
contains another <a class="eref" href="#edef_list_nl">navigation
list</a> , that list's label's contents are displayed.</li>

<li>If an <a class="eref" href="#edef_list_li">li</a> element has
an <a class="aref" href="#adef_attribute-collections_href">href</a>
attribute, and that element's contents are selected, the link
defined by the <a class="aref" href= 
"#adef_attribute-collections_href">href</a> attribute is
followed.</li>

<li>If the <a class="eref" href="#edef_list_nl">nl</a> element is
de-selected, <span class="diff-chg">its</span> contents are removed
from the display.</li>
</ol>

<p>It is possible to change this default behavior through the use
of style sheets. The behavior of <a class="eref" href=
"#edef_list_nl">navigation lists</a> in non-visual user agents is
unspecified.</p>

<div class="example">
<p>This example illustrates the basic structure of a nested
navigation list:</p>

<pre>
&lt;nl&gt;
   &lt;label&gt;Contents &lt;/label&gt;
   &lt;li href="#introduction"&gt;Introduction&lt;/li&gt;
   &lt;li&gt;
      &lt;nl&gt;
          &lt;label&gt;Terms&lt;/label&gt;
          &lt;li href="#may"&gt;May&lt;/li&gt;
          &lt;li href="#must"&gt;Must&lt;/li&gt;
          &lt;li href="#should"&gt;Should&lt;/li&gt;
      &lt;/nl&gt;
   &lt;/li&gt;
   &lt;li href="#conformance"&gt;Conformance&lt;/li&gt;
   &lt;li href="#references"&gt;References&lt;/li&gt;
   ...
&lt;/nl&gt;
</pre>
</div>

<h2><a  id="sec_11.3.">11.3.</a> The <a class=
"edef" id="edef_list_ol">ol</a> <span class="diff-chg">,</span> and
<a class="edef" id="edef_list_ul">ul</a> elements</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>Ordered and unordered lists are rendered in an identical manner
except that user agents <span class="diff-new">MUST by
default</span> number ordered list items. User agents may present
those numbers in a variety of ways. Unordered list items are not
numbered.</p>

<p>Both types of lists are made up of sequences of list items
defined by the <a class="eref" href="#edef_list_li">li</a>
element.</p>

<div class="example">
<p>This example illustrates the basic structure of a list.</p>

<pre>
&lt;ul&gt;
   &lt;li&gt; <em>... first list item...</em>&lt;/li&gt;
   &lt;li&gt; <em>... second list item...</em>&lt;/li&gt;
   ...
&lt;/ul&gt;
</pre>
</div>

<h2><a  id="sec_11.4.">11.4.</a> The <a class=
"edef" id="edef_list_li">li</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_list_value"><span class="adef"><span
class="diff-new">value</span></span></a> <span class="diff-new">
=</span> <span class="datatype"><a href="#dt_NUMBER"><span class= 
"diff-new">NUMBER</span></a></span></dt>

<dd><span class="diff-new">This attribute specifies the value to be
used when determining the value of the enumerator on a list item
within an</span> <a class="eref" href="#edef_list_ol"><span class= 
"diff-new">ol</span></a> .</dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_list_li">li</a> element defines
a list item within an ordered, unordered, or navigation list. When
the <a class="aref" href="#adef_attribute-collections_href">
href</a> attribute is defined, the contents of the list item become
a selectable link, just as an <a class="eref" href= 
"#edef_hypertext_a">a</a> element with an <a class="aref" href= 
"#adef_attribute-collections_href">href</a> attribute would be.</p>

<h2><a  id="sec_11.5.">11.5.</a> The <a class=
"edef" id="edef_list_label">label</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_list_label">label</a> element is
used to define a label for <span class="diff-chg">a</span> list.
The contents of the label element are displayed as the title of a
list (or sublist).</p>

<h2><a  id="sec_11.6."><span class="diff-chg">
11.6.</span></a> <span class="diff-chg">Issues</span></h2>

<div class="issue">
<p id="s_listmodule_issue_0" class="issueTitle">more <span class= 
"diff-chg">xhtml 2.0 comments</span> <span class="pr"><span class= 
"diff-chg">PR #6364</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">We already have a title element that lives
in head, and do not want to duplicate it. We will consider
permitting the label on ul, ol, and dl.</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
34. the label element should be called title and should be allowed in ul/ol/dl.
    I already said that I find nl useless.
[34] http://www.w3.org/TR/xhtml2/xhtml2.html#sec_10.5.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_listmodule_issue_1" class="issueTitle"><span class= 
"diff-chg">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-chg">PR #6365</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">The group already agreed to put value back
in. What about start? -spm</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
35. the lack of the value and start attributes on ol and li elements are a
    major mistake extensively discussed in www-style@w3.org.
[35] http://www.w3.org/TR/xhtml2/xhtml2.html#s_listmodule
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_listmodule_issue_2" class="issueTitle"><span class= 
"diff-chg">Fw: [XHTML2] 4th WD comments: Sec 10, remove
&lt;strong&gt; in example in favor of CSS properties.</span> <span
class="pr"><span class="diff-chg">PR #6402</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">'value' is returning</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">----- Original Message -----
From: "Christoph P&ccedil;&Ntilde;er" &lt;christoph.paeper@tu-clausthal.de&gt;
To: &lt;www-html@w3.org&gt;
Sent: Monday, February 03, 2003 7:48 AM
Subject: [XHTML2] 4th WD comments: Sec 10, remove &lt;strong&gt; in example in favor of CSS properties.
This issue was extracted from Issue 6248:
&gt;
&gt; Just a few comments based on the diff marked version:
&gt;
&gt; 10. XHTML List Module
&gt; | &lt;dl&gt;
&gt; | &lt;dt&gt;&lt;strong&gt;Lower cost&lt;/strong&gt;&lt;/dt&gt;
&gt;
&gt; Drop the &lt;strong/&gt;s from the example. Suggest stylesheets instead.
&gt;
&gt; | &lt;dd&gt;young excitable person who may mature
&gt; |    into a &lt;em&gt;Nerd&lt;/em&gt; or &lt;em&gt;Geek&lt;/em&gt;&lt;/dd&gt;
&gt;
&gt; &lt;em/&gt;s should be &lt;dfn/&gt;s, no?
&gt;
&gt; I still don't see a way to continue lists with something like &lt;ol
&gt; continue="#firstpart"&gt;. Neither seem the well known transitional
attributes
&gt; 'start' and/or 'value' be preparing to return.
&gt;
&gt;
&gt;
&gt; Christoph P&ccedil;&Ntilde;er
&gt;
&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_listmodule_issue_3" class="issueTitle"><span class= 
"diff-chg">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7,
tighter association of dd and dt needed.</span> <span class="pr">
<span class="diff-chg">PR #6532</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: Modify and Accept</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">We have introduced a new "di" element to
group definition items within the list. This will help parse the
contents and make the semantic relationship of terms and their
definitions clearer.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
dl, dt, and dd Elements:
I think this needs to be reworked, as there is currently no way to 
associate a dd with a dt other than their positions.
...
</span>
</pre>
</div>

<h1><a  id="s_bidimodule">12.</a> XHTML <span
class="diff-new">Bi-directional Text Attribute Module</span></h1>

<p><span class="diff-new">This section is</span> <em><span class= 
"diff-new">normative</span></em> .</p>

<p><span class="diff-new">The Bi-directional Text module enables
the</span> <a class="colref" href="#col_Bi-directional"><span
class="diff-new">Bi-directional</span></a> <span class="diff-new">
attribute collection.</span></p>

<p><span class="diff-new">Implementation:</span> <a href= 
"#a_rmodule_bidi"><span class="diff-new">RELAX NG</span></a></p>

<h1><a  id="s_editmodule"><span class=
"diff-new">13.</span></a> <span class="diff-new">XHTML Edit
Attributes Module</span></h1>

<p><span class="diff-new">This section is</span> <em><span class= 
"diff-new">normative</span></em> .</p>

<p><span class="diff-new">This module enables the</span> <a class= 
"colref" href="#col_Edit"><span class="diff-new">Edit</span></a>
<span class="diff-new">attribute collection.</span></p>

<p><span class="diff-new">Implementation:</span> <a href= 
"#a_rmodule_Edit_Attributes"><span class="diff-new">RELAX
NG</span></a></p>

<h1><a  id="s_embeddingmodule"><span class= 
"diff-new">14.</span></a> <span class="diff-new">XHTML Embedding
Attributes Module</span></h1>

<p><span class="diff-new">This section is</span> <em><span class= 
"diff-new">normative</span></em> .</p>

<p><span class="diff-new">The Embedding Attributes module enables
the</span> <a class="colref" href="#col_Embedding"><span class= 
"diff-new">Embedding</span></a> <span class="diff-new">attribute
collection.</span></p>

<p><span class="diff-new">Implementation:</span> <a href= 
"#a_rmodule_embedding"><span class="diff-new">RELAX
NG</span></a></p>

<h1><a  id="s_csImgMapmodule"><span class= 
"diff-new">15.</span></a> <span class="diff-new">XHTML Image Map
Attributes Module</span></h1>

<p><span class="diff-new">This section is</span> <em><span class= 
"diff-new">normative</span></em> .</p>

<p><span class="diff-new">The Image Map Attributes Module enables
the</span> <a class="colref" href="#col_Image Map"><span class= 
"diff-new">Image Map</span></a> <span class="diff-new">attribute
collection. If this module is included, the</span> <a href= 
"#s_embeddingmodule"><span class="diff-new">embedding</span></a>
<span class="diff-new">module must also be included.</span></p>

<p><span class="diff-new">Implementation:</span> <a href= 
"#a_rmodule_Image_Attributes"><span class="diff-new">RELAX
NG</span></a></p>

<h2><a  id="sec_15.1."><span class="diff-new">
15.1.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_csImgMapmodule_issue_0" class="issueTitle"><span class= 
"diff-new">Fw: Request for interpretation / clarification of USEMAP
semantics</span> <span class="pr"><span class="diff-new">PR
#607</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Forwarded from www-html.
attinasi@netscape.com (Marc Attinasi) wrote:
&gt; The spec on the usemap attribute is confusing to me (1). The value of 
&gt; the attribute is a URI, however the prose says:
&gt; 
&gt; 'The value of usemap must match the value of the name &lt;http://www.w3.org/TR/html4/struct/objects.html#adef-name-MAP&gt; attribute of the associated MAP &lt;http://www.w3.org/TR/html4/struct/objects.html#edef-MAP&gt; element.'
&gt; 
&gt; I cannot take this literally, because in general practice the value of 
&gt; the usemap attribute actually has a '#' and then the name of a MAP 
&gt; element, which is a URI specification. So, my question is this: can the 
&gt; value of the usemap attribute refer to a MAP element on another page? 
&gt; For example, are the following legal:
&gt; 
&gt; &lt;img SRC="map1.gif" USEMAP="map2.html#imagemap"&gt;
&gt; 
&gt; &lt;img SRC="map1.gif" USEMAP="http://www.attinasi.org/map2.html#imagemap"&gt;
&gt; 
&gt; If not, then can the value also refer to a map on the same page, but 
&gt; referenced using a full URL? For example, consider this:
&gt; 
&gt; (in the file map2.html)
&gt; 
&gt; &lt;img SRC="map1.gif" USEMAP="map2.html#imagemap"&gt;
&gt; 
&gt; 
&gt; Thanks,
&gt; - marc
&gt; 
&gt; 
&gt; [1] http://www.w3.org/TR/html4/struct/objects.html#adef-usemap
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_1" class="issueTitle"><span class= 
"diff-new">Re: Request for interpretation / clarification of USEMAP
semantics</span> <span class="pr"><span class="diff-new">PR
#609</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">OK, per my action item from today's call, here's my old test case:
    http://www.w3.org/People/mimasa/test/imagemap/
and its results:
    http://www.w3.org/People/mimasa/test/imagemap/results
Relevant thread:
    http://lists.w3.org/Archives/Member/w3c-html-wg/2000JulSep/thread#103
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_2" class="issueTitle"><span class= 
"diff-new">Re: Request for interpretation / clarification of USEMAP
semantics</span> <span class="pr"><span class="diff-new">PR
#610</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">Actually, I think that your test might be backwards.  Or I don't know what an
IDREF is.  I think an IDREF is an attribute value that is a bare word
correlating to an ID.  So if I have an element whose ID is set to shane, an
IDREF to that element would be "shane".  In your source code you call this a
pseudo-IDREF, and you call "#shane" an IDREF.  I don't think that is right.
Masayasu Ishikawa wrote:
&gt; OK, per my action item from today's call, here's my old test case:
&gt;
&gt;     http://www.w3.org/People/mimasa/test/imagemap/
&gt;
&gt; and its results:
&gt;
&gt;     http://www.w3.org/People/mimasa/test/imagemap/results
&gt;
&gt; Relevant thread:
&gt;
&gt;     http://lists.w3.org/Archives/Member/w3c-html-wg/2000JulSep/thread#103
&gt;
&gt; Regards,
&gt; --
&gt; Masayasu Ishikawa / mimasa@w3.org
&gt; W3C - World Wide Web Consortium
--
Shane P. McCarron                     Phone: +1 763 786-8160 x120
Managing Director                       Fax: +1 763 786-8180
ApTest Minnesota                       Inet: shane@aptest.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_3" class="issueTitle"><span class= 
"diff-new">Re: Request for interpretation / clarification of USEMAP
semantics</span> <span class="pr"><span class="diff-new">PR
#611</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">shane@aptest.com wrote:
&gt; I think an IDREF is an attribute value that is a bare word
&gt; correlating to an ID.  So if I have an element whose ID is set to shane, an
&gt; IDREF to that element would be "shane".
Right.
&gt; In your source code you call this a
&gt; pseudo-IDREF
Because this old test case uses HTML 4, and in HTML 4 the attribute
value of the usemap attribute is NOT defined as IDREF, that's why
I called it as "pseudo" IDREF.
I haven't tested modular XHTML document with XHTML user agents yet.
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_4" class="issueTitle"><span class= 
"diff-new">[xhtml2] Client-Side Image Map Module hard to
find</span> <span class="pr"><span class="diff-new">PR
#6198</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Restored in the third draft, will be
reorganized in future draft.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">My first point is, it's hard to find the image maps;
it kind of looks like it's been forgotten in the Table
of contents
Now, have a look at this snippet, copied from 
http://www.w3.org/TR/2002/WD-xhtml2-20021211/mod-csImgMap.html#sec_0.2.1.
---
&lt;html xmlns="http://www.w3.org/2002/06/xhtml2"&gt;
   &lt;head&gt;
      &lt;title&gt;The cool site!&lt;/title&gt;
   &lt;/head&gt; 
   &lt;body&gt;
     &lt;p src="navbar1.png" type="image/png"
usemap="#map1"&gt; 
       &lt;map id="map1"&gt;
         &lt;nl&gt;
           &lt;label&gt;Navigate the site:&lt;/label&gt;
           &lt;li href="guide.html" shape="rect"
coords="0,0,118,28"&gt;
           Access Guide&lt;/li&gt; 
           &lt;li href="shortcut.html" shape="rect"
coords="118,0,184,28"&gt;
           Go&lt;/li&gt; 
           &lt;li href="search.html" shape="circle"
coords="184,200,60"&gt;
           Search&lt;/li&gt;
           &lt;li href="top10.html" shape="poly"
coords="276,0,276,28,100,200,50,50,276,0"&gt;
           Top Ten&lt;/li&gt;
         &lt;/nl&gt;
       &lt;/map&gt; 
      &lt;/p&gt;
   &lt;/body&gt;
&lt;/html&gt; 
---
the map is not inside an &lt;object&gt;, as the text states,
but it's inside a &lt;p&gt; tag - I'm sure this is a mistake
- the example below this one does the same, but the
last example is correct (it uses an &lt;object&gt; )
--- Masayasu Ishikawa &lt;mimasa@w3.org&gt; wrote:
&gt; 
&gt; The W3C HTML Working Group has published the
&gt; following documents
&gt; recently.
&gt; 
&gt; Modularization of XHTML in XML Schema
&gt; 
&gt;   W3C Working Draft 9 December 2002
&gt;   Available at:
&gt;
http://www.w3.org/TR/2002/WD-xhtml-m12n-schema-20021209
&gt; 
&gt;   This is the Last Call Working Draft of
&gt; "Modularization of XHTML in
&gt;   XML Schema".  After going through Last Call, this
&gt; document will be
&gt;   integrated into a new edition of Modularization of
&gt; XHTML.  The Last
&gt;   Call review period ends 31 January 2003.  Please
&gt; send your Last Call
&gt;   comments to www-html-editor@w3.org, archived at:
&gt;  
&gt; http://lists.w3.org/Archives/Public/www-html-editor/
&gt; 
&gt; XHTML 2.0
&gt; 
&gt;   W3C Working Draft 11 December 2002
&gt;   Available at:
&gt; http://www.w3.org/TR/2002/WD-xhtml2-20021211
&gt; 
&gt;   This is the second public Working Draft of XHTML
&gt; 2.0.  The HTML
&gt;   Working Group thanks the community for sending a
&gt; lot of comments
&gt;   on the first draft published in August 2002. 
&gt; While not all of
&gt;   those comments are reflected in the second draft,
&gt; the Working Group
&gt;   is actively working on resolving those issues. 
&gt; Some unresolved
&gt;   issues are marked as issues in the draft, and more
&gt; are under
&gt;   discussion.
&gt; 
&gt;   This document is still very much under
&gt; development, and should in
&gt;   no way be considered stable, nor should be
&gt; referenced for any
&gt;   purposes whatsoever.  This draft *does not*
&gt; address the issues
&gt;   revolving around the use of XLink by XHTML 2.
&gt; Those issues are
&gt;   being worked independent of the evolution of this
&gt; specification.
&gt;   Those issues should, of course, be resolved as
&gt; quickly as possible,
&gt;   and the resolution will be reflected in a future
&gt; draft.
&gt; 
&gt;   Comments on this document should be sent to
&gt; www-html-editor@w3.org.
&gt; 
&gt; Of cource public discussion on these documents may
&gt; take place here.
&gt;  
&gt; Regards,
&gt; -- 
&gt; Masayasu Ishikawa / mimasa@w3.org
&gt; W3C - World Wide Web Consortium
&gt; HTML Activity Lead, Team Contact for the HTML WG
&gt; 
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_5" class="issueTitle"><span class= 
"diff-new">Fw: [XHTML2] 4th WD comments: section 6.7 map/usemap/id
not needed</span> <span class="pr"><span class="diff-new">PR
#6396</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">----- Original Message -----
From: "Christoph P&ccedil;&Ntilde;er" &lt;christoph.paeper@tu-clausthal.de&gt;
To: &lt;www-html@w3.org&gt;
Sent: Monday, February 03, 2003 7:48 AM
Subject: [XHTML2] 4th WD comments: section 6.7 map/usemap/id not needed
This issue was extracted from Issue 6248:
&gt;
&gt; Just a few comments based on the diff marked version:
&gt;
&gt; 6.7. Image Map Attribute Collection
&gt;
&gt; I don't see the need for the 'map'/'usemap'/'id' combination any more,given
&gt; that the element that references the map graphic can also contain thelinks:
&gt;
&gt;   &lt;nl src="navbar1.png" type="image/png" usemap="#"&gt;
&gt;     &lt;label&gt;Navigate the site:&lt;/label&gt;
&gt;     &lt;li href="guide.html" shape="rect" coords="0,0,118,28"&gt;Access Guide&lt;/li&gt;
&gt;   ...
&gt;
&gt; Christoph P&ccedil;&Ntilde;er
&gt;
&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_6" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: section 11.2, change
use of object in examples to p or another text module
element</span> <span class="pr"><span class="diff-new">PR
#6455</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
17) Section 11.2 The map element
With the embedding attributes now found in a wide range of elements, 
there appears to be no need to use object in XHTML 2 to achieve the 
structure given by the examples in this section. Changing all object 
references to p or other elements from the Text Module should be done.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_7" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: Add ellipse to shape of image
maps</span> <span class="pr"><span class="diff-new">PR
#6546</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
7) Section 6.7 Image Map Attribute Collection
Could the image map shapes be more closely aligned with the Basic 
Shapes Module from SVG?  To completely do so, three changes that can be 
separately implemented would be required.
7a) Ellipses
Add "ellipse" to the list of values for the shape attribute.  Ellipse 
would expect four coordinates to be provided:
 center-x, center-y, radius-x, radius-y.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_8" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: Add rounded rectangles to
shape of image maps</span> <span class="pr"><span class="diff-new">
PR #6547</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
7) Section 6.7 Image Map Attribute Collection
Could the image map shapes be more closely aligned with the Basic 
Shapes Module from SVG?  To completely do so, three changes that can be 
separately implemented would be required.
7b) Rounded Rectangles
Add rounded rectangles to the possible shapes.  This would mean that 
when the shape attribute is "rect", That four, five, or six coordinates 
could be provided.  When four are provided, no rounding occurs.  When 
five are provided, the fifth coordinate is used as the rounding radius 
for the corners.  When six are provided, the fifth coordinate is used 
as the horizontal rounding radius (radius-x) and the sixth is used as 
the vertical rounding radius (radius-y).
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_9" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: Change Image Map Rectangles
from LTRB to LTWH</span> <span class="pr"><span class="diff-new">PR
#6548</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
7) Section 6.7 Image Map Attribute Collection
Could the image map shapes be more closely aligned with the Basic 
Shapes Module from SVG?  To completely do so, three changes that can be 
separately implemented would be required.
7c) Change Rectangles from LTRB to LTWH
This change gives no new ability but only serves to align the way 
rectangles are specified in XHTML with the way they are specified in 
SVG.  Whether this change should be made it boils down to whether it is 
considered more important to have consistency with SVG or with previous 
versions of (X)HTML.  It definitely should be made only if the other 
two changes are also made, since without the other changes, there is no 
reason to make this change to impose consistency with SVG, as the lack 
of all the basic filled shaped that SVG provides means that there could 
be no consistency.
If the change is made made, then the first four coordinates provided 
for a rectangle would be changed from:
  left-x top-y right-x bottom-y
to:
  left-x top-y width-x height-y
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_csImgMapmodule_issue_10" class="issueTitle"><span class= 
"diff-new">(Image)Maps in XHTML 2</span> <span class="pr"><span
class="diff-new">PR #7357</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
</p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Hi all,
Many web authors use image maps. But image maps are only presentational as
they link *different regions of a picture* to other ressources. So, they are
binded to the presentation of the picture. As presentational they shouldn't
be represented directly in XHTML 2.
Another disadvantage is that XHTML 2 is limited to *image* maps only, there
may (in future) be other forms of maps, like "sound maps", "3d image maps",
..., maybe even "xhtml document maps" or "smell maps".
Regions of a picture (or a sound, ...) should'nt be represented in XHTML,
they should be "selected" by URI fragment identifiers similar to xpath as
regions are *fragments* of a ressource.
By eliminating the representation of "picture regions" from XHTML 2, maps in
XHTML 2 can be extended (to sound maps, ...) and be changed in future
without changing XHTML 2 (or future versions).
Someone should publish a syntax for a fragment identifier for each group of
ressource, beginning with images, e.g.:
(see example in XHTML 2: 6.7. Image Map Attribute Collection)
... &lt;p src="navbar1.png" type="image/png" usemap="#map1"&gt;
... &lt;li href="guide.html" shape="rect" coords="0,0,118,28"&gt;
would be: navbar1.png#rect(0,0,118,28)
(other forms, selectors, ... can be easily added)
Now you could write the whole image map as:
...
&lt;body&gt;
     &lt;p href="navbar1.png" type="image/png" rel="map"&gt;
         &lt;nl&gt;
           &lt;label&gt;Navigate the site:&lt;/label&gt;
           &lt;li href="guide.html" src="navbar1.png#rect(0,0,118,28)"&gt;
           Access Guide&lt;/li&gt;
           &lt;li href="shortcut.html" src="navbar1.png#rect(118,0,184,28)"&gt;
           Go&lt;/li&gt;
           &lt;li href="search.html" src="navbar1.png#circle(84,200,60)"&gt;
           Search&lt;/li&gt;
           &lt;li href="top10.html"
src="navbar1.png#poly(276,0,276,28,100,200,50,50,276,0)"&gt;
           Top Ten&lt;/li&gt;
         &lt;/nl&gt;
      &lt;/p&gt;
   &lt;/body&gt;
...
or (using xml:base) (in *some* cases [when using only "external" URIs] even
simpler):
...
&lt;body&gt;
     &lt;p xml:base="navbar1.png" href="#" type="image/png" rel="map"&gt;
         &lt;nl&gt;
           &lt;label&gt;Navigate the site:&lt;/label&gt;
           &lt;li href="http://example.org/guide.html" src="#rect(0,0,118,28)"&gt;
           Access Guide&lt;/li&gt;
           &lt;li href="http://example.org/shortcut.html"
src="#rect(118,0,184,28)"&gt;
           Go&lt;/li&gt;
           &lt;li href="http://example.org/search.html"
src="#circle(84,200,60)"&gt;
           Search&lt;/li&gt;
           &lt;li href="http://example.org/top10.html"
src="#poly(276,0,276,28,100,200,50,50,276,0)"&gt;
           Top Ten&lt;/li&gt;
         &lt;/nl&gt;
      &lt;/p&gt;
   &lt;/body&gt;
...
I will send this mail to both www-html@w3.org and www-html-editor@w3.org as
it's a proposal for XHTML 2, but also needs discussion.
 Rafael Gieschke
</span>
</pre>
</div>

<h1><a  id="s_linkmodule"><span class=
"diff-new">16.</span></a> <span class="diff-new">XHTML</span>
Linking Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Link Module defines an element that can be used to define
links to external resources. These resources are often used to
augment the user agent's ability to process the associated XHTML
document. The element and attributes included in this module
are:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes for Link Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_link_link">link</a></td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_link_media">media</a> ( <span class="datatype">
<a href="#dt_MediaDesc">MediaDesc</a></span> ),</td>
<td class="content">EMPTY</td>
</tr>
</tbody>
</table>

<p>When this module is used, it adds the <a class="eref" href= 
"#edef_link_link">link</a> element to the content model of the <a
class="eref" href="#edef_structure_head">head</a> element as
defined in the <a href="#s_structuremodule">Structure Module</a>
.</p>

<p>Implementation: <a href="#a_rmodule_Link">RELAX NG</a></p>

<h2><a  id="sec_16.1."><span class="diff-chg">
16.1.</span></a> The <a class="edef" id="edef_link_link">link</a>
element</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_link_media"><span class="adef">
media</span></a> = <span class="datatype"><a href="#dt_MediaDesc">
MediaDesc</a></span></dt>

<dd>The value of this attribute specifies the type of media for
which the element is intended.</dd>
</dl>
</div>

<p>This element defines a link. Unlike <a class="eref" href= 
"#edef_hypertext_a">a</a> , it may only appear in the <a class=
"eref" href="#edef_structure_head">head</a> section of a document,
although it may appear any number of times. Although <a class=
"eref" href="#edef_link_link">link</a> has no content, it conveys
relationship information that may be rendered by user agents in a
variety of ways (e.g., a tool-bar with a drop-down menu of
links).</p>

<div class="example">
<p>This example illustrates how several <a class="eref" href= 
"#edef_link_link">link</a> definitions may appear in the <a class= 
"eref" href="#edef_structure_head">head</a> section of a document.
The current document is "Chapter2.html". The <a class="aref" href= 
"#adef_attribute-collections_rel">rel</a> attribute specifies the
relationship of the linked document with the current document. The
values "Index", "Next", and "Prev" are explained in the section on
<span class="datatype"><a href="#dt_LinkTypes">link
types</a></span> .</p>

<pre>
&lt;head&gt;
  &lt;title&gt;Chapter 2&lt;/title&gt;
  &lt;link rel="Index" href="../index.html"/&gt;
  &lt;link rel="Next"  href="Chapter3.html"/&gt;
  &lt;link rel="Prev"  href="Chapter1.html"/&gt;
&lt;/head&gt;
</pre>
</div>

<h3><a  id="sec_16.1.1."><span class="diff-chg">
16.1.1.</span></a> Forward and reverse links</h3>

<p>While the <a class="aref" href=
"#adef_attribute-collections_rel">rel</a> attribute specifies a
relationship <em>from</em> this document <em>to</em> another
resource, the <a class="aref" href=
"#adef_attribute-collections_rev">rev</a> attribute specifies the
reverse relationship.</p>

<p>Consider two documents A and B.</p>

<pre>
Document A:       &lt;link href="docB" rel="index"/&gt;
</pre>

<p>Has exactly the same meaning as:</p>

<pre>
Document B:       &lt;link href="docA" rev="index"/&gt;
</pre>

<p>namely that document B is the index for document A.</p>

<p>Both the <a class="aref" href="#adef_attribute-collections_rel">
rel</a> and <a class="aref" href="#adef_attribute-collections_rev">
rev</a> attributes may be specified simultaneously.</p>

<h3><a  id="link_stylesheets"><span class= 
"diff-chg">16.1.2.</span></a> Links and external style sheets</h3>

<p>When the <a class="eref" href="#edef_link_link">link</a> element
links an external style sheet to a document, the <a class="aref"
href="#adef_attribute-collections_type">type</a> attribute
specifies the style sheet language and the <a class="aref" href= 
"#adef_link_media">media</a> attribute specifies the intended
rendering medium or media. User agents may save time by retrieving
from the network only those style sheets that apply to the current
device.</p>

<p><span class="datatype"><a href="#dt_MediaDesc">Media
descriptors</a></span> are further discussed under Attribute
Types.</p>

<h3><a  id="sec_16.1.3."><span class="diff-chg">
16.1.3.</span></a> Links and search engines</h3>

<p>Authors may use the <a class="eref" href="#edef_link_link">
link</a> element to provide a variety of information to search
engines, including:</p>

<ul>
<li>Links to alternate versions of a document, written in another
human language.</li>

<li>Links to alternate versions of a document, designed for
different media, for instance a version especially suited for
printing.</li>

<li>Links to the starting page of a collection of documents.</li>
</ul>

<p>The examples below illustrate how language information, media
types, and link types may be combined to improve document handling
by search engines.</p>

<div class="example">
<p>The following example shows how to use the <a class="aref" href= 
"#adef_attribute-collections_xml:lang">xml:lang</a> attribute to
indicate to a search engine where to find Dutch, Portuguese, and
Arabic versions of a document. Note that this also indicates that
the value of the <a class="aref" href= 
"#adef_attribute-collections_title">title</a> attribute for the <a
class="eref" href="#edef_link_link">link</a> element designating
the French manual is in French.</p>

<pre>
&lt;head&gt;
&lt;title&gt;The manual in English&lt;/title&gt;
&lt;link title="The manual in Dutch"
      rel="alternate"
      xml:lang="nl" 
      href="http://example.com/manual/dutch.html"/&gt;
&lt;link title="The manual in Portuguese"
      rel="alternate"
      xml:lang="pt" 
      href="http://example.com/manual/portuguese.html"/&gt;
&lt;link title="The manual in Arabic"
      rel="alternate"
      xml:lang="ar" 
      href="http://example.com/manual/arabic.html"/&gt;
&lt;link lang="fr" title="La documentation en Fran&amp;ccedil;ais"
      rel="alternate"
      xml:lang="fr"
      href="http://example.com/manual/french.html"/&gt;
&lt;/head&gt;
</pre>
</div>

<div class="example">
<p>In the following example, we tell search engines where to find
the printed version of a manual.</p>

<pre>
&lt;head&gt;
&lt;title&gt;Reference manual&lt;/title&gt;
&lt;link media="print" 
      title="The manual in PostScript"
      type="application/postscript"
      rel="alternate"
      href="http://example.com/manual/postscript.ps"/&gt;
&lt;/head&gt;
</pre>
</div>

<div class="example">
<p>In the following example, we tell search engines where to find
the front page of a collection of documents.</p>

<pre>
&lt;head&gt;
&lt;title&gt;Reference manual -- Chapter 5&lt;/title&gt;
&lt;link rel="Start" title="The first chapter of the manual"
      type="text/html"
      href="http://example.com/manual/start.html"/&gt;
&lt;/head&gt;
</pre>
</div>

<h1><a  id="s_metamodule"><span class=
"diff-chg">17.</span></a> XHTML Metainformation Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Metainformation Module defines an element that describes
information within the declarative portion of a document (in XHTML
within the <a class="eref" href="#edef_structure_head">head</a>
element). This module includes the following element:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes for Metainformation Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td>meta</td>
<td><a class="colref" href="#col_Common">Common</a> , name ( <span
class="datatype"><a href="#dt_NMTOKEN">NMTOKEN</a></span> )</td>
<td class="content">( ( PCDATA | <a class="csref" href=
"#cs_Inline">Inline</a> )* | meta+ )</td>
</tr>
</tbody>
</table>

<p>When this module is selected, the <a class="eref" href= 
"#edef_meta_meta">meta</a> element is added to the content model of
the <a class="eref" href="#edef_structure_head">head</a> element as
defined in the <a href="#s_structuremodule">Structure</a>
Module.</p>

<p>Implementation: <a href="#a_rmodule_Metainformation">RELAX
NG</a></p>

<h2><a  id="sec_17.1."><span class="diff-chg">
17.1.</span></a> The <a class="edef" id="edef_meta_meta">meta</a>
element</h2>

<p>For the following attributes, the permitted values and their
interpretation are <a class="aref" href="#adef_structure_profile">
profile</a> dependent:</p>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_meta_name"><span class="adef">
name</span></a> = <span class="datatype"><a href="#dt_NMTOKEN">
NMTOKEN</a></span></dt>

<dd>This attribute identifies the property name. This
recommendation does not specify legal values for this
attribute.</dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_meta_meta">meta</a> element can
be used to identify properties of a document (e.g., author,
expiration date, a list of key words, etc.) and assign values to
those properties. This specification does not define a normative
set of properties.</p>

<p>Each <a class="eref" href="#edef_meta_meta">meta</a> element
specifies a property/value pair. The <a class="aref" href= 
"#adef_meta_name">name</a> attribute identifies the property and
the content of the element specifies the property's value.</p>

<div class="example">
<p>For example, the following declaration sets a value for the
<code>Author</code> property:</p>

<pre>
&lt;meta &gt;Steven Pemberton&lt;/meta&gt;
</pre>
</div>

<div class="note">
<p><em><strong>Note.</strong> The <a class="eref" href= 
"#edef_meta_meta">meta</a> element is a generic mechanism for
specifying meta data. However, some XHTML elements and attributes
already handle certain pieces of meta data and may be used by
authors instead of <a class="eref" href="#edef_meta_meta">meta</a>
to specify those pieces: the <a class="eref" href= 
"#edef_structure_title">title</a> element, the <a class="eref"
href="#edef_block-text_address">address</a> element, the <a class= 
"aref" href="#adef_attribute-collections_edit">edit</a> and related
attributes, the <a class="aref" href= 
"#adef_attribute-collections_title">title</a> attribute, and the <a
class="aref" href="#adef_attribute-collections_cite">cite</a>
attribute.</em></p>
</div>

<div class="note">
<p><em><strong>Note.</strong> When a property specified by a <a
class="eref" href="#edef_meta_meta">meta</a> element takes a value
that is a <span class="datatype"><a href="#dt_URI">URI</a></span> ,
some authors <span class="index-inst" title="meta data::LINK vs
meta"><a >prefer</a></span> to specify the
meta data via the <a class="eref" href="#edef_link_link">link</a>
element. Thus, the following meta data declaration:</em></p>

<pre>
&lt;meta name="DC.identifier"&gt;http://www.rfc-editor.org/rfc/rfc3236.txt&lt;/meta&gt;
</pre>

<p><em>might also be written:</em></p>

<pre>
&lt;link rel="DC.identifier"
         type="text/plain"
         href="http://www.rfc-editor.org/rfc/rfc3236.txt"/&gt;
</pre>
</div>

<h3><a  id="sec_17.1.1."><span class="diff-chg">
17.1.1.</span></a> meta and search engines</h3>

<p>A common use for <a class="eref" href="#edef_meta_meta">meta</a>
is to specify keywords that a <span class="index-inst" title= 
"search engine::helping"><a >search
engine</a></span> may use to improve the quality of search results.
When several <a class="eref" href="#edef_meta_meta">meta</a>
elements provide language-dependent information about a document,
search engines may filter on the <a class="aref" href= 
"#adef_attribute-collections_xml:lang">xml:lang</a> attribute to
display search results using the language preferences of the user.
For example,</p>

<pre class="example">
&lt;!-- For speakers of US English --&gt;
&lt;meta  xml:lang="en-us"&gt;vacation, Greece, sunshine&lt;/meta&gt;
&lt;!-- For speakers of British English --&gt;
&lt;meta  xml:lang="en"&gt;holiday, Greece, sunshine&lt;/meta&gt;
&lt;!-- For speakers of French --&gt;
&lt;meta  xml:lang="fr"&gt;vacances, Gr&amp;egrave;ce, soleil&lt;/meta&gt;
</pre>

<p>The effectiveness of search engines can also be increased by
using the <a class="eref" href="#edef_link_link">link</a> element
to specify links to translations of the document in other
languages, links to versions of the document in other media (e.g.,
PDF), and, when the document is part of a collection, links to an
appropriate starting point for browsing the collection.</p>

<h3><a  id="sec_17.1.2."><span class="diff-chg">
17.1.2.</span></a> meta and RDF</h3>

<h3><a  id="sec_17.1.3."><span class="diff-chg">
17.1.3.</span></a> meta data profiles</h3>

<p>The <a class="aref" href="#adef_structure_profile">profile</a>
attribute of the <a class="eref" href="#edef_structure_html">
html</a> element specifies the location of a <span class=
"index-def" title="profile|meta data::profiles for"><a name= 
"didx-profile">meta data profile.</a></span> The value of the <a
class="aref" href="#adef_structure_profile">profile</a> attribute
is a URI. User agents may use this URI in two ways:</p>

<ul>
<li>As a globally unique name. User agents may be able to recognize
the name (without actually retrieving the profile) and perform some
activity based on known conventions for that profile. For instance,
search engines could provide an interface for searching through
catalogs of XHTML documents, where these documents all use the same
profile for representing catalog entries.</li>

<li>As a link. User agents may dereference the URI and perform some
activity based on the actual definitions within the profile (e.g.,
authorize the usage of the profile within the current XHTML
document). This specification does not define formats for
profiles.</li>
</ul>

<div class="example">
<p>This example refers to a hypothetical profile that defines
useful properties for document indexing. The properties defined by
this profile -- including "author", "copyright", "keywords", and
"date" -- have their values set by subsequent <a class="eref" href= 
"#edef_meta_meta">meta</a> declarations.</p>

<pre>
 &lt;html ... profile="http://www.acme.com/profiles/core"&gt;
  &lt;head&gt;
      &lt;title&gt;How to complete Memorandum cover sheets&lt;/title&gt;
      &lt;meta &gt;John Doe&lt;/meta&gt;
      &lt;meta &gt;&amp;copy; 1997 Acme Corp.&lt;/meta&gt;
      &lt;meta &gt;corporate,guidelines,cataloging&lt;/meta&gt;
      &lt;meta &gt;1994-11-06T08:49:37+00:00&lt;/meta&gt;
 &lt;/head&gt;
...
</pre>
</div>

<h2><a  id="sec_17.2."><span class="diff-new">
17.2.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_metamodule_issue_0" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6335</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We believe that metadata should remain in
the document head. However, an exploration of binding metadata to
IDs to facilitate element-level binding will be placed on our
agenda.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">More comments about XHTML 2.0. Each entry below has references at the end of
the message. Message x-posted to www-html-editor.
This issue as extracted from issue 6323:
5. metadata meta elements are only allowed at document's level but can't be
    scoped on a per-element basis
[5] http://www.w3.org/TR/xhtml2/xhtml2.html#sec_13.1.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_1" class="issueTitle"><span class= 
"diff-new">comments on 2002-12-12 XHTML 2.0 WD: Section 12.1,
minimal set of meta properties not needed</span> <span class="pr">
<span class="diff-new">PR #6390</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">related to 6410, 6411 -- other proposals on
preferable recommendations.l</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Important disclaimers:
  (a) The current message expresses my personal opinions ONLY, and
      does NOT reflect the position of my employer.
  (b) The current message is meant to be constructive; criticism is
      always helpful when carefully used.
Comments are extracted from Issue 6211:
10. section 12.1: "We should specify a minimal set of useful meta
   properties". I disagree with that. The HTML WG should specify a
   MAXIMAL set of useful meta properties. Web authors have consistently
   requested extensions to the HTML 4 meta/name values and it would be
   a serious error not to listen to these requests.
     last-editor
     last-edited
     last-edited-by
     creator
     created
     created-by (was generator ?)
     ...
Conclusion:
  As it is in its 2002-12-11 WD, I think that XHTML 2.0 is far
  away from both what the Web Authors are expecting and from what
  could be done to "lead the Web to its full potential".
  The current WD makes some strategic choices (style attribute
  for instance) that seem to me harmful.
  I see no incentive for a Web Author to ever move to XHTML 2 from
  a simple XMLized version of the actual transitional HTML4 (call
  that as you wish). XHTML 2.0 does not contain ANY new key feature
  and seem to get totally rid of all Authors' requests between 1998
  and today.
  From my perspective, XHTML 2.0 as it is today is a failure and the
  work of the HTML WG on this topic should be immediately and
  totally reoriented.
  Once again, the current message expresses ONLY my personal opinions.
Regards,
&lt;/Daniel&gt;
___________________________________________________________
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en fran&ccedil;ais !
Yahoo! Mail : http://fr.mail.yahoo.com
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_2" class="issueTitle"><span class= 
"diff-new">WD-xhtml2-20030131: Typos and Queries: section 13,
reference Dublin Core to encourage good practice</span> <span
class="pr"><span class="diff-new">PR #6410</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">related to 6411/6390</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 6305:
Hi,
Below are some more thoughts I have on the fourth public Working Draft
of XHTML 2.0:
  ...
  * 13. XHTML Metainformation Module.  To encourage good practice, would
    it be better to make more reference to Dublin Core?  For example,
    use "DC.Creator" instead of "Author".
  ...
I'd like to add, I think the HTML Working Group has done a sterling job
so far, and I'll look forward to seeing the first public DTD and XML
Schema.  :o)
Thanks,
Dave
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_3" class="issueTitle"><span class= 
"diff-new">WD-xhtml2-20030131: Typos and Queries: section 13.1.1
suggested change to example</span> <span class="pr"><span class= 
"diff-new">PR #6411</span></span><br />
<span class="diff-new">State: Suspended</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Suggestions to refer to DC more normatively
have been made, decision on any issue that proposes it pending
until meta decision is made.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 6305:
Hi,
Below are some more thoughts I have on the fourth public Working Draft
of XHTML 2.0:
  ...
  * 13.1.1. Meta and Search Engines.  Again with reference to Dublin
    Core, the "keywords" example could be changed to something like:
        &lt;link rel="schema.DC" href="http://purl.org/dc"/&gt;
        &lt;!-- For speakers of US English --&gt;
        &lt;meta name="DC.Subject"
            xml:lang="en-us"&gt;vacation, Greece, sunshine&lt;/meta&gt;
        &lt;!-- For speakers of British English --&gt;
        &lt;meta name="DC.Subject"
            xml:lang="en"&gt;holiday, Greece, sunshine&lt;/meta&gt;
        &lt;!-- For speakers of French --&gt;
        &lt;meta name="DC.Subject"
            xml:lang="fr"&gt;vacances, Gr&amp;egrave;ce, soleil&lt;/meta&gt;
  ...
I'd like to add, I think the HTML Working Group has done a sterling job
so far, and I'll look forward to seeing the first public DTD and XML
Schema.  :o)
Thanks,
Dave
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_4" class="issueTitle"><span class= 
"diff-new">Feedback on XHTML 2.0 WD (20030131): section 13, remove
&lt;html profile&gt;, add scheme element</span> <span class="pr">
<span class="diff-new">PR #6436</span></span><br />
<span class="diff-new">State: Suspended</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">There are several proposals to improve
handling of meta data profiles, including this one. The WG has not
resolved this issue yet.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 6308:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello dear list members,
here's my feedback on the XHTML 2.0 WD
http://www.w3.org/TR/2003/WD-xhtml2-20030131
,.,,
13. XHTML Metainformation Module
I do not agree with omitting the scheme attribute, I liked it.
I suggest:
1. Remove the profile attribute from the HTML element.
2. Add a Scheme element with a name attribute and a profile attribute to the 
content model of head:
&lt;html xml:lang="en"&gt;
&lt;head&gt;
&lt;scheme  profile="http://www.acme.com/profiles/core"/&gt;
&lt;scheme  profile="http://www.cvshome.org/"/&gt;
&lt;scheme  profile="http://www.itcqis.com/"/&gt;
&lt;meta scheme="CVS" &gt;$Id: test2.xml,v 1.1 2004/02/18 03:43:29 vivien Exp $&lt;/meta&gt;
&lt;meta scheme="CVS" &gt;
$Log: test2.xml,v $
Revision 1.1  2004/02/18 03:43:29  vivien
New entry for WD-xhtml-modularization-20040218

Revision 1.3  2004/02/18 02:22:14  shane
(shane) Changed through Jigsaw.

Revision 1.2  2003/12/18 22:13:47  speruvem
Fixed the test cases (test case for Schem Impl)
Removed old (unnecessary files)

Revision 1.2  2003/12/18 19:30:08  speruvem
Fixed the test examples (test for Schem Impl)

Revision 1.1  2003/08/30 03:30:59  speruvem
no message

Revision 1.1  2003/08/30 02:20:33  speruvem
no message

Revision 1.2  2003/06/09 04:01:07  shane
(shane) Changed through Jigsaw.

&lt;/meta&gt;
&lt;meta scheme="ITCQIS" &gt;German translation&lt;/meta&gt;
&lt;meta scheme="ITCQIS" &gt;Add new photos&lt;/meta&gt;
&lt;meta scheme="acmecore" &gt;holiday, usa, canada, niagara, niagara 
falls&lt;/meta&gt;
&lt;meta scheme="acmecore" &gt;photo gallery of our holiday trip 
to niagara falls&lt;/meta&gt;
&lt;title&gt;photo gallery of our holiday trip to niagara falls&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
...
&lt;/body&gt;
&lt;/html&gt;
That way it is possible to use several profiles at once.
....
Bye
- -- 
ITCQIS GmbH
Christian Wolfgang Hujer
Gesch&auml;ftsf&uuml;hrender Gesellschafter
Telefon: +49  (0)89  27 37 04 37
Telefax: +49  (0)89  27 37 04 39
E-Mail: Christian.Hujer@itcqis.com
WWW: http://www.itcqis.com/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE+gvvszu6h7O/MKZkRAk8HAJ4kR+1YtdBIgMEU9w6ktNd5KEVJDACgoPAP
HrD7VM71nxGkUyJq82NLvqg=
=ByZ4
-----END PGP SIGNATURE-----
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_5" class="issueTitle"><span class= 
"diff-new">[XHTML2] Editorial comments on WD4: add profile
attribute, see issue 6444</span> <span class="pr"><span class= 
"diff-new">PR #6456</span></span><br />
<span class="diff-new">State: Suspended</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Dependent on decision on profiling usage,
see 6444</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from issue 6327:
Hopefully not too long, but here they are. There are no proposals here 
for a change to the working other draft other than to improve clarity 
of the existing proposal.
...
18) Section 13 XHTML Metainformation Module
See comment 6 above [ issue 6444] about the placement of the 
information that the html element can possess the profile attribute.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_6" class="issueTitle"><span class= 
"diff-new">Re: Updated XHTML 2.0 draft published: section 13.1 use
rel not profile</span> <span class="pr"><span class="diff-new">PR
#6480</span></span><br />
<span class="diff-new">State: Suspended</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">related to 6436.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from PR # 7334:
My comments:
...
13.1
The profile attribute is stupid. Use rel="scheme.X", as per the 
RFC defining embedding Dublin Core into HTML.
...
-- 
Toby A Inkster BSc (Hons) ARCS | mailto:tobyink@goddamn.co.uk | pgp:0x6A2A7D39
    aim:inka80 | icq:6622880 | yahoo:tobyink | jabber:tobyink@a-message.de
            http://www.goddamn.co.uk/tobyink/ | "You've got spam!"
                             playing://(nothing)
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_7" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: section 13.1, PICS
support?</span> <span class="pr"><span class="diff-new">PR
#6559</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We did drop PICS section, based on feedback
from T&amp;S folks.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
17) Section 13.1 The meta element
I noticed that the http-equiv attribute is being dropped.  PICS appears 
to depend upon this attribute.  Is there some other method of 
specifying PICS meta-data, or is PICS support being dropped in XHTML2?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_metamodule_issue_8" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: Section 13.1 scheme
attribute?</span> <span class="pr"><span class="diff-new">PR
#6560</span></span><br />
<span class="diff-new">State: Suspended</span><br />
<span class="diff-new">Resolution: Defer</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">We are aware of that. We've received a
number of feedback on improving the handling of meta data profiles,
and we should consider this issue together with other
proposals.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
18) Section 13.1 The meta element
According to (PR #6217) a decision was made on 15 January 2003 to 
restore the scheme attribute to the meta element.  This change has not 
yet been made in the working draft. 
...
</span>
</pre>
</div>

<h1><a  id="s_objectmodule"><span class= 
"diff-chg">18.</span></a> XHTML Object Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Object Module provides elements for general-purpose object
inclusion; this includes images and other media, as well as
executable content. Specifically, the Object Module supports:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes for Object Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td>object</td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_object_archive">archive</a> ( <span class= 
"datatype"><a href="#dt_URIs"><span class="diff-chg">
URIs</span></a></span> ), <a class="aref" href= 
"#adef_object_content-length">content-length</a> ( <span class= 
"datatype"><a href="#dt_Number">Number</a></span> ), <a class=
"aref" href="#adef_object_data">data</a> ( <span class="datatype">
<a href="#dt_URI">URI</a></span> ), <a class="aref" href= 
"#adef_object_declare">declare</a> <span class="diff-chg">
("declare")</span> <a class="aref" href="#adef_object_type"><span
class="diff-chg">type</span></a> <span class="diff-chg">(</span>
<span class="datatype"><a href="#dt_ContentType"><span class= 
"diff-chg">ContentType</span></a></span> <span class="diff-chg">
)</span></td>
<td class="content">( <a class="eref" href="#edef_tables_caption">
caption</a> ?, <a class="eref" href="#edef_object_standby">
standby</a> ?, <a class="eref" href="#edef_object_param">param</a>
*, (PCDATA | <a class="csref" href="#cs_Flow"><span class=
"diff-chg">Flow</span></a> <span class="diff-chg">)*)</span></td>
</tr>

<tr>
<td>param</td>
<td><a class="aref" href="#adef_attribute-collections_id">id</a> (
<span class="datatype"><a href="#dt_ID">ID</a></span> ), <a class= 
"aref" href="#adef_object_appletName">name</a> * ( <span class= 
"datatype"><a href="#dt_CDATA">CDATA</a></span> ), <a class="aref"
href="#adef_object_appletValue">value</a> ( <span class="datatype">
<a href="#dt_CDATA">CDATA</a></span> ), <a class="aref" href= 
"#adef_object_valuetype">valuetype</a> ("data"* | "ref" | <span
class="diff-chg">"object"),</span> <a class="aref" href= 
"#adef_object_type"><span class="diff-chg">type</span></a> <span
class="diff-chg">(</span> <span class="datatype"><a href= 
"#dt_ContentType"><span class="diff-chg">
ContentType</span></a></span> <span class="diff-chg">)</span></td>
<td class="content">EMPTY</td>
</tr>

<tr>
<td>standby</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>
</tbody>
</table>

<p>When this module is used, it adds the <code>object</code>
element to the <a class="csref" href="#cs_Inline">Inline</a>
content set of the <a href="#s_inline-textmodule">Inline Text</a>
module.</p>

<p>Implementation: <a href="#a_rmodule_Object">RELAX NG</a></p>

<h2><a  id="sec_18.1."><span class="diff-chg">
18.1.</span></a> The <a class="edef" id="edef_object_object">
object</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_archive"><span class="adef">
archive</span></a> = <span class="datatype"><a href="#dt_URIs">
<span class="diff-chg">URIs</span></a></span></dt>

<dd>This attribute specifies a <em>comma-separated</em> list of
URIs for archives containing classes and other resources that will
be "preloaded". The classes are loaded using an instance of an
AppletClassLoader with the given <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> . Relative URIs
for archives are interpreted with respect to the applet's xml:base.
Preloading resources can significantly improve the performance of
applets.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_content-length"><span class= 
"adef">content-length</span></a> = <span class="datatype"><a href= 
"#dt_Number">Number</a></span></dt>

<dd>This attribute is to be used as a hint by the object handler.
The author may provide the object handler with the physical size of
the object data that is to be processed. A valid value is the same
as defined in section 14.13 of [ <a class="nref" href=
"#ref_RFC2616">RFC2616</a> ].</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_data"><span class="adef">
data</span></a> = <span class="datatype"><a href="#dt_URI">
URI</a></span></dt>

<dd>This attribute is used to specify the location of the object's
data. If given as a relative URI, the location is based from the
URI defined in the <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute
.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_declare"><span class="adef">
declare</span></a> = <samp>"declare"</samp></dt>

<dd>When present, this boolean attribute makes the current <a
class="eref" href="#edef_object_object">object</a> element a
declaration only - not one that is to be executed until after the
document has completed loading and has been called through a user
event such as selecting an anchor that references the object.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_objectType"><span class="adef">
type</span></a> = <span class="datatype"><a href="#dt_ContentType">
ContentType</a></span></dt>

<dd>This attribute specifies the content type of the resource
designated by the <a class="aref" href="#adef_object_data">data</a>
attribute. It is used to help the user agent decide whether it can
process this element's contents.</dd>
</dl>
</div>

<h3><a  id="sec_18.1.1."><span class="diff-chg">
18.1.1.</span></a> Defining terminology</h3>

<p>The following terms will be used throughout this section.</p>

<dl>
<dt>object data</dt>

<dd>The file that is to be processed, such as an <span class= 
"diff-chg">audio file,</span> or <span class="diff-chg">
image</span> file. The actual content to be processed.</dd>

<dt>object handler</dt>

<dd>The mechanism that will be used to process the object data. The
mechanism could be the user agent or an external application.</dd>

<dt>object element</dt>

<dd>This refers to the actual XHTML coding, including the allowable
attributes.</dd>

<dt>instantiation</dt>

<dd>Refers to the plug-in handler, and the need to create a window,
modify the user interface, allocate memory, etc.</dd>
</dl>

<h3><a  id="sec_18.1.2."><span class="diff-chg">
18.1.2.</span></a> Basic Information for Object Handlers</h3>

<p><a class="xref" id="s_objectmodule_xref_0">Most user agents have
built-in mechanisms</a> for processing common data types such as
text, and various image <span class="diff-chg">types. In</span>
some instances the user agent may pass the processing to an
external application. Generally, a user agent will attempt to
process the object declaration, otherwise it may invoke an external
application, which are normally referred to as "plug-ins".</p>

<p>In the most general case, an author should specify three types
of information:</p>

<ul>
<li>The location of the object data (the data attribute). The
author must direct the object handler to the actual physical
location of the object data, otherwise the object handler will not
be able to process the request.</li>

<li>The mime type associated with the object data (the type
attribute). For instance, if the author prefers that a particular
object handler be used to process the data, they may specify a mime
type that is associated to a specific object handler.</li>

<li>Additional values required for the appropriate processing of
the object data by the object handler at run-time (via the param
element). Some instances may process more appropriately if the
object handler is passed initial process instructions. For example,
the author can specify whether a video should automatically start
or wait until the entire data file has been downloaded.</li>
</ul>

<p>The <a class="eref" href="#edef_object_object">object</a>
element allows authors to specify all three types of information,
but authors may not have to specify all three at once. For example,
some object element instances may not require data (e.g., a
self-contained applet that performs a small animation). Others may
not require mime type information, i.e., the user agent itself may
already know how to process that type of <span class="diff-chg">
data.</span> Still others may not require run-time
initialization.</p>

<p><a class="xref" id="s_objectmodule_xref_1">Authors specify an
object's</a> mime type and the location of the data to be processed
via the <a class="eref" href="#edef_object_object">object</a>
element. To specify run-time values, however, authors use the <a
class="eref" href="#edef_object_param">param</a> element, which is
discussed in the section on object initialization.</p>

<p><a class="xref" id="s_objectmodule_xref_2">The</a> <a class=
"eref" href="#edef_object_object">object</a> element may also
appear in the content of the <a class="eref" href= 
"#edef_structure_head">head</a> element. Since user agents
generally do not process elements in the <a class="eref" href= 
"#edef_structure_head">head</a> , authors should ensure that any <a
class="eref" href="#edef_object_object">object</a> element in the
<a class="eref" href="#edef_structure_head">head</a> does not
specify content that may be processed.</p>

<p>Please consult the section on form controls for information
about <a class="eref" href="#edef_object_object">object</a>
elements in forms.</p>

<h3><a  id="sec_18.1.3."><span class="diff-chg">
18.1.3.</span></a> Rules for processing objects</h3>

<p>A user agent must interpret an <a class="eref" href= 
"#edef_object_object">object</a> element according to the following
precedence rules:</p>

<ol>
<li>The user agent must first try to process the object element. It
should not process the embedded contents, but it must examine them
in case there are <a class="eref" href="#edef_object_param">
param</a> elements (see object initialization) or elements that
take advantage of the <a class="colref" href="#col_Map">Map</a>
attribute collection defined.</li>

<li>If the user agent is not able to process the object for
whatever reason (configured not to, lack of resources, wrong
architecture, etc.), it must try to process its contents.</li>
</ol>

<p><a class="xref" id="s_objectmodule_xref_3">Authors should not
include</a> content in <a class="eref" href="#edef_object_object">
object</a> elements that appear in the <a class="eref" href= 
"#edef_structure_head">head</a> element.</p>

<p>When a user agent is able to successfully process an object
element it MUST not attempt to process inner elements. For example,
if the following code is encountered:</p>

<div class="example">
<pre>
&lt;object ... pointing to objectdataA&gt;
&lt;object ... pointing to objectdataB&gt;
&lt;p&gt;alternate text&lt;/p&gt;
&lt;/object&gt;
&lt;/object&gt;
</pre>
</div>

<p>When the user agent encounters objectdataA and is able to
process that <a class="eref" href="#edef_object_object">object</a>
element, then all nested elements (except for applicable <a class= 
"eref" href="#edef_object_param">param</a> elements) MUST be
ignored.</p>

<p>If a user agent cannot process an object element or a set of
nested objects, and the author did not provide alternate text, the
user agent SHOULD NOT supply any additional information. It is the
responsibility of the author to supply additional or alternate
information. It may be the intent of the author to not provide
additional information if the object cannot be processed.</p>

<p>The user agent SHOULD attempt to process the outer object to its
fullest extent before dropping to a nested object. For example, if
the author provided information that could be used to download an
external application to be used to process the object, then the
user agent SHOULD attempt to download and install the application.
If the user selects to not install the application, the user agent
SHOULD continue to process the nested object or objects, if they
exist.</p>

<div class="example">
<p>The following example shows a minimally coded <a class="eref"
href="#edef_object_object">object</a> element. The <a class="aref"
href="#adef_object_data">data</a> attribute specifies the location
of the object data and the <a class="aref" href= 
"#adef_object_objectType">type</a> attribute specifies the mime
type associated with the object data:</p>

<pre>
&lt;object data="http://www.example.com/foo.mp3" type="audio/mpeg"&gt;
   &lt;em&gt;alternate text&lt;/em&gt;
&lt;/object&gt;
</pre>

<p>Note that the MP3 file will be processed as soon as the object
handler interprets this <a class="eref" href="#edef_object_object">
object</a> element declaration. It is possible to delay processing
of an object through the use of additional values defined within
the <a class="eref" href="#edef_object_param">param</a> element
(described later). It may also be delayed by the use of the <a
class="aref" href="#adef_object_declare">declare</a> attribute.</p>
</div>

<div class="example">
<p>The following example shows an <a class="eref" href= 
"#edef_object_object">object</a> element coded to process an image.
The <a class="aref" href="#adef_object_data">data</a> attribute
specifies the location of the object data, in this case the image
to be processed, and the <a class="aref" href= 
"#adef_object_objectType">type</a> attribute specifies the mime
type associated with the object data:</p>

<pre>
&lt;object data="http://www.example.com/foo.jpg" type="image/jpeg"&gt;
   &lt;em&gt;alternate text&lt;/em&gt;
&lt;/object&gt;
</pre>
</div>

<div class="example">
<p>The following example shows how an applet element can be
converted to an <a class="eref" href="#edef_object_object">
object</a> element. The codebase attribute is replaced with the
xml:base attribute. The code attribute is replaced with the data
attribute. The width and the height of the applet are defined using
CSS. The <a class="eref" href="#edef_object_param">param</a>
elements are not modified since the values within the <a class=
"eref" href="#edef_object_param">param</a> elements are passed
directly to the external application. If a particular version
reference is required, that would be appended to the content of the
type attribute. For example,
type="application/x-java-applet;version=1.4.1"</p>

<p>If the archive attribute is used, the object handler should
process the search order by interpreting the archive attribute
value first and then the xml:base attribute value.</p>

<pre>
&lt;applet
  codebase="http://www.example.com/applets/classes"  
  code="Clock.class"
  width="150" 
  height="150"&gt;
    &lt;param  value="ffffff"/&gt;
    &lt;param  value="5"/&gt;
    &lt;param  value="dddddd"/&gt;
    &lt;param  value="TimesRoman|BOLD|18"/&gt;
    &lt;param  value="100"/&gt;
    &lt;param  value="0000ff"/&gt;
    &lt;param  value="http://www.example.com/"/&gt;
    &lt;param  value="00ff00"/&gt;
    &lt;param  value="000000"/&gt;
    &lt;param  value="80"/&gt;
    &lt;param  value="ff0000"/&gt;
&lt;/applet&gt;
</pre>

<pre>
&lt;style type="text/css"&gt;
#obj1 {width:150px; height:150px;}
&lt;/style&gt;
...
&lt;object id="obj1" 
  xml:base="http://www.example.com/applets/classes" 
  type="application/x-java-applet" 
  data="Clock.class"&gt;
    &lt;param     value="100"/&gt;
    &lt;param      value="http://www.example.com/"/&gt;
    &lt;param    value="5"/&gt;
    &lt;param   value="80"/&gt;
    &lt;param     value="TimesRoman|BOLD|18"/&gt;
    &lt;param  name="bgcolor" value="ddddff"/&gt;
    &lt;param  name="shcolor" value="ff0000"/&gt;
    &lt;param  name="mhcolor" value="00ff00"/&gt;
    &lt;param  name="hhcolor" value="0000ff"/&gt;
    &lt;param  name="ccolor"  value="dddddd"/&gt;
    &lt;param  name="ncolor"  value="000000"/&gt;
    &lt;em&gt;alternate text&lt;/em&gt;
&lt;/object&gt;
</pre>
</div>

<p>Authors should always include alternate text as the content of
the <a class="eref" href="#edef_object_object">object</a> element
declaration when an embedded object is not defined. If an author
includes alternate text and an embedded object, the object handler
may process both the text and the embedded object. The alternate
text will provide the user a hint in cases where the object handler
cannot process the object data. The author should also consider
supplying a link to the location where the external application may
be downloaded in case the user does not have the external
application installed.</p>

<div class="example">
<p>The following example demonstrates how alternate text may be
used within an <a class="eref" href="#edef_object_object">
object</a> element.</p>

<pre>
&lt;object data="http://www.example.com/foo.mp3" type="audio/mpeg"&gt;
   A really cool audio file. If you want to download and install 
   a plug-in to listen to this file, please go to 
   &lt;a href="http://www.example.com"&gt;www.example.com&lt;/a&gt;
&lt;/object&gt;
</pre>
</div>

<p><a class="xref" id="s_objectmodule_xref_4">One significant
consequence</a> of the <a class="eref" href="#edef_object_object">
object</a> element's design is that it offers a mechanism for
specifying alternate object processing; each embedded <a class=
"eref" href="#edef_object_object">object</a> element declaration
may specify alternate content types. If the object handler cannot
process the outermost <a class="eref" href="#edef_object_object">
object</a> , it must then process the embedded contents, which may
be another <a class="eref" href="#edef_object_object">object</a>
element, etc. In this case, the innermost <a class="eref" href= 
"#edef_object_object">object</a> element declaration should contain
alternative text, the outer <a class="eref" href= 
"#edef_object_object">object</a> element declarations should not
contain alternative text since an embedded <a class="eref" href= 
"#edef_object_object">object</a> element declaration is
present.</p>

<div class="example">
<p>A user agent must attempt to process the outermost <a class=
"eref" href="#edef_object_object">object</a> element. If the <a
class="eref" href="#edef_object_object">object</a> cannot be
processed, then the next level <a class="eref" href= 
"#edef_object_object">object</a> declaration should be processed.
If that object cannot be processed, then the user agent must
continue to process each embedded <a class="eref" href= 
"#edef_object_object">object</a> declaration until the <span class= 
"diff-chg">innermost</span> <a class="eref" href= 
"#edef_object_object">object</a> declaration is reached. Once the
inner most <a class="eref" href="#edef_object_object">object</a>
declaration is analyzed and if the user agent cannot process it,
then the alternative text of the inner most <a class="eref" href= 
"#edef_object_object">object</a> declaration should be
processed.</p>

<p>In the following example, we embed several <a class="eref" href= 
"#edef_object_object">object</a> element declarations to illustrate
how alternate processing works. In the following order: (1) an
Earth applet, (2) an animation of the Earth, (3) <span class= 
"diff-chg">an</span> image of the Earth, (4) alternate text.</p>

<pre>
&lt;!-- First, try the applet --&gt;
&lt;object 
    data="http://www.example.com/TheEarth.class"
    type="application/x-java-applet"&gt;
<span class="diff-chg">      &lt;!-- Else, try the video --&gt;
</span>
      &lt;object 
          data="TheEarth.mpeg"
          type="video/mpeg"
          xml:base="http://www.example.com/"&gt;
<span class=
"diff-chg">            &lt;!-- Else, try the image --&gt;
</span>
            &lt;object
<span class="diff-chg">                data="TheEarth.png"
                type="image/png"
</span>
                xml:base="http://www.example.com/"&gt;
                &lt;!-- Else process the alternate text --&gt;
                The &lt;strong&gt;Earth&lt;/strong&gt; as seen from space.
            &lt;/object&gt;
      &lt;/object&gt;
&lt;/object&gt;
</pre>

<p>The outermost <a class="eref" href="#edef_object_object">
object</a> element declaration specifies an applet that requires no
initial values, the <a class="aref" href="#adef_object_data">
data</a> attribute points to the applet class file, and the <a
class="aref" href="#adef_object_objectType">type</a> attribute
defines the mime type. An <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute could
have been used to point to the base location to access the class
file. In this example, however, the <a class="aref" href= 
"#adef_object_data">data</a> attribute value contains an absolute
URL so the <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute was
not required. An <a class="aref" href="#adef_object_archive">
archive</a> attribute could have been used if the author needed to
include any associated jar files. The second <a class="eref" href= 
"#edef_object_object">object</a> element declaration specifies an
MPEG animation, and the <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute
defines the location of the object data defined in the <a class= 
"aref" href="#adef_object_data">data</a> attribute. We also set the
<a class="aref" href="#adef_object_objectType">type</a> attribute
so that a user agent can determine if it has the capability to
process the object data or to invoke an external application to
process the MPEG. The third object element declaration specifies a
<span class="diff-chg">PNG</span> file and furnishes alternate text
in case all other mechanisms fail.</p>
</div>

<p>Another way to approach the usage of the <a class="eref" href= 
"#edef_object_object">object</a> element attributes is this
way:</p>

<table border="1" summary="This table helps define in greater 
detail on what the usage is for the various object element 
attributes">
<tbody>
<tr>
<th>attribute</th>
<th>function</th>
</tr>

<tr>
<td>archive</td>
<td>For example, when defining an applet you could reference a
space-separated list of jar files.</td>
</tr>

<tr>
<td>content-length</td>
<td>This is similar to meta data, in that this can be used by the
object handler as a hint to the physical size of the object data
that is to be processed.</td>
</tr>

<tr>
<td>data</td>
<td>This URI points to the object data to be processed. This can be
an absolute URI (http://www.example.com/datafiles/myinstance.mpg),
or a relative URI (myinstance.mpg). If you use a relative URI, then
you will need to use the <a class="aref" href= 
"#adef_attribute-collections_xml:base">xml:base</a> attribute to
define the base location of the object data. This attribute should
only refer to the data to be processed.</td>
</tr>

<tr>
<td>declare</td>
<td>This is used to delay the processing of the object data until
such time that it is referred to by another element that requires
the object data to be processed. In other words, the object data
should be downloaded but should not be processed. For example, if
an <a class="eref" href="#edef_hypertext_a">a</a> element is coded
to refer to the object element and the <a class="eref" href= 
"#edef_hypertext_a">a</a> element is activated, then the object
data would be processed.</td>
</tr>

<tr>
<td>type</td>
<td>Defining the mime type of the object data will assist the
object handler in determining whether the object data can be
processed by the user agent or if an external application needs to
be launched to process the object data.</td>
</tr>

<tr>
<td>xml:base</td>
<td>Use this attribute to define the base location of the object
data. For example: http://www.example.com/datafiles/. This
attribute should not be used for any other purpose.</td>
</tr>
</tbody>
</table>

<div class="note">
<p><em><strong>Inline vs. external data.</strong> Data to be
processed may be supplied in two ways: inline and from an external
resource. While the former method will generally lead to faster
processing, it is not convenient when processing large quantities
of data.</em></p>
</div>

<div class="example">
<p><em>Here's an example that illustrates how inline data may be
fed to an <a class="eref" href="#edef_object_object">object</a>
handler:</em></p>

<pre>
&lt;object 
    id="clock1"
    type="application/x-java-applet"&gt;
    A clock.
&lt;/object&gt;
</pre>
</div>

<h2><a id="sec_18.2."><span class="diff-chg">
18.2.</span></a> The <a class="edef" id="edef_object_param">
param</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_appletName"><span class="adef">
name</span></a> = <span class="datatype"><a href="#dt_CDATA">
CDATA</a></span></dt>

<dd>This attribute defines the name of a run-time parameter,
assumed to be known by the object handler. Whether the property
name is case-sensitive depends on the specific object handler
implementation.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_appletValue"><span class=
"adef">value</span></a> = <span class="datatype"><a href=
"#dt_CDATA">CDATA</a></span></dt>

<dd>This attribute specifies the value of a run-time parameter
specified by <a class="aref" href="#adef_object_appletName">
name</a> . Property values have no meaning to XHTML; their meaning
is determined by the object in question.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_object_valuetype"><span class="adef">
valuetype</span></a> = <samp>data|ref|object</samp></dt>

<dd>This attribute specifies the type of the <samp>value</samp>
attribute. 

<p>Possible values:</p>

<ul>
<li><samp>data:</samp> This is the default value for the attribute.
It means that the value specified by <a class="aref" href= 
"#adef_object_appletValue">value</a> will be evaluated and passed
to the object's implementation as a string.</li>

<li><samp>ref:</samp> The value specified by <a class="aref" href= 
"#adef_object_appletValue">value</a> is a URI that designates a
resource where run-time values are stored. This allows support
tools to identify URIs given as parameters. The URI must be passed
to the object <strong>as is</strong> , i.e., unresolved.</li>

<li><samp>object:</samp> The value specified by <a class="aref"
href="#adef_object_appletValue">value</a> is an identifier that
refers to an <a class="eref" href="#edef_object_object">object</a>
declaration in the same document. The identifier must be the value
of the <a class="aref" href="#adef_attribute-collections_id">id</a>
attribute set for the declared <a class="eref" href= 
"#edef_object_object">object</a> element.</li>
</ul>
</dd>
</dl>

<dl class='attrRef'>
<dt><a class="adef" id="adef_object_objectType_2"><span class=
"adef"><span class="diff-new">type</span></span></a> <span class= 
"diff-new">=</span> <span class="datatype"><a href=
"#dt_ContentType"><span class="diff-new">
ContentType</span></a></span></dt>

<dd><span class="diff-new">This attribute specifies the content
type of the resource designated by the</span> <a class="aref" href= 
"#adef_object_data"><span class="diff-new">data</span></a> <span
class="diff-new">attribute. It is used to help the user agent
decide whether it can process this element's contents.</span></dd>
</dl>
</div>

<p><a class="eref" href="#edef_object_param">param</a> elements
specify a set of values that may be required to process the object
data by an object handler at run-time. Any number of <a class=
"eref" href="#edef_object_param">param</a> elements may appear in
the content of an <a class="eref" href="#edef_object_object">
object</a> element, in any order, but must be placed at the start
of the content of the enclosing <a class="eref" href= 
"#edef_object_object">object</a> element, with the exception of
optional <a class="eref" href="#edef_tables_caption">caption</a>
and <a class="eref" href="#edef_object_standby">standby</a>
elements.</p>

<p>The syntax of names and values is assumed to be understood by
the user agent or the external application that will process the
object data. This document does not specify how object handlers
should retrieve name/value pairs nor how they should interpret
parameter names that appear twice.</p>

<p>The user agent or the external application can utilize the <a
class="eref" href="#edef_object_param">param</a> element name/value
pairs to pass unique datapoints to trigger specific functions or
actions. For example, the user agent may wish to trigger an
external application download if the user does not have an
appropriate application installed on their system.</p>

<div class="example">
<p>We return to the clock example to illustrate the use of the <a
class="eref" href="#edef_object_param">param</a> element. For
example, suppose that the applet is able to handle two run-time
parameters that define its initial height and width. We can set the
initial dimensions to 40x40 pixels with two <a class="eref" href= 
"#edef_object_param">param</a> elements.</p>

<pre>
    
&lt;object 
    data="http://www.example.com/myclock.class"
    type="application/x-java-applet"&gt;
        &lt;param name="height" value="40" valuetype="data" /&gt;
        &lt;param name="width" value="40" valuetype="data" /&gt;
        This user agent cannot process a java applet.
&lt;/object&gt;
</pre>
</div>

<div class="example">
<p>In the following example, run-time data for the object's
"Init_values" parameter is specified as an external resource (a GIF
file). The value of the <a class="aref" href=
"#adef_object_valuetype">valuetype</a> attribute is thus set to
"ref" and the <a class="aref" href="#adef_object_appletValue">
value</a> is a URI designating the resource.</p>

<pre>
&lt;object
    data="http://www.example.com/gifappli"
    type="image/gif"&gt;
        &lt;standby&gt;Loading Elvis...&lt;/standby&gt;
        &lt;param name="Init_values"
            value="./images/elvis.gif"
            valuetype="ref" /&gt;
        Elvis lives!
&lt;/object&gt;
</pre>

<p>Note that we have also set the <a class="eref" href= 
"#edef_object_standby">standby</a> element so that the object
handler may display a message while the object data is
downloading.</p>
</div>

<p>When an <a class="eref" href="#edef_object_object">object</a>
element is processed, the user agent must search the content for
only those <a class="eref" href="#edef_object_param">param</a>
elements that are direct children and "feed" them to the object
handler.</p>

<div class="example">
<p>Thus, in the following example, if "obj1" is processed, then the
name/value content of "param1" applies to "obj1" (and not "obj2").
If "obj1" is not processed and "obj2" is, "param1" is ignored, and
the name/value content of "param2" applies to "obj2". If neither <a
class="eref" href="#edef_object_object">object</a> element is
processed, neither <a class="eref" href="#edef_object_param">
param</a> name/value content applies.</p>

<pre>
&lt;object
    data="obj1"
    type="application/x-something"&gt;
    &lt;param name="param1" value="value1" /&gt;
    &lt;object
        data="obj2"
        type="application/x-something"&gt;
        &lt;param name="param2" value="value2" /&gt;
        This user agent cannot process this application.
    &lt;/object&gt;
&lt;/object&gt;
</pre>
</div>

<h3><a  id="sec_18.2.1."><span class="diff-chg">
18.2.1.</span></a> Referencing object data</h3>

<p>The location of an object's data is given by a URI. The URI may
be either an absolute URI or a relative URI. If the URI is
relative, it may be based from the referring document location or
from the <a class="aref" href=
"#adef_attribute-collections_xml:base">xml:base</a> attribute
location.</p>

<div class="example">
<p>In the following example, we insert a video clip into an XHTML
document.</p>

<pre>
&lt;object
    data="mymovie.mpg"
    type="video/mpeg"&gt;
    A film showing how to open the printer to replace the cartridge.
&lt;/object&gt;
</pre>
</div>

<p>By setting the <a class="aref" href="#adef_object_objectType">
type</a> attribute, a user agent can determine whether to retrieve
the external application based on its ability to do so. The
location of the object data is relative to the referencing
document, in this example the object data would need to exist
within the same directory.</p>

<div class="example">
<p>The following example specifies a base location via the <a
class="aref" href="#adef_attribute-collections_xml:base">
xml:base</a> attribute. The <a class="aref" href=
"#adef_object_data">data</a> attribute defines the data to
process.</p>

<pre>
&lt;object
    xml:base="http://www.example.com/"
    data="mymovie.mpg"
    type="video/mpeg"&gt;
    This user agent cannot process this movie.
&lt;/object&gt;
</pre>
</div>

<h3><a  id="sec_18.2.2."><span class="diff-chg">
18.2.2.</span></a> Object element declarations and
instantiations</h3>

<p>The following example is for illustrative purposes only. When a
document is designed to contain more than one instance of the same
object data, it is possible to separate the declaration of the
object from the references to the object data. Doing so has several
advantages:</p>

<ul>
<li>The object data may be retrieved from the network by the object
handler <em>one time</em> (during the declaration) and reused for
each additional reference to that object data.</li>

<li>It is possible to reference the object data from a location
other than the object element in which it was defined, for example,
from a link.</li>

<li>It is possible to specify an object data as run-time data for
other object element declarations.</li>
</ul>

<p>To declare an object element so that it is not executed when
read by the object handler, set the boolean <a class="aref" href= 
"#adef_object_declare">declare</a> attribute in the <a class="eref"
href="#edef_object_object">object</a> element. At the same time,
authors must identify the object declaration by setting the <a
class="aref" href="#adef_attribute-collections_id">id</a> attribute
in the <a class="eref" href="#edef_object_object">object</a>
element to a unique value. Later processing of the object data will
refer to this identifier.</p>

<p>A declared <a class="eref" href="#edef_object_object">object</a>
element must appear in a document before the first time the object
data is referenced. For example, the <span class="diff-chg">
declaring</span> object element must appear before a link
referencing the object data.</p>

<p>When an object element is defined with the <a class="aref" href= 
"#adef_object_declare">declare</a> attribute, the object handler is
instantiated every time an element refers to that object data later
in the document. The references will require the object data to be
processed (e.g., a link that refers to it is activated, an object
element that refers to it is activated, etc.).</p>

<div class="example">
<p>In the following example, we declare an <a class="eref" href= 
"#edef_object_object">object</a> element and cause the object
handler to be instantiated by referring to it from a link. Thus,
the object data can be activated by clicking on some highlighted
text, for example.</p>

<pre>
&lt;object
    declare="declare"
    id="earth.declaration" 
    data="TheEarth.mpg" 
    type="video/mpeg"&gt;
    The &lt;strong&gt;Earth&lt;/strong&gt; as seen from space.
&lt;/object&gt;
<em>...later in the document...</em>
&lt;p&gt;A neat &lt;a href="#earth.declaration"&gt;animation of The Earth!&lt;/a&gt;&lt;/p&gt;
</pre>

<p>In the previous example, when the document is initially loaded
the object data should not be processed. If this was to be
processed within a visual user agent, the object data would not be
displayed. When the user selects the anchor data, the object data
would then be initialized and displayed. This would also be the
case for an audio file, where the file would be instantiated but
would not be processed. Selecting the anchor data would then
trigger the audio file to be processed.</p>
</div>

<p>User agents that do not support the <a class="aref" href= 
"#adef_object_declare">declare</a> attribute must process the
contents of the <a class="eref" href="#edef_object_object">
object</a> element.</p>

<h2><a  id="sec_18.3."><span class="diff-chg">
18.3.</span></a> The <a class="edef" id="edef_object_standby">
standby</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_object_standby">standby</a>
element specifies a message that a user agent may render while
loading the object's implementation and data.</p>

<h2><a  id="sec_18.4."><span class="diff-new">
18.4.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_objectmodule_issue_0" class="issueTitle"><span class= 
"diff-chg">[XHTML2] Comments on WD 5: Section 14.1, conflicting use
of type attribute for content of both URI and src</span> <span
class="pr"><span class="diff-chg">PR #6562</span></span><br />
<span class="diff-chg">State: Needs Approval</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">I'm not sure what to do with this one. We
could certainly use</span> the <span class="diff-chg">src attribute
in lieu of the data attribute. It would help tighten up the number
of attributes that essentially do the same thing. However, the type
attribute for the embedding collection allows for a string of
types, whereas, within the object</span> element <span class= 
"diff-chg">only one type is permitted per object declaration --
which I believe is correct. Beth Epperson</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
20) Section 14.1 The object element
The object element and the Embedding Attribute Collection both provide 
a means of embedding other data into an XHTML document.  The Embedding 
Attribute Collection deals with simple embedding, whilst the Object 
Module deals with more complex embedding.  However, the use of the type 
attribute in the object element to indicate the ContentType of the URI 
of the data attribute conflicts with the use of the type attribute to 
indicate the ContentType of the src attribute of the Embedded Attribute 
Collection.  I see two ways of solving the problem.
20a)
Since the object element and the Embedding Attribute Collection both 
deal with embedding, drop the data attribute and use the src attribute 
from the Embedding Attribute Collection to indicate the location of the 
object's data.
20b)
Since the object element and the Embedding Attribute Collection deal 
with different types of embedding, keep the data attribute and use a 
different attribute such as datatype to indicate the ContentType of the 
URI of the data attribute.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_objectmodule_issue_1" class="issueTitle"><span class= 
"diff-chg">[XHTML2] Inconsistencies in</span> module <span class= 
"diff-chg">definitions: param</span> element <span class=
"diff-new">should allow Common attributes.</span> <span class="pr">
<span class="diff-new">PR #6576</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">I believe this should be rejected. The
param</span> is <span class="diff-chg">supposed to be</span> used
<span class="diff-chg">to pass data to the</span> object <span
class="diff-chg">handler for processing,</span> it <span class= 
"diff-chg">does not seem logical to add attributes that would
not</span> be <span class="diff-chg">picked up by the handler. Beth
Epperson</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">[this issue was extracted from 6301]
Hi,
I updated my experimental RELAX NG schema for XHTML 2.0 at:
    http://www.w3.org/People/mimasa/test/schemas/rng/xhtml2.rng
In doing so I found several inconsistencies in WD-xhtml2-20030131.
To list a few:
...
- ... I don't see why e.g. the 'id' attribute can't be used for the [param element] The 'param' element could also allow some of Common attributes.
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<h1><a  id="s_rubymodule"><span class=
"diff-chg">19.</span></a> Ruby Module</h1>

<p>This section is <em>informative</em> .</p>

<p>The Ruby Module defines elements for ruby annotation markup as
defined in Ruby Annotation [ <a class="nref" href="#ref_RUBY">
RUBY</a> ].</p>

<p>This module adds the <code>ruby</code> element to the <a class= 
"csref" href="#cs_Inline">Inline</a> content set of the <a href= 
"#s_inline-textmodule">Inline Text</a> Module. XHTML 2.0 supports
the maximal content model for the <code>ruby</code> element,
defined as follows:</p>

<pre>
((rb, (rt | (rp, rt, rp))) | (rbc, rtc, rtc?))
</pre>

<p>As defined in [ <a class="nref" href="#ref_RUBY">RUBY</a> ], the
<code>ruby</code> element is not allowed to nest.</p>

<p>Implementation: <a href= 
"#a_rmodule_Ruby_Driver_for_Full_Ruby_Markup">RELAX NG</a> , <a
href="http://www.w3.org/TR/2001/REC-ruby-20010531/#module">
DTD</a></p>

<h1><a  id="s_scriptingmodule"><span class= 
"diff-chg">20.</span></a> XHTML Scripting Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Scripting Module defines elements that are used to contain
information pertaining to executable scripts or the lack of support
for executable scripts. Elements and attributes included in this
module are:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes for Scripting Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_scripting_noscript">
noscript</a></td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><span class="diff-chg">(</span> <a class=
"csref" href="#cs_Heading"><span class="diff-chg">
Heading</span></a> | <a class="csref" href="#cs_List">List</a> | <a
class="csref" href="#cs_Block"><span class="diff-chg">
Block</span></a> <span class="diff-chg">)+</span></td>
</tr>

<tr>
<td><a class="eref" href="#edef_scripting_script">script</a></td>
<td>charset ( <span class="datatype"><a href="#dt_Charset">
Charset</a></span> ), declare ("declare"), src ( <span class= 
"datatype"><a href="#dt_URI">URI</a></span> ), type* ( <span class= 
"datatype"><a href="#dt_ContentType">ContentType</a></span> ),
xml:space="preserve"</td>
<td class="content">PCDATA | <a class="eref" href= 
"#edef_scripting_script">script</a> | <a class="eref" href= 
"#edef_scripting_noscript">noscript</a></td>
</tr>
</tbody>
</table>

<p>When this module is used, the <a class="eref" href= 
"#edef_scripting_script">script</a> and <a class="eref" href= 
"#edef_scripting_noscript">noscript</a> elements are added to the
<a class="csref" href="#cs_Block">Block</a> and <a class="csref"
href="#cs_Inline">Inline</a> content sets of the <a href= 
"#s_block-textmodule">Block</a> and <a href="#s_inline-textmodule">
Inline Text</a> Modules. In addition, the <a class="eref" href= 
"#edef_scripting_script">script</a> element is added to the content
model of the <a class="eref" href="#edef_structure_head">head</a>
element defined in the <a href="#s_structuremodule">Structure</a>
Module.</p>

<p>Implementation: <a href="#a_rmodule_Scripting">RELAX NG</a></p>

<h2><a  id="sec_20.1."><span class="diff-chg">
20.1.</span></a> The <a class="edef" id="edef_scripting_noscript">
noscript</a> element</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_scripting_noscript">noscript</a>
element allows authors to provide alternate content when a script
is not executed. The content of a <a class="eref" href= 
"#edef_scripting_noscript">noscript</a> element will be rendered if
and only if the containing <a class="eref" href= 
"#edef_scripting_script">script</a> is not processed. <a class=
"eref" href="#edef_scripting_noscript">noscript</a> elements that
are not contained in a <a class="eref" href=
"#edef_scripting_script">script</a> element will only be rendered
in the following cases:</p>

<ul>
<li>The user agent is configured not to evaluate scripts.</li>

<li>The user agent doesn't support a scripting language invoked by
a <a class="eref" href="#edef_scripting_script">script</a> element
earlier in the document.</li>

<li>The user agent can't access an external script.</li>
</ul>

<p>User agents that do not support client-side scripts must render
this element's contents.</p>

<div class="example">
<p>In the following example, a user agent that executes the <a
class="eref" href="#edef_scripting_script">script</a> will include
some dynamically created data in the document. If the user agent
doesn't support scripts, the user may still retrieve the data
through a link.</p>

<pre>
&lt;script type="text/tcl" src="http://example.org/script"&gt;
 &lt;noscript&gt;
  &lt;p&gt;Access the &lt;a href="http://example.org/data"&gt;data.&lt;/a&gt;&lt;/p&gt;
 &lt;/noscript&gt;
&lt;/script&gt;
</pre>
</div>

<h2><a  id="sec_20.2."><span class="diff-chg">
20.2.</span></a> The <a class="edef" id="edef_scripting_script">
script</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrDef'>
<dt>The <a class="colref" href="#col_Embedding">Embedding</a>
collection</dt>

<dd>A collection of attributes related to embedding content,
including <a class="aref" href="#adef_attribute-collections_src">
src</a> and <a class="aref" href=
"#adef_attribute-collections_type">type</a> .</dd>
</dl>

<dl class='attrRef'>
<dt><a class="adef" id="adef_scripting_declare"><span class="adef">
declare</span></a> = <samp>"declare"</samp></dt>

<dd>When present, this boolean attribute makes the current <a
class="eref" href="#edef_object_object">object</a> element a
declaration only - not one that is to be executed until after the
document has completed loading and has been called through a user
event such as selecting an anchor that references the object.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_scripting_charset"><span class="adef">
charset</span></a> = <span class="datatype"><a href="#dt_Charset">
Charset</a></span></dt>

<dd>This attribute specifies the character encoding of the resource
designated by the link. Please consult the section on character
encodings for more details.</dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_scripting_script">script</a>
element places a script within a document. This element may appear
any number of times in the <a class="eref" href= 
"#edef_structure_head">head</a> or <a class="eref" href= 
"#edef_structure_body">body</a> of an XHTML document.</p>

<p>The script may be defined within the contents of the <a class= 
"eref" href="#edef_scripting_script">script</a> element or in an
external file. If the <a class="aref" href= 
"#adef_attribute-collections_src">src</a> attribute is not set,
user agents must interpret the contents of the element as the
script. If the <a class="aref" href=
"#adef_attribute-collections_src">src</a> has a URI value, user
agents must ignore the element's contents and retrieve the script
via the URI. Note that the <a class="aref" href= 
"#adef_scripting_charset">charset</a> attribute refers to the <span
class="datatype"><a href="#dt_Charset">character
encoding</a></span> of the script designated by the <a class="aref"
href="#adef_attribute-collections_src">src</a> attribute; it does
not concern the content of the <a class="eref" href= 
"#edef_scripting_script">script</a> element.</p>

<h3><a  id="sec_20.2.1."><span class="diff-chg">
20.2.1.</span></a> Rules for processing scripts</h3>

<p>Scripts are evaluated by <em>script engines</em> that must be
known to a user agent.</p>

<p>A user agent must interpret a <a class="eref" href= 
"#edef_scripting_script">script</a> element according to the
following precedence rules:</p>

<ol>
<li>The user agent must first try to process the script element,
but not the embedded content.</li>

<li>If the user agent is not able to process the script for any
reason (configured not to, no support of the scripting language, no
access to an external resource, etc.), it must try to process its
contents.</li>

<li>If the content is inline text it must be evaluated as script
data of the scripting language of the containing script
element.</li>

<li>If the content is a <a class="eref" href= 
"#edef_scripting_noscript">noscript</a> element, its content should
be rendered.</li>

<li>If the content is a <a class="eref" href=
"#edef_scripting_script">script</a> element, its content should be
processed according to these rules.</li>
</ol>

<p>The syntax of script data depends on the scripting language.</p>

<h3><a  id="sec_20.2.2."><span class="diff-chg">
20.2.2.</span></a> Specifying the scripting language</h3>

<p>As XHTML does not rely on a specific scripting language,
document authors must explicitly tell user agents the language of
each script. This may be done either through a default declaration
or a local declaration.</p>

<h3><a  id="sec_20.2.3."><span class="diff-chg">
20.2.3.</span></a> Declaration of a scripting language</h3>

<p>The <a class="aref" href="#adef_attribute-collections_type">
type</a> attribute must be specified for each <a class="eref" href= 
"#edef_scripting_script">script</a> element instance in a
document.</p>

<div class="example">
<p>In this example, we include one <a class="eref" href= 
"#edef_scripting_script">script</a> in the header, whose script is
located in an external file and is in the scripting language
"text/vbscript". The JavaScript code contained in the inner <a
class="eref" href="#edef_scripting_script">script</a> will be
evaluated if and only if the user agent isn't evaluating the outer
<a class="eref" href="#edef_scripting_script">script</a> . We also
include one <a class="eref" href="#edef_scripting_script">
script</a> in the body, which contains its own script written in
"text/x-perl".</p>

<pre>
&lt;html xmlns="http://www.w3.org/2002/06/xhtml2"&gt;
 &lt;head&gt;
  &lt;title&gt;A document with script&lt;/title&gt;
  &lt;script type="text/x-vbscript" src="http://example.org/progs/vbcalc"&gt;
   &lt;script type="text/javascript"&gt;
    <em>...some inline JavaScript...</em>
   &lt;/script&gt;
  &lt;/script&gt;
 &lt;/head&gt;
 &lt;body&gt;
    &lt;script type="text/x-perl"/&gt;
 &lt;/body&gt;
&lt;/html&gt;
</pre>
</div>

<h3><a  id="sec_20.2.4."><span class="diff-chg">
20.2.4.</span></a> Dynamic modification of documents</h3>

<p>Note that because of the XML processing model, where a document
is first parsed before being processed, the form of dynamic
generation used in earlier versions of HTML, using <code>
document.write</code> cannot be used in XHTML2. To dynamically
generate content in XHTML you have to add elements to the DOM tree
using DOM calls [ <a class="nref" href="#ref_DOM">DOM</a> ] rather
than using <code>document.write</code> top generate text that then
gets parsed.</p>

<h2><a  id="sec_20.3."><span class="diff-new">
20.3.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_scriptingmodule_issue_0" class="issueTitle"><span class= 
"diff-new">Allow &lt;noscript&gt; in &lt;head&gt;?</span> <span
class="pr"><span class="diff-new">PR #6285</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">With the new content model 'noscript' is
valid as fallback in 'script'. 'noscript' is also included in the
Block and Inline content sets, but this is for backwards
compatibility only.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">There is a problem with all versions of HTML and XHTML: the DTD allows
&lt;script&gt; in &lt;head&gt; and &lt;body&gt;, while &lt;noscript&gt; is only allowed in
&lt;body&gt; but not in &lt;head&gt;.
The current draft of the XHTML 2.0 specification contains an example
in section 15.2.3 (XHTML Scripting Module) showing how one can use
nested &lt;script&gt; elements in &lt;head&gt; in order to support multiple
scripting languages.  However, this does not provide any fallback
solution if no scripting language is supported or enabled.
Allowing &lt;noscript&gt; in &lt;head&gt; would be useful if one has an external
script that dynamically generates the &lt;title&gt;, some &lt;meta&gt; tags or a
&lt;link&gt; to a stylesheet depending on some parameters.  If the script
cannot be loaded, a &lt;noscript&gt; section could at least provide some
reasonable defaults.  So the following example would be useful,
although it is not valid (X)HTML:
...
&lt;head&gt;
  &lt;script type="text/javascript" src="/generate-head.js"&gt;
    &lt;noscript&gt;
      &lt;title&gt;Default title&lt;/title&gt;
      &lt;link rel="stylesheet" type="text/css" href="/default.css" /&gt;
      &lt;link rel="index" href="/index.html" /&gt;
      &lt;meta name="Author"&gt;Default Author&lt;/meta&gt;
    &lt;/noscript&gt;
  &lt;/script&gt;
&lt;/head&gt;
...
This code seems to work in all browsers that I could test, but this is
forbidden by the DTDs (HTML 4 and XHTML 1).  In fact, I discovered
this problem in the DTDs by trying to validate a set of pages
containing some code similar to the one above and getting a number of
errors related to the &lt;noscript&gt; element.
Providing defaults without using &lt;noscript&gt; is not easy.  For the
stylesheet, this requires inserting an unconditional &lt;link&gt; to a
default stylesheet at the beginning of the &lt;head&gt; section and
overrriding all of its settings with a second styleheet that could be
requested via the script.  This is more complex and this increases the
number of requests to the server.  For &lt;title&gt;, &lt;meta&gt; and other
&lt;link&gt; elements, it is necessary to call the script twice: once at the
beginning of &lt;head&gt; before the default values and once at the end,
because some browsers will only display the first &lt;title&gt; found while
others will only display the last one.
I don't know how to solve this problem in the DTD.  In fact, I don't
know if this is even possible, because the valid contents of
&lt;noscript&gt; would be different if the element is used inside &lt;head&gt; or
inside &lt;body&gt;.  I don't think that the DTD syntax allows this,
although I could be wrong.
If this cannot be done in the DTD, then I would suggest adding a
paragraph in the description of the &lt;noscript&gt; tag saying that
browsers should be tolerant and accept &lt;noscript&gt; inside &lt;head&gt;.
Best regards,
-Rapha&euml;l
P.S.: I am not subscribed to this list.  It would be nice if you
      could CC me on any replies.  I will check the mailing list
      archives from time to time.
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_1" class="issueTitle"><span class= 
"diff-new">more xhtml 2.0 comments</span> <span class="pr"><span
class="diff-new">PR #6366</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Accepted</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Hmm. I didn't write this (URL now:
&lt;http://www.w3.org/TR/xhtml2/xhtml2.html#sec_16.2.4.&gt;), and I
strongly disagree with "Note that because of the XML processing
model, where a document is first parsed before being processed".
Some UAs will parse the entire document before processing it (XSLT
processors comes to mind), no browser vendor in their right mind
will. I remember a discussion on document.write(), and life would
be much easier without it (and many HTML pages less ugly). But this
would also mean that nobody will use it (it is harder for scripters
to do without document.write than designers to do without
document.write). The reference to DOM isn't correct, as
document.write *is* in DOM,
&lt;http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-75233634&gt;.
We have to live with it. Unless we make a XHTML DOM without
document.write. PROPOSED RESOLUTION: Revert to the older
script-as-transformation text. Discourage the method in the
prose.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
36. section 15.2.4 is just a denial of the progressive rendering... Does the
    HTML WG really think that browsers are not going to start rendering very
    long documents if the network makes the retrieval too long from a user's
    perspective? This parargraph seems to me unapplicable in dynamic
    environments.
[36] http://www.w3.org/TR/xhtml2/xhtml2.html#sec_15.2.4.
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_2" class="issueTitle"><span class= 
"diff-new">Comments about XHTML 2.0 WD5: section 16.1, does
noscript need a "for" attribute?</span> <span class="pr"><span
class="diff-new">PR #6495</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">In effect the capability of 'noscript' has
been increased in XHTML 2.0. I am sceptical to extend it further,
since a 'for' solution could be complex and unpredictable. What if
the 'noscript' appears before the 'script' element, and the UA
doesn't know yet if the script will succeed or not? What if the
referred script is a fallback script (nested inside another
script), should the 'noscript' be triggered or not if the 'script'
never runs? PROPOSED RESOLUTION: Too complex.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 16.1
1. &lt;noscript&gt; for some reason still feels inadequate in cases where &lt;script&gt;
    and its corresponding &lt;noscript&gt; are at different places on the 
page.  So,
    maybe noscript could have a for attribute:
      for = IDREF
    The basic scenario is the use of different scripting languages, making
    heuristics of when to display the contents a bit inaccurate.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_3" class="issueTitle"><span class= 
"diff-new">Comments about XHTML 2.0 WD5: section 16.2, typo:
"object" should be "script"?</span> <span class="pr"><span class= 
"diff-new">PR #6496</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Accepted</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Yes. The wonders and dangers of
cut&amp;paste.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 16.2
1. Shouldn't "this boolean attribute makes the current object element a
    declaration only" be "this boolean attribute makes the current script
    element a declaration only"?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_4" class="issueTitle"><span class= 
"diff-new">Comments about XHTML 2.0 WD5: Section 16.2.3 possible
typo in example, x-vbsrcipt should be vbscript?</span> <span class= 
"pr"><span class="diff-new">PR #6497</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">VBScript isn't a registered media type as
described in RFC2048, and there is no vnd. registration either
(which would be natural). The "x-"-less variant is a
typo.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from issue 7339:
I have compiled a list of comments, suggestions, possible errors, and 
queries that I thought of as I was reading the new WD.  I hope that 
nothing I write is inappropriate, and I apologize if some of these 
things are too clueless.
...
SECTION 16.2.3
1. The document says that the first script is "text/vbscript" but the 
example
    shows that it's "text/x-vbscript".  Is this intentional?
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_5" class="issueTitle"><span class= 
"diff-new">kelvSYC's Thoughts on the new XHTML Draft: Sec 6.7, need
better example of noscript element</span> <span class="pr"><span
class="diff-new">PR #6538</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Does not. The example *does* use the 'a'
element, but 'a' is still a part of XHTML 2.0 (and shorter than the
same example using 'span').</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue extracted from 7340:
Here are my thoughts on the new XHTML draft:
...
Section 6.7:
...
noscript Element:
Need a better example.  The current one defies proper XHTML 2.
...
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_6" class="issueTitle"><span class= 
"diff-new">[XHTML2] Inconsistencies in module definitions, content
of script?</span> <span class="pr"><span class="diff-new">PR
#6574</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Reject</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Yes. This is quite analogous with 'object',
apart from that in 'object' content apart from any 'param' elements
is the fallback content, while in 'script' 'noscript' is the
fallback content. The 'script' element is a convenience function,
"&lt;script...&gt;&lt;script...&gt;" could have been equivalently
coded as "script...&gt;&lt;noscript&gt;&lt;script&gt;".</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">[this issue was extracted from 6301]
Hi,
I updated my experimental RELAX NG schema for XHTML 2.0 at:
    http://www.w3.org/People/mimasa/test/schemas/rng/xhtml2.rng
In doing so I found several inconsistencies in WD-xhtml2-20030131.
To list a few:
...
- Am I right to interpret the 'script' element's content model as
  "only one of raw script data, the 'script' element or the 'noscript'
  element is allowed as a child"?
...
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<div class="issue">
<p id="s_scriptingmodule_issue_7" class="issueTitle"><span class= 
"diff-new">[XHTML2] Inconsistencies in module definitions: script
element should allow Common attributes.</span> <span class="pr">
<span class="diff-new">PR #6575</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: Accepted</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Agree. With XML Events, 'id' is
essential.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">[this issue was extracted from 6301]
Hi,
I updated my experimental RELAX NG schema for XHTML 2.0 at:
    http://www.w3.org/People/mimasa/test/schemas/rng/xhtml2.rng
In doing so I found several inconsistencies in WD-xhtml2-20030131.
To list a few:
...
- The 'script' element doesn't allow most of Common attributes, but
  I don't see why e.g. the 'id' attribute can't be used for the 'script'
  element.   The 'param' element could also allow some of Common attributes.
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<h1><a  id="s_styleAttributemodule">
<span class="diff-chg">21.</span></a> XHTML Style Attribute
Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Style Attribute Module defines the <code>style</code>
attribute. When this module is selected, it activates the <a class= 
"colref" href="#col_Style">Style</a> <span class="diff-chg">
attribute collection.</span></p>

<p>Note: use of the <a class="aref" href=
"#adef_styleAttribute_style">style</a> attribute is strongly
discouraged in favor of the <a class="eref" href= 
"#edef_styleSheet_style">style</a> element and external style
sheets. In addition, content developers are advised to avoid use of
the <a class="aref" href="#adef_styleAttribute_style">style</a>
attribute on content intended for use on small devices, since those
devices may not support the use of in-line styles.</p>

<p>Implementation: <a href="#a_rmodule_Style_Attribute">RELAX
NG</a></p>

<h2><a  id="sec_21.1."><span class="diff-chg">
21.1.</span></a> <span class="diff-chg">Issues</span></h2>

<div class="issue">
<p id="s_styleAttributemodule_issue_0" class="issueTitle"><span
class="diff-chg">"style" Alternative</span> <span class="pr"><span
class="diff-chg">PR #6244</span></span><br />
<span class="diff-chg">State: Suspended</span><br />
<span class="diff-chg">Resolution: Defer</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
The style attribute <span class="diff-chg">has been
reintroduced</span> for <span class="diff-chg">now. If it is
ultimately removed, we will need to provide guidance on issues like
this.</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class=
"diff-chg">Now that the style attribute is gone, what should I use for situations where the content -is- the presentation?
For example, I wrote a scheduling system that features an HTML calendar that shades the day dynamically based on the amount of activity.  It does this by calculating the relative amount of activity on that day compared to rest, and coming up with an RGB backgound color for the table cell containing the day using a "style" attribute.  It looks great :)  The whole system is compliant with XHTML 1.0, but it appears that the style attribute is gone now.
I'm fearing that my only XHTML 2.0 option is to dynamically generate a style sheet and call the classes in the table, but that will surely be an enormous style sheet.  Is there any good solution to this problem?
--
(This email account is passively monitored at best.)
--
</span>
</pre>
</div>

<div class="issue">
<p id="s_styleAttributemodule_issue_1" class="issueTitle"><span
class="diff-chg">[XHTML2] Comments on WD 5: provide a generic
method of specifying attributes that contain</span> style
information <span class="pr"><span class="diff-chg">PR
#6549</span></span><br />
<span class="diff-chg">State: Suspended</span><br />
<span class="diff-chg">Resolution: Defer</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">These are good suggestions. We are working
with the community to come</span> to a <span class="diff-chg">
solution for this problem, and will review your comments</span> in
that <span class="diff-chg">context.</span></p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
8) Section 6.9 Style Attribute Collection
The issue is raised in the fifth working draft of a desire of providing 
a generic method af specifying the attributes that contain style 
information.  Two possible solutions come to mind.
8a) Add an xml-styleattr PI
Add a new PI: xml-styleattr.  This would have the pseudo-attributes 
alternate, media, title and type with the same syntax as the xml-
stylesheet PI.  There would also be an "attr" attribute that would be a 
CDATA #REQUIRED pseudo-attribute."attr" would take a space separated 
list.  The XHTML2 DTD could include &lt;?xml-styleattr type="text/css" 
attr="html:style"?&gt;
8b) Replace xml-stylesheet PI with xml-style PI
This would be similar to xml-stylesheet but would allow for three ways 
of specifying the location of style information instead of just one.  
It would have the pseudo-attributes alternate, media, title and type 
with the same syntax as the xml-stylesheet PI.  The href attribute from 
xml-stylesheet and the attr attribute from the xml-styleattr proposal 
above would also be present, but changed from #REQUIRED to #IMPLIED.  
In addition, a space separated list of element names that provide style 
information for a document could be provided as a CDATA #IMPLIED pseudo-
attribute named "elem".  The XHTML2 DTD could include &lt;?xml-style 
type="text/css" attr="html:style" elem="html:style"?&gt;
...
</span>
</pre>
</div>

<h1><a  id="s_styleSheetmodule"><span
class="diff-chg">22.</span></a> XHTML Style Sheet Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Style Sheet Module defines an element to be used when
declaring internal style sheets. The element and attributes defined
by this module are:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes for Style Sheet Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td><a class="eref" href="#edef_styleSheet_style">style</a></td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_styleSheet_media">media</a> ( <span class= 
"datatype"><a href="#dt_MediaDesc">MediaDesc</a></span> )</td>
<td class="content">PCDATA</td>
</tr>
</tbody>
</table>

<p>When this module is used, it adds the <a class="eref" href= 
"#edef_styleSheet_style">style</a> element to the content model of
the <a class="eref" href="#edef_structure_head">head</a> element of
the <a href="#s_structuremodule">Structure</a> Module.</p>

<p>Implementation: <a href="#a_rmodule_Style_Sheet">RELAX
NG</a></p>

<h2><a  id="sec_22.1."><span class="diff-chg">
22.1.</span></a> The <a class="edef" id="edef_styleSheet_style">
style</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrRef'>
<dt><a class="adef" id="adef_styleSheet_media"><span class="adef">
media</span></a> = <span class="datatype"><a href="#dt_MediaDesc">
MediaDesc</a></span></dt>

<dd>The value of this attribute specifies the type of media for
which the element is intended.</dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_styleSheet_style">style</a>
element allows an author to put style sheet rules in the <a class= 
"xref" id="s_styleSheetmodule_xref_0">head</a> of the document.
XHTML permits any number of <a class="eref" href= 
"#edef_styleSheet_style">style</a> elements in the <a class="eref"
href="#edef_structure_head">head</a> section of a document.</p>

<p>User agents that don't support style sheets, or don't support
the specific style sheet language used by a <a class="eref" href= 
"#edef_styleSheet_style">style</a> element, must hide the contents
of the <a class="eref" href="#edef_styleSheet_style">style</a>
element. <a class="xdef" id="s_styleSheetmodule_xref_1">It is an
error</a> to render the content as part of the document's text.</p>

<p>The syntax of style data depends on the style sheet
language.</p>

<p>Rules for style rule precedences and inheritance depend on the
style sheet language.</p>

<div class="example">
<p>Example:</p>

<pre>
&lt;head&gt;
 &lt;style type="text/css"&gt;
   h1 {border-width: thin; border-style: solid; text-align: center}
 &lt;/style&gt;
&lt;/head&gt;
</pre>
</div>

<h3><a  id="styleSheet_external"><span
class="diff-chg">22.1.1.</span></a> External style sheets</h3>

<p>Authors may separate style sheets from XHTML documents. This
offers several benefits:</p>

<ul>
<li>Authors and web site managers may share style sheets across a
number of documents (and sites).</li>

<li>Authors may change the style sheet without requiring
modifications to the document.</li>

<li>User agents may load style sheets selectively (based on media
descriptors).</li>
</ul>

<h3><a  id="sec_22.1.2."><span class="diff-chg">
22.1.2.</span></a> Preferred and alternate style sheets</h3>

<p>XHTML allows authors to associate any number of external style
sheets with a document. The style sheet language defines how
multiple external style sheets interact (for example, the CSS
"cascade" rules).</p>

<p><a class="xdef" id="s_styleSheetmodule_xref_2">Authors may
specify a number of mutually exclusive style sheets called <dfn>
alternate</dfn> style sheets.</a> Users may select their favorite
among these depending on their preferences. For instance, an author
may specify one style sheet designed for small screens and another
for users with weak vision (e.g., large fonts). User agents should
allow users to select from alternate style sheets.</p>

<p><a class="xdef" id="s_styleSheetmodule_xref_3">The author may
specify that one of the alternates is a <dfn>preferred</dfn> style
sheet.</a> User agents should apply the author's preferred style
sheet unless the user has selected a different alternate.</p>

<p>Authors may group several alternate style sheets (including the
author's preferred style sheets) under a single <dfn>style
name</dfn> . When a user selects a named style, the user agent must
apply all style sheets with that name. User agents must not apply
alternate style sheets with a different style name. The section on
specifying external style sheets explains how to name a group of
style sheets.</p>

<p><a class="xdef" id="s_styleSheetmodule_xref_4">Authors may also
specify <dfn>persistent</dfn> style sheets that user agents must
apply in addition to any alternate style sheet.</a></p>

<p>User agents must respect <span class="datatype"><a href= 
"#dt_MediaDesc">media descriptors</a></span> when applying any
style sheet.</p>

<p>User agents should also allow users to disable the author's
style sheets entirely, in which case the user agent must not apply
any persistent or alternate style sheets.</p>

<h3><a  id="sec_22.1.3."><span class="diff-chg">
22.1.3.</span></a> Specifying external style sheets</h3>

<p>Authors specify external style sheets with the following
attributes of the <a class="eref" href="#edef_link_link">link</a>
element:</p>

<ul>
<li>Set the value of <a class="aref" href= 
"#adef_attribute-collections_href">href</a> to the location of the
style sheet file. The value of <a class="aref" href= 
"#adef_attribute-collections_href">href</a> is a <span class= 
"datatype"><a href="#dt_URI">URI</a></span> .</li>

<li>Set the value of the <a class="aref" href= 
"#adef_attribute-collections_type">type</a> attribute to indicate
the language of the linked (style sheet) resource. This allows the
user agent to avoid downloading a style sheet for an unsupported
style sheet language.</li>

<li>Specify that the style sheet is persistent, preferred, or
alternate: 

<ul>
<li>To make a style sheet persistent, set the <a class="aref" href= 
"#adef_attribute-collections_rel">rel</a> attribute to "stylesheet"
and don't set the <a class="aref" href= 
"#adef_attribute-collections_title">title</a> attribute.</li>

<li>To make a style sheet preferred, set the <a class="aref" href= 
"#adef_attribute-collections_rel">rel</a> attribute to "stylesheet"
and name the style sheet with the <a class="aref" href= 
"#adef_attribute-collections_title">title</a> attribute.</li>

<li>To specify an alternate style sheet, set the <a class="aref"
href="#adef_attribute-collections_rel">rel</a> attribute to
"alternate stylesheet" and name the style sheet with the <a class= 
"aref" href="#adef_attribute-collections_title">title</a>
attribute.</li>
</ul>
</li>
</ul>

<p>User agents should provide a means for users to view and pick
from the list of alternate styles. The value of the <a class="aref"
href="#adef_attribute-collections_title">title</a> attribute is
recommended as the name of each choice.</p>

<div class="example">
<p>In this example, we first specify a persistent style sheet
located in the file <tt>mystyle.css</tt> :</p>

<pre>
&lt;link href="mystyle.css" rel="stylesheet" type="text/css"/&gt;
</pre>

<p>Setting the <a class="aref" href= 
"#adef_attribute-collections_title">title</a> attribute makes this
the author's preferred style sheet:</p>

<pre>
 &lt;link href="mystyle.css" title="compact" rel="stylesheet" type="text/css"/&gt;
</pre>

<p>Adding the keyword "alternate" to the <a class="aref" href= 
"#adef_attribute-collections_rel">rel</a> attribute makes it an
alternate style sheet:</p>

<pre>
&lt;link href="mystyle.css" title="Medium" rel="alternate stylesheet" type="text/css"/&gt;
</pre>
</div>

<p>For more information on external style sheets, please consult
the section on links and external style sheets.</p>

<p>If two or more <a class="eref" href="#edef_link_link">link</a>
elements specify a preferred style sheet, the first one takes
precedence.</p>

<h1><a  id="s_tablesmodule"><span class= 
"diff-chg">23.</span></a> XHTML Tables Module</h1>

<p>This section is <em>normative</em> .</p>

<p>The Tables Module provides elements for marking up tabular
information in a document.</p>

<p>The module supports the following elements, attributes, and
content model:</p>

<table class="moduledef" border="1" summary="Elements and 
Attributes for Tables Module">
<thead>
<tr>
<th>Elements</th>
<th>Attributes</th>
<th>Minimal Content Model</th>
</tr>
</thead>

<tbody>
<tr>
<td>table</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_tables_caption">
caption</a> ?, <a class="eref" href="#edef_tables_summary">
summary</a> ?, ( <a class="eref" href="#edef_tables_col">col</a> *
| <a class="eref" href="#edef_tables_colgroup">colgroup</a> * ), ((
<a class="eref" href="#edef_tables_thead">thead</a> ?, <a class= 
"eref" href="#edef_tables_tfoot">tfoot</a> ?, <a class="eref" href= 
"#edef_tables_tbody">tbody</a> + ) | ( <a class="eref" href= 
"#edef_tables_tr">tr</a> + ))</td>
</tr>

<tr>
<td>caption</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Inline">
<span class="diff-chg">Inline</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>summary</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
<span class="diff-chg">Flow</span></a> <span class="diff-chg">
)*</span></td>
</tr>

<tr>
<td>col</td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_tables_span">span</a> ( <span class="datatype">
<a href="#dt_Number">Number</a></span> )</td>
<td class="content">EMPTY</td>
</tr>

<tr>
<td>colgroup</td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_tables_span">span</a> ( <span class="datatype">
<a href="#dt_Number">Number</a></span> )</td>
<td class="content"><a class="eref" href="#edef_tables_col">col</a>
*</td>
</tr>

<tr>
<td>thead</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_tables_tr">tr</a>
+</td>
</tr>

<tr>
<td>tfoot</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_tables_tr">tr</a>
+</td>
</tr>

<tr>
<td>tbody</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content"><a class="eref" href="#edef_tables_tr">tr</a>
+</td>
</tr>

<tr>
<td>tr</td>
<td><a class="colref" href="#col_Common">Common</a></td>
<td class="content">( <a class="eref" href="#edef_tables_td">td</a>
| <a class="eref" href="#edef_tables_th">th</a> )+</td>
</tr>

<tr>
<td>td</td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_tables_abbr">abbr</a> ( <span class="datatype">
<a href="#dt_Text">Text</a></span> ), <a class="aref" href= 
"#adef_tables_axis">axis</a> ( <span class="datatype"><a href= 
"#dt_CDATA">CDATA</a></span> ), <a class="aref" href= 
"#adef_tables_colspan">colspan</a> ( <span class="datatype"><a
href="#dt_Number">Number</a></span> ), <a class="aref" href= 
"#adef_tables_headers">headers</a> ( <span class="datatype"><a
href="#dt_IDREFS">IDREFS</a></span> ), <a class="aref" href= 
"#adef_tables_rowspan">rowspan</a> ( <span class="datatype"><a
href="#dt_Number">Number</a></span> ), <a class="aref" href= 
"#adef_tables_scope">scope</a> ("row", "col", "rowgroup",
"colgroup")</td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
Flow</a> )*</td>
</tr>

<tr>
<td>th</td>
<td><a class="colref" href="#col_Common">Common</a> , <a class=
"aref" href="#adef_tables_abbr">abbr</a> ( <span class="datatype">
<a href="#dt_Text">Text</a></span> ), <a class="aref" href= 
"#adef_tables_axis">axis</a> ( <span class="datatype"><a href= 
"#dt_CDATA">CDATA</a></span> ), <a class="aref" href= 
"#adef_tables_colspan">colspan</a> ( <span class="datatype"><a
href="#dt_Number">Number</a></span> ), <a class="aref" href= 
"#adef_tables_headers">headers</a> ( <span class="datatype"><a
href="#dt_IDREFS">IDREFS</a></span> ), <a class="aref" href= 
"#adef_tables_rowspan">rowspan</a> ( <span class="datatype"><a
href="#dt_Number">Number</a></span> ), <a class="aref" href= 
"#adef_tables_scope">scope</a> ("row", "col", "rowgroup",
"colgroup")</td>
<td class="content">(PCDATA | <a class="csref" href="#cs_Flow">
Flow</a> )*</td>
</tr>
</tbody>
</table>

<p>When this module is used, it adds the <a class="eref" href= 
"#edef_tables_table">table</a> element to the <a class="csref"
href="#cs_Block">Block</a> content set of the Block Text
Module.</p>

<p>Implementation: <a href="#a_rmodule_Tables">RELAX NG</a></p>

<h2><a  id="sec_23.1."><span class="diff-chg">
23.1.</span></a> The <a class="edef" id="edef_tables_caption">
caption</a> element</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>When present, the <a class="eref" href="#edef_tables_caption">
caption</a> element's text should <a class="xdef" id= 
"s_tablesmodule_xref_0">describe the nature of the table or the
object.</a> The <a class="eref" href="#edef_tables_caption">
caption</a> element is only permitted immediately after the <a
class="eref" href="#edef_tables_table">table</a> start tag or the
<a class="eref" href="#edef_object_object">object</a> start tag. A
<a class="eref" href="#edef_tables_table">table</a> element or an
<a class="eref" href="#edef_object_object">object</a> element may
only contain one <a class="eref" href="#edef_tables_caption">
caption</a> element.</p>

<p>For tables, visual user agents allow sighted people to quickly
grasp the structure of the table from the headings as well as the
caption. A consequence of this is that captions will often be
inadequate as a summary of the purpose and structure of the table
from the perspective of people relying on non-visual user
agents.</p>

<p><a class="xdef" id="s_tablesmodule_xref_1">Authors should
therefore take care to provide additional</a> information
summarizing the purpose and structure of the table using the <a
class="eref" href="#edef_tables_summary">summary</a> element. This
is especially important for tables without captions. The example
below illustrates the use of the <a class="eref" href= 
"#edef_tables_summary">summary</a> element.</p>

<p>User agents must provide access to the content of the <a class= 
"eref" href="#edef_tables_summary">summary</a> element. As an
example, access could be provided through a menu option, a
mouse-over function, or through a dialog.</p>

<div class="example">
<p>The following example demonstrates the difference between a
table caption and a table summary.</p>

<pre>
&lt;table&gt;
  &lt;caption&gt;Student Class Roster&lt;/caption&gt;
  &lt;summary&gt;The table defines the class roster.
    The columns contain the following data:
    students name, permanent address, permanent phone,
    local address, local phone,
    declared major, assigned academic advisor,
    student standing&lt;/summary&gt;
  <em>...the rest of the table...</em>
&lt;/table&gt;
</pre>
</div>

<h3><a  id="sec_23.1.1."><span class="diff-chg">
23.1.1.</span></a> Caption Clipping</h3>

<p>Visual user agents must avoid <a class="xdef" id= 
"s_tablesmodule_xref_2">clipping</a> any part of the table
including the caption, unless a means is provided to access all
parts, e.g., by horizontal or vertical scrolling. We recommend that
the caption text be wrapped to the same width as the table.</p>

<h2><a  id="sec_23.2."><span class="diff-chg">
23.2.</span></a> The <a class="edef" id="edef_tables_col">col</a>
and <a class="edef" id="edef_tables_colgroup">colgroup</a>
elements</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_span"><span class="adef">
span</span></a> = <span class="datatype"><a href="#dt_Number">
Number</a></span></dt>

<dd>This attribute must be an integer &gt; 0; the default value is
1. This specifies the number of columns in a <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> , or specifies the number of
columns "spanned" by the <a class="eref" href="#edef_tables_col">
col</a> element. 

<p>Values mean the following:</p>

<ul>
<li>In the absence of a <a class="aref" href="#adef_tables_span">
span</a> attribute, each <a class="eref" href=
"#edef_tables_colgroup">colgroup</a> defines a column group
containing one column.</li>

<li>If the <a class="aref" href="#adef_tables_span">span</a>
attribute is used with the <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> element and the value is set
to N &gt; 0, that defines a column group containing N columns.</li>

<li>If the <a class="aref" href="#adef_tables_span">span</a>
attribute is used with the <a class="eref" href="#edef_tables_col">
col</a> element and the value is set to N &gt; 1, the current <a
class="eref" href="#edef_tables_col">col</a> element shares its
attributes with the next N-1 columns.</li>
</ul>

<p>User agents must ignore this attribute if the <a class="eref"
href="#edef_tables_colgroup">colgroup</a> element contains one or
more <a class="eref" href="#edef_tables_col">col</a> elements.</p>
</dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_tables_colgroup">colgroup</a>
element allows authors to create structural divisions within a
table. Authors may highlight this structure through style sheets.
For example, the author may wish to divide the columns into logical
groups such as the student's permanent address, phone number and
emergency contact information. And group the student's local
address, phone and email address into another logical group.</p>

<p>A <a class="eref" href="#edef_tables_table">table</a> may either
contain a single implicit column group (no <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> element delimits the columns)
or any number of explicit column groups (each delimited by an
instance of the <a class="eref" href="#edef_tables_colgroup">
colgroup</a> element).</p>

<p>The <a class="eref" href="#edef_tables_col">col</a> element
allows authors to share attributes among several columns without
implying any structural grouping. The "span" of the <a class="eref"
href="#edef_tables_col">col</a> element is the number of columns
that will share the element's attributes. For example, the author
may wish to apply a specific style to the student's permanent data
and apply a different style to the student's local data.</p>

<p>The <a class="eref" href="#edef_tables_colgroup">colgroup</a>
element creates an explicit column group. The number of columns in
the column group may be specified in two, mutually exclusive
ways:</p>

<ol>
<li>The colgroup <a class="aref" href="#adef_tables_span">span</a>
attribute (default value 1) specifies the number of columns in the
group.</li>

<li>Each embedded <a class="eref" href="#edef_tables_col">col</a>
element in the <a class="eref" href="#edef_tables_colgroup">
colgroup</a> represents one or more columns in the group.</li>
</ol>

<p>The advantage of using the <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> element is that authors may
logically group multiple columns. By grouping columns, the author
can apply rules across the entire group. The author can also apply
column width balancing across the group of columns. For example, if
the author has a table with five columns and the author divides the
table into two column groups, one with three columns and the other
with two columns. The author could define the first column group to
consume 300 pixels and the second column group to consume 100
pixels. Each column within the first column group would be 100
pixels wide and the remaining two columns would be 50 pixels wide.
If the author added embedded <a class="eref" href=
"#edef_tables_col">col</a> elements, she could force one or more
columns to be a specific width and the remaining columns within the
group would be evenly divided within the remaining allotted
width.</p>

<div class="example">
<p>For example, the following table defines a column group and
embedded columns with differing widths.</p>

<pre>
&lt;style type="text/css"&gt;
#colgrp1 { width: 300px }
#col1 { width: 100px }
#col2 { width: 50px }
&lt;/style&gt;
...
&lt;table&gt;
  &lt;colgroup id="colgrp1"&gt;
    &lt;col id="col1" span="3"/&gt;
    &lt;col id="col2" span="2"/&gt;
  &lt;/colgroup&gt;
<em>...the rest of the table...</em>
&lt;/table&gt;
</pre>

<p>In this example, the defined width for the <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> constrains all of the columns
to fit within that value regardless of the of the defined values
within the <a class="eref" href="#edef_tables_col">col</a> <span
class="diff-chg">elements.</span> In this example, the width of the
columns within the column group must be constrained to fit the
defined width of the column group.</p>
</div>

<p>When it is necessary to single out a column (e.g., for style
information, to specify width information, etc.) within a group,
authors must identify that column with a <a class="eref" href= 
"#edef_tables_col">col</a> element.</p>

<p>The <a class="eref" href="#edef_tables_col">col</a> element
allows authors to group together attribute specifications for table
columns. The <a class="eref" href="#edef_tables_col">col</a> does
<strong>not</strong> group columns together structurally -- that is
the role of the <a class="eref" href="#edef_tables_colgroup">
colgroup</a> element. <a class="eref" href="#edef_tables_col">
col</a> elements are empty and serve only as a support for
attributes. They may appear inside or outside an explicit column
group (i.e., <a class="eref" href="#edef_tables_colgroup">
colgroup</a> element).</p>

<h3><a  id="column-calc"><span class="diff-chg">
23.2.1.</span></a> Calculating the number of columns in a
table</h3>

<p>There are two ways to determine the number of columns in a table
(in order of precedence):</p>

<ol>
<li>If the <a class="eref" href="#edef_tables_table">table</a>
element contains any <a class="eref" href="#edef_tables_colgroup">
colgroup</a> or <a class="eref" href="#edef_tables_col">col</a>
elements, user agents should calculate the number of columns by
summing the following: 

<ul>
<li>For each <a class="eref" href="#edef_tables_col">col</a>
element, take the value of its <a class="aref" href= 
"#adef_tables_span">span</a> attribute (default value 1).</li>

<li>For each <a class="eref" href="#edef_tables_colgroup">
colgroup</a> element containing at least one <a class="eref" href= 
"#edef_tables_col">col</a> element, ignore the <a class="aref"
href="#adef_tables_span">span</a> attribute for the <a class="eref"
href="#edef_tables_colgroup">colgroup</a> element. For each <a
class="eref" href="#edef_tables_col">col</a> element, perform the
calculation of step 1.</li>

<li>For each empty <a class="eref" href="#edef_tables_colgroup">
colgroup</a> element, take the value of its <a class="aref" href= 
"#adef_tables_span">span</a> attribute (default value 1).</li>
</ul>
</li>

<li>Otherwise, if the <a class="eref" href="#edef_tables_table">
table</a> element contains no <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> or <a class="eref" href= 
"#edef_tables_col">col</a> elements, user agents should base the
number of columns on what is required by the rows. The number of
columns is equal to the number of columns required by the row with
the most columns, including cells that span multiple columns. For
any row that has fewer than this number of columns, the end of that
row should be padded with empty cells. The "end" of a row depends
on the <span class="index-inst" title="table::directionality 
of|direction::of table information"><a >
directionality of a table</a></span> .</li>
</ol>

<p>It is an error if a table contains <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> or <a class="eref" href= 
"#edef_tables_col">col</a> elements and the two calculations do not
result in the same number of columns.</p>

<p>Once the user agent has calculated the number of columns in the
table, it may group them into a <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> .</p>

<h2><a  id="sec_23.3."><span class="diff-chg">
23.3.</span></a> The <a class="edef" id="edef_tables_summary">
summary</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>This element provides a summary of the table's purpose and
structure for user agents rendering to non-visual media such as
speech and Braille.</p>

<h2><a  id="sec_23.4."><span class="diff-chg">
23.4.</span></a> The <a class="edef" id="edef_tables_table">
table</a> element</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_tables_table">table</a> element
contains all other elements that specify the caption, column
groups, columns, rows, and content for a table.</p>

<h3><a  id="sec_23.4.1."><span class="diff-chg">
23.4.1.</span></a> Visual Rendering</h3>

<p>The following informative list describes what operations visual
user agents may carry out when rendering a table:</p>

<ul>
<li>Provide access to the content of the <a class="eref" href= 
"#edef_tables_summary">summary</a> element. As an example, access
could be provided through a menu option, a mouse-over function, or
through a dialog. Authors should provide a summary of a table's
content and structure so that people using non-visual user agents
may better understand it.</li>

<li>Render the caption, if one is defined. The caption may be
rendered, for example, either on the top or the bottom of the
table.</li>

<li>Render the table header, if one is specified. Render the table
footer, if one is specified. User agents must know where to render
the header and footer. For instance, if the output medium is paged,
user agents may put the header at the top of each page and the
footer at the bottom. Similarly, if the user agent provides a
mechanism to scroll the rows, the header may appear at the top of
the scrolled area and the footer at the bottom.</li>

<li>Calculate the <a href="#column-calc">number of columns</a> in
the table. <span class="index-inst" title="table::number of 
rows|row::number of in table"><a >Note that the
number of rows in a table</a></span> is equal to the number of <a
class="eref" href="#edef_tables_tr">tr</a> elements contained by
the <a class="eref" href="#edef_tables_table">table</a>
element.</li>

<li>Group the columns according to any <a class="eref" href= 
"#edef_tables_colgroup">column groups</a> specifications.</li>

<li>Render the cells, row by row and grouped in appropriate
columns, between the header and footer. Visual user agents should
format the table according to XHTML attributes and style sheet
specification.</li>
</ul>

<p>The XHTML table model has been designed so that, with author
assistance, user agents may render tables <span class="index-inst"
title="table::incremental rendering of"><a ><em>
incrementally</em></a></span> (i.e., as table rows arrive) rather
than having to wait for all the data before beginning to
render.</p>

<p>In order for a user agent to format a table in one pass, authors
must tell the user agent:</p>

<ul>
<li>The number of columns in the table.</li>

<li>The widths of these columns.</li>
</ul>

<p>More precisely, a user agent may render a table in a single pass
when the column widths are specified using a combination of <a
class="eref" href="#edef_tables_colgroup">colgroup</a> and <a
class="eref" href="#edef_tables_col">col</a> elements. If any of
the columns are specified in relative or percentage terms, authors
must also specify the width of the table itself.</p>

<h3><a  id="table-directionality"><span
class="diff-chg">23.4.2.</span></a> Table directionality</h3>

<p>The <span class="index-inst" title="table::directionality 
of|direction::of table information"><a >
directionality of a table</a></span> is either the inherited
directionality (the default is left-to-right) or that specified by
the <a class="aref" href="#adef_attribute-collections_dir">dir</a>
attribute for the <a class="eref" href="#edef_tables_table">
table</a> element.</p>

<p>For a left-to-right table, column zero is on the left side and
row zero is at the top. For a right-to-left table, column zero is
on the right side and row zero is at the top.</p>

<p>When a user agent allots extra cells to a row, extra row cells
are added to the right of the table for left-to-right tables and to
the left side for right-to-left tables.</p>

<p>Note that <a class="eref" href="#edef_tables_table">table</a> is
the only element on which <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> reverses the visual order
of the columns; a single table row ( <a class="eref" href= 
"#edef_tables_tr">tr</a> ) or a group of columns ( <a class="eref"
href="#edef_tables_colgroup">colgroup</a> ) cannot be independently
reversed.</p>

<p>When set for the <a class="eref" href="#edef_tables_table">
table</a> element, the <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute also affects
the direction of text within table cells (since the <a class="aref"
href="#adef_attribute-collections_dir">dir</a> attribute is
inherited by block-level elements).</p>

<div class="example">
<p>To specify a right-to-left table, set the <a class="aref" href= 
"#adef_attribute-collections_dir">dir</a> attribute as follows:</p>

<pre>
&lt;table dir="rtl"&gt;
<em>...the rest of the table...</em>
&lt;/table&gt;
</pre>
</div>

<p>The direction of text in individual cells can be changed by
setting the <a class="aref" href="#adef_attribute-collections_dir">
dir</a> attribute in an element that defines the cell.</p>

<h3><a  id="non-visual-rendering"><span
class="diff-chg">23.4.3.</span></a> Table rendering by non-visual
user agents</h3>

<p>This section provides more detailed discussion on cell header
data and how non-visual agents may utilize that information.</p>

<h4><a  id="header-data"><span class="diff-chg">
23.4.3.1.</span></a> Associating header information with data
cells</h4>

<p>Non-visual user agents such as speech synthesizers and
Braille-based devices may use the following <a class="eref" href= 
"#edef_tables_td">td</a> and <a class="eref" href=
"#edef_tables_th">th</a> element attributes to render table cells
more intuitively:</p>

<ul>
<li>For a given data cell, the <a class="aref" href= 
"#adef_tables_headers">headers</a> attribute lists which cells
provide pertinent header information. For this purpose, each header
cell must be named using the <a class="aref" href= 
"#adef_attribute-collections_id">id</a> attribute. Note that it's
not always possible to make a clean division of cells into headers
or data. You should use the <a class="eref" href="#edef_tables_td">
td</a> element for such cells together with the <a class="aref"
href="#adef_attribute-collections_id">id</a> or <a class="aref"
href="#adef_tables_scope">scope</a> attributes as appropriate.</li>

<li><span class="index-inst" title="header cell::scope of|scope::of 
table header cell"><a >For a given header
cell</a></span> , the <a class="aref" href="#adef_tables_scope">
scope</a> attribute tells the user agent the data cells for which
this header provides information. Authors may choose to use this
attribute instead of <a class="aref" href="#adef_tables_headers">
headers</a> according to which is more convenient; the two
attributes fulfill the same function. The <a class="aref" href= 
"#adef_tables_headers">headers</a> attribute is generally needed
when headers are placed in irregular positions with respect to the
data they apply to.</li>

<li><span class="index-inst" title="header cell::abbreviation">The
<a class="aref" href="#adef_tables_abbr">abbr</a> attribute</span>
specifies an abbreviated header for header cells so that user
agents may render header information more rapidly.</li>
</ul>

<div class="example">
<p>In the following example, we assign header information to cells
by setting the <a class="aref" href="#adef_tables_headers">
headers</a> attribute. Each cell in the same column refers to the
same header cell (via the <a class="aref" href= 
"#adef_attribute-collections_id">id</a> attribute).</p>

<pre>
&lt;table&gt;
&lt;caption&gt;Cups of coffee consumed by each senator&lt;/caption&gt;
&lt;summary&gt;This table charts the number of cups
          of coffee consumed by each senator, the type 
          of coffee (decaf or regular), and whether 
          taken with sugar.&lt;/summary&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;th id="t1"&gt;Name&lt;/th&gt;
      &lt;th id="t2"&gt;Cups&lt;/th&gt;
      &lt;th id="t3" abbr="Type"&gt;Type of Coffee&lt;/th&gt;
      &lt;th id="t4"&gt;Sugar?&lt;/th&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td headers="t1"&gt;T. Sexton&lt;/td&gt;
      &lt;td headers="t2"&gt;10&lt;/td&gt;
      &lt;td headers="t3"&gt;Espresso&lt;/td&gt;
      &lt;td headers="t4"&gt;No&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td headers="t1"&gt;J. Dinnen&lt;/td&gt;
      &lt;td headers="t2"&gt;5&lt;/td&gt;
      &lt;td headers="t3"&gt;Decaf&lt;/td&gt;
      &lt;td headers="t4"&gt;Yes&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>A speech synthesizer might render this table as follows:</p>

<pre class="example">
Caption: Cups of coffee consumed by each senator
Summary: This table charts the number of cups
         of coffee consumed by each senator, the type 
         of coffee (decaf or regular), and whether 
         taken with sugar.
Name: T. Sexton,   Cups: 10,   Type: Espresso,   Sugar: No
Name: J. Dinnen,   Cups: 5,    Type: Decaf,      Sugar: Yes
</pre>

<p>Note how the header "Type of Coffee" is abbreviated to "Type"
using the <a class="aref" href="#adef_tables_abbr">abbr</a>
attribute.</p>
</div>

<div class="example">
<p>Here is the same example substituting the <a class="aref" href= 
"#adef_tables_scope">scope</a> attribute for the <a class="aref"
href="#adef_tables_headers">headers</a> attribute. Note the value
"col" for the <a class="aref" href="#adef_tables_scope">scope</a>
attribute, meaning "all cells in the current column":</p>

<pre>
&lt;table&gt;
&lt;caption&gt;Cups of coffee consumed by each senator&lt;/caption&gt;
&lt;summary&gt;
  This table charts the number of cups
  of coffee consumed by each senator, the type 
  of coffee (decaf or regular), and whether 
  taken with sugar.
&lt;/summary&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;th scope="col"&gt;Name&lt;/th&gt;
      &lt;th scope="col"&gt;Cups&lt;/th&gt;
      &lt;th scope="col" abbr="Type"&gt;Type of Coffee&lt;/th&gt;
      &lt;th scope="col"&gt;Sugar?&lt;/th&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;T. Sexton&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;Espresso&lt;/td&gt;
      &lt;td&gt;No&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;J. Dinnen&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;Decaf&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>
</div>

<div class="example" id="course-ex">
<p>Here's a somewhat more complex example illustrating other values
for the <a class="aref" href="#adef_tables_scope">scope</a>
attribute:</p>

<pre>
&lt;table&gt;
&lt;summary&gt;
  History courses offered in the community of
  Bath arranged by course name, tutor, summary, 
  code, and fee
&lt;/summary&gt;
&lt;thead&gt;
  &lt;tr&gt;
    &lt;th colspan="5" scope="colgroup"&gt;Community Courses -- Bath Autumn 1997&lt;/th&gt;
  &lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
  &lt;tr&gt;
    &lt;th scope="col" abbr="Name"&gt;Course Name&lt;/th&gt;
    &lt;th scope="col" abbr="Tutor"&gt;Course Tutor&lt;/th&gt;
    &lt;th scope="col"&gt;Summary&lt;/th&gt;
    &lt;th scope="col"&gt;Code&lt;/th&gt;
    &lt;th scope="col"&gt;Fee&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td scope="row"&gt;After the Civil War&lt;/td&gt;
    &lt;td&gt;Dr. John Wroughton&lt;/td&gt;
    &lt;td&gt;
       The course will examine the turbulent years in England
       after 1646. &lt;em&gt;6 weekly meetings starting Monday 13th
       October.&lt;/em&gt;
    &lt;/td&gt;
    &lt;td&gt;H27&lt;/td&gt;
    &lt;td&gt;&amp;pound;32&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td scope="row"&gt;An Introduction to Anglo-Saxon England&lt;/td&gt;
    &lt;td&gt;Mark Cottle&lt;/td&gt;
    &lt;td&gt;
       One day course introducing the early medieval
       period reconstruction the Anglo-Saxons and
       their society. &lt;em&gt;Saturday 18th October.&lt;/em&gt;
    &lt;/td&gt;
    &lt;td&gt;H28&lt;/td&gt;
    &lt;td&gt;&amp;pound;18&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td scope="row"&gt;The Glory that was Greece&lt;/td&gt;
    &lt;td&gt;Valerie Lorenz&lt;/td&gt;
    &lt;td&gt;
     Birthplace of democracy, philosophy, heartland of theater, home of
     argument. The Romans may have done it but the Greeks did it
     first. &lt;em&gt;Saturday day school 25th October 1997&lt;/em&gt;
    &lt;/td&gt;
    &lt;td&gt;H30&lt;/td&gt;
    &lt;td&gt;&amp;pound;18&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>A graphical user agent might render this as:</p>

<p><img src="images/table2.gif" alt=
"A table with merged cells" /></p>

<p>Note the use of the <a class="aref" href="#adef_tables_scope">
scope</a> attribute with the "row" value. Although the first cell
in each row contains data, not header information, the <a class= 
"aref" href="#adef_tables_scope">scope</a> attribute makes the data
cell behave like a row header cell. This allows speech synthesizers
to provide the relevant course name upon request or to state it
immediately before each cell's content.</p>
</div>

<h4><a  id="categorize-cells"><span class= 
"diff-chg">23.4.3.2.</span></a> Categorizing cells</h4>

<p>Users browsing a table with a speech-based user agent may wish
to hear an explanation of a cell's contents in addition to the
contents themselves. One way the user might provide an explanation
is by speaking associated header information before speaking the
data cell's contents (see the section on <a href="#header-data">
associating header information with data cells</a> ).</p>

<p>Users may also want information about more than one cell, in
which case header information provided at the cell level (by <a
class="aref" href="#adef_tables_headers">headers</a> , <a class= 
"aref" href="#adef_tables_scope">scope</a> , and <a class="aref"
href="#adef_tables_abbr">abbr</a> ) may not provide adequate
context. Consider the following table, which classifies expenses
for meals, hotels, and transport in two locations (San Jose and
Seattle) over several days:</p>

<div><img src="images/table1.gif" alt=
"Image of a table listing travel expenses at two locations: San Jose and Seattle, by date, and category (meals, hotels, and transport), shown with subtitles"
 width="399" height="207" /></div>

<p>Users might want to extract information from the table in the
form of queries:</p>

<ul>
<li>"What did I spend for all my meals?"</li>

<li>"What did I spend for meals on 25 August?"</li>

<li>"What did I spend for all expenses in San Jose?"</li>
</ul>

<p>Each query involves a computation by the user agent that may
involve zero or more cells. In order to determine, for example, the
costs of meals on 25 August, the user agent must know which table
cells refer to "Meals" (all of them) and which refer to "Dates"
(specifically, 25 August), and find the intersection of the two
sets.</p>

<p>To accommodate this type of query, the table model allows
authors to place cell headers and data into categories. For
example, for the travel expense table, an author could group the
header cells "San Jose" and "Seattle" into the category "Location",
the headers "Meals", "Hotels", and "Transport" in the category
"Expenses", and the four days into the category "Date". The
previous three questions would then have the following
meanings:</p>

<ul>
<li>"What did I spend for all my meals?" means "What are all the
data cells in the "Expenses=Meals" category?</li>

<li>"What did I spend for meals on 25 August?" means "What are all
the data cells in the "Expenses=Meals" and "Date=Aug-25-1997"
categories?</li>

<li>"What did I spend for all expenses in San Jose?" means "What
are all the data cells in the "Expenses=Meals, Hotels, Transport"
and "Location=San Jose" categories?</li>
</ul>

<p>Authors categorize a header or data cell by setting the <a
class="aref" href="#adef_tables_axis">axis</a> attribute for the
cell. For instance, in the travel expense table, the cell
containing the information "San Jose" could be placed in the
"Location" category as follows:</p>

<pre>
  &lt;th id="a6" axis="location"&gt;San Jose&lt;/th&gt;
</pre>

<p>Any cell containing information related to "San Jose" should
refer to this header cell via either the <a class="aref" href= 
"#adef_tables_headers">headers</a> or the <a class="aref" href= 
"#adef_tables_scope">scope</a> attribute. Thus, meal expenses for
25-Aug-1997 should be marked up to refer to <a class="aref" href= 
"#adef_attribute-collections_id">id</a> attribute (whose value here
is "a6") of the "San Jose" header cell:</p>

<pre>
  
  &lt;td headers="a6"&gt;37.74&lt;/td&gt;
</pre>

<p>Each <a class="aref" href="#adef_tables_headers">headers</a>
attribute provides a list of <a class="aref" href= 
"#adef_attribute-collections_id">id</a> references. Authors may
thus categorize a given cell in any number of ways (or, along any
number of "headers", hence the name).</p>

<p>Below we mark up the travel expense table with category
information:</p>

<pre>
&lt;table&gt;
&lt;caption&gt;Travel Expense Report&lt;/caption&gt;
&lt;summary&gt;
  This table summarizes travel expenses
  incurred during August trips to
  San Jose and Seattle
&lt;/summary&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th id="a2" axis="expenses"&gt;Meals&lt;/th&gt;
      &lt;th id="a3" axis="expenses"&gt;Hotels&lt;/th&gt;
      &lt;th id="a4" axis="expenses"&gt;Transport&lt;/th&gt;
      &lt;td&gt;subtotals&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;th id="a6" axis="location"&gt;San Jose&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td id="a7" axis="date"&gt;25-Aug-97&lt;/td&gt;
      &lt;td headers="a6 a7 a2"&gt;37.74&lt;/td&gt;
      &lt;td headers="a6 a7 a3"&gt;112.00&lt;/td&gt;
      &lt;td headers="a6 a7 a4"&gt;45.00&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td id="a8" axis="date"&gt;26-Aug-97&lt;/td&gt;
      &lt;td headers="a6 a8 a2"&gt;27.28&lt;/td&gt;
      &lt;td headers="a6 a8 a3"&gt;112.00&lt;/td&gt;
      &lt;td headers="a6 a8 a4"&gt;45.00&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;subtotals&lt;/td&gt;
      &lt;td&gt;65.02&lt;/td&gt;
      &lt;td&gt;224.00&lt;/td&gt;
      &lt;td&gt;90.00&lt;/td&gt;
      &lt;td&gt;379.02&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;th id="a10" axis="location"&gt;Seattle&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;th&gt;&lt;/th&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td id="a11" axis="date"&gt;27-Aug-97&lt;/td&gt;
      &lt;td headers="a10 a11 a2"&gt;96.25&lt;/td&gt;
      &lt;td headers="a10 a11 a3"&gt;109.00&lt;/td&gt;
      &lt;td headers="a10 a11 a4"&gt;36.00&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td id="a12" axis="date"&gt;28-Aug-97&lt;/td&gt;
      &lt;td headers="a10 a12 a2"&gt;35.00&lt;/td&gt;
      &lt;td headers="a10 a12 a3"&gt;109.00&lt;/td&gt;
      &lt;td headers="a10 a12 a4"&gt;36.00&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;subtotals&lt;/td&gt;
      &lt;td&gt;131.25&lt;/td&gt;
      &lt;td&gt;218.00&lt;/td&gt;
      &lt;td&gt;72.00&lt;/td&gt;
      &lt;td&gt;421.25&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;th&gt;Totals&lt;/th&gt;
      &lt;td&gt;196.27&lt;/td&gt;
      &lt;td&gt;442.00&lt;/td&gt;
      &lt;td&gt;162.00&lt;/td&gt;
      &lt;td&gt;800.27&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>Note that marking up the table this way also allows user agents
to avoid confusing the user with unwanted information. For
instance, if a speech synthesizer were to speak all of the figures
in the "Meals" column of this table in response to the query "What
were all my meal expenses?", a user would not be able to
distinguish a day's expenses from subtotals or totals. By carefully
categorizing cell data, authors allow user agents to make important
semantic distinctions when rendering.</p>

<p>Of course, there is no limit to how authors may categorize
information in a table. In the travel expense table, for example,
we could add the additional categories "subtotals" and
"totals".</p>

<p>This specification does not require user agents to handle
information provided by the <a class="aref" href=
"#adef_tables_axis">axis</a> attribute, nor does it make any
recommendations about how user agents may present <a class="aref"
href="#adef_tables_axis">axis</a> information to users or how users
may query the user agent about this information.</p>

<p><span class="index-inst" title="table::speaking cell data"><a
>However, user agents, particularly speech
synthesizers,</a></span> may want to factor out information common
to several cells that are the result of a query. For instance, if
the user asks "What did I spend for meals in San Jose?", the user
agent would first determine the cells in question (25-Aug-1997:
37.74, 26-Aug-1997:27.28), then render this information. A user
agent speaking this information might read it:</p>

<pre class="example">
   Location: San Jose. Date: 25-Aug-1997. Expenses, Meals: 37.74
   Location: San Jose. Date: 26-Aug-1997. Expenses, Meals: 27.28
</pre>

<p>or, more compactly:</p>

<pre class="example">
   San Jose, 25-Aug-1997, Meals: 37.74
   San Jose, 26-Aug-1997, Meals: 27.28
</pre>

<p>An even more economical rendering would factor the common
information and reorder it:</p>

<pre class="example">
   San Jose, Meals, 25-Aug-1997: 37.74
                    26-Aug-1997: 27.28
</pre>

<p>User agents that support this type of rendering should allow
authors a means to customize rendering (e.g., through style
sheets).</p>

<h4><a  id="sec_23.4.3.3."><span class=
"diff-chg">23.4.3.3.</span></a> Algorithm to find heading
information</h4>

<p>In the absence of header information from either the <a class= 
"aref" href="#adef_tables_scope">scope</a> or <a class="aref" href= 
"#adef_tables_headers">headers</a> attribute, user agents may
construct header information according to the following algorithm.
The goal of the algorithm is to find an ordered list of headers.
(In the following description of the algorithm the <a href= 
"#table-directionality">table directionality</a> is assumed to be
left-to-right.)</p>

<ul>
<li>First, search left from the cell's position to find row header
cells. Then search upwards to find column header cells. The search
in a given direction stops when the edge of the table is reached or
when a data cell is found after a header cell.</li>

<li>Row headers are inserted into the list in the order they appear
in the table. For left-to-right tables, headers are inserted from
left to right.</li>

<li>Column headers are inserted after row headers, in the order
they appear in the table, from top to bottom.</li>

<li>If a header cell has the <a class="aref" href= 
"#adef_tables_headers">headers</a> attribute set, then the headers
referenced by this attribute are inserted into the list and the
search stops for the current direction.</li>

<li><a class="eref" href="#edef_tables_td">td</a> cells that set
the <a class="aref" href="#adef_tables_axis">axis</a> attribute are
also treated as header cells.</li>
</ul>

<h3><a  id="sec_23.4.4."><span class="diff-chg">
23.4.4.</span></a> Sample table</h3>

<p>This sample illustrates grouped rows and columns.</p>

<div class="example">
<pre>
&lt;table&gt;
&lt;caption&gt;Calendar for 2002&lt;/caption&gt;
&lt;summary&gt;
  Calendar for 2002. @@need better summary
&lt;/summary&gt;
&lt;colgroup span="7"/&gt;
&lt;colgroup span="7"/&gt;
&lt;colgroup span="7"/&gt;
&lt;thead&gt;
   &lt;tr&gt;
      &lt;th colspan="7"&gt;January&lt;/th&gt;
      &lt;th colspan="7"&gt;February&lt;/th&gt;
      &lt;th colspan="7"&gt;March&lt;/th&gt;
   &lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;td&gt;S&lt;/td&gt;&lt;td&gt;M&lt;/td&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;W&lt;/td&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;S&lt;/td&gt;
      &lt;td&gt;S&lt;/td&gt;&lt;td&gt;M&lt;/td&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;W&lt;/td&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;S&lt;/td&gt;
      &lt;td&gt;S&lt;/td&gt;&lt;td&gt;M&lt;/td&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;W&lt;/td&gt;&lt;td&gt;T&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;S&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;13&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;&lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;
      &lt;td&gt;17&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;
      &lt;td&gt;17&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;td&gt;23&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;27&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;&lt;td&gt;31&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
      &lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
      &lt;td&gt;24&lt;/td&gt;&lt;td&gt;25&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;td&gt;27&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;td&gt;30&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
      &lt;td&gt;31&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>would be rendered something like this:</p>

<pre class="example">
                      Calendar for 2002
===================================================================
      January         |       February      |        March  
 S  M  T  W  T  F  S  | S  M  T  W  T  F  S | S  M  T  W  T  F  S 
-------------------------------------------------------------------
       1  2  3  4  5  |                1  2 |                1  2
 6  7  8  9  10 11 12 | 3  4  5  6  7  8  9 | 3  4  5  6  7  8  9
 13 14 15 16 17 18 19 | 10 11 12 13 14 15 16| 10 11 12 13 14 15 16
 20 21 22 23 24 25 26 | 17 18 19 20 21 22 23| 17 18 19 20 21 22 23
 27 28 29 30 31       | 24 25 26 27 28      | 24 25 26 27 28 29 30
                      |                     |                   31
===================================================================
</pre>

<p>A graphical user agent might render this as:</p>

<p><img src="images/table3.gif" alt=
"A table with grouped rows and columns" /></p>

<p>This example illustrates how <a class="eref" href= 
"#edef_tables_colgroup">colgroup</a> can be used to group columns
and set the default column alignment. Similarly, <a class="eref"
href="#edef_tables_tbody">tbody</a> is used to group rows.</p>
</div>

<h2><a  id="sec_23.5."><span class="diff-chg">
23.5.</span></a> The <a class="edef" id="edef_tables_tbody">
tbody</a> element</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_tables_tbody">tbody</a> element
contains rows of table data. In tables that also contain <a class= 
"eref" href="#edef_tables_thead">thead</a> or <a class="eref" href= 
"#edef_tables_tfoot">tfoot</a> elements, all of these sections must
contain the same number of columns.</p>

<h2><a  id="sec_23.6."><span class="diff-chg">
23.6.</span></a> The <a class="edef" id="edef_tables_td">td</a> and
<a class="edef" id="edef_tables_th">th</a> elements</h2>

<div class="adef-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_abbr"><span class="adef">
abbr</span></a> = <span class="datatype"><a href="#dt_Text">
Text</a></span></dt>

<dd>This attribute should be used to provide an abbreviated form of
the cell's content, and may be rendered by user agents when
appropriate in place of the cell's content. Abbreviated names
should be short since user agents may render them repeatedly. For
instance, speech synthesizers may render the abbreviated headers
relating to a particular cell before rendering that cell's
content.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_axis"><span class="adef">
axis</span></a> = <span class="datatype"><a href="#dt_CDATA">
CDATA</a></span></dt>

<dd>This attribute may be used to place a cell into conceptual
categories that can be considered to form axes in an n-dimensional
space. User agents may give users access to these categories (e.g.,
the user may query the user agent for all cells that belong to
certain categories, the user agent may present a table in the form
of a table of contents, etc.). Please consult the section on <a
href="#categorize-cells">categorizing cells</a> for more
information. The value of this attribute is a comma-separated list
of category names.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_colspan"><span class="adef">
colspan</span></a> = <span class="datatype"><a href="#dt_Number">
Number</a></span></dt>

<dd>This attribute specifies the number of columns spanned by the
current cell. The default value of this attribute is one ("1"). The
value zero ("0") means that the cell spans all columns from the
current column to the last column of the column group ( <a class= 
"eref" href="#edef_tables_colgroup">colgroup</a> ) in which the
cell is defined.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_headers"><span class="adef">
headers</span></a> = <span class="datatype"><a href="#dt_IDREFS">
IDREFS</a></span></dt>

<dd>This attribute specifies the list of header cells that provide
header information for the current data cell. The value of this
attribute is a space-separated list of cell names; those cells must
be named by setting their <a class="aref" href= 
"#adef_attribute-collections_id">id</a> attribute. Authors
generally use the <a class="aref" href="#adef_tables_headers">
headers</a> attribute to help non-visual user agents render header
information about data cells (e.g., header information is spoken
prior to the cell data), but the attribute may also be used in
conjunction with style sheets. See also the <a class="aref" href= 
"#adef_tables_scope">scope</a> attribute.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_rowspan"><span class="adef">
rowspan</span></a> = <span class="datatype"><a href="#dt_Number">
Number</a></span></dt>

<dd>This attribute specifies the number of rows spanned by the
current cell. The default value of this attribute is one ("1"). The
value zero ("0") means that the cell spans all rows from the
current row to the last row of the table section ( <a class="eref"
href="#edef_tables_thead">thead</a> , <a class="eref" href= 
"#edef_tables_tbody">tbody</a> , or <a class="eref" href= 
"#edef_tables_tfoot">tfoot</a> ) in which the cell is defined.</dd>
</dl>

<dl class='attrDef'>
<dt><a class="adef" id="adef_tables_scope"><span class="adef">
scope</span></a> = <samp>row|col|rowgroup|colgroup</samp></dt>

<dd>This attribute specifies the set of data cells for which the
current header cell provides header information. This attribute may
be used in place of the <a class="aref" href=
"#adef_tables_headers">headers</a> attribute, particularly for
simple tables. When specified, this attribute must have one of the
following values: 

<ul>
<li><strong>row:</strong> The current cell provides header
information for the rest of the row that contains it (see also the
section on <a href="#table-directionality">table directionality</a>
).</li>

<li><strong>col:</strong> The current cell provides header
information for the rest of the column that contains it.</li>

<li><strong>rowgroup:</strong> The header cell provides header
information for the rest of the row group that contains it.</li>

<li><strong>colgroup:</strong> The header cell provides header
information for the rest of the <a class="eref" href= 
"#edef_tables_colgroup">column group</a> that contains it.</li>
</ul>
</dd>
</dl>
</div>

<p>Table cells may contain two types of information: <span class= 
"index-inst" title="table::header cells|header cell::in table"><a
>header information</a></span> and <span class= 
"index-inst" title="table::data cells|data cell::in table"><a name= 
"idx-table-10">data.</a></span> This distinction enables user
agents to render header and data cells distinctly, even in the
absence of style sheets. For example, visual user agents may
present header cell text with a bold font. Speech synthesizers may
render header information with a distinct voice inflection.</p>

<p>The <a class="eref" href="#edef_tables_th">th</a> element
defines a cell that contains header information. User agents have
two pieces of header information available: the contents of the <a
class="eref" href="#edef_tables_th">th</a> element and the value of
the <a class="aref" href="#adef_tables_abbr">abbr</a> attribute.
User agents must render either the contents of the cell or the
value of the <a class="aref" href="#adef_tables_abbr">abbr</a>
attribute. For visual media, the latter may be appropriate when
there is insufficient space to render the full contents of the
cell. For non-visual media <a class="aref" href=
"#adef_tables_abbr">abbr</a> may be used as an abbreviation for
table headers when these are rendered along with the contents of
the cells to which they apply.</p>

<p>The <a class="aref" href="#adef_tables_headers">headers</a> and
<a class="aref" href="#adef_tables_scope">scope</a> attributes also
allow authors to help non-visual user agents process header
information. Please consult the section on <a href= 
"#non-visual-rendering">labeling cells for non-visual user
agents</a> for information and examples.</p>

<p>The <a class="eref" href="#edef_tables_td">td</a> element
defines a cell that contains data.</p>

<p>Cells may be empty (i.e., contain no data).</p>

<div class="example">
<p>For example, the following table contains four columns of data,
each headed by a column description.</p>

<pre>
&lt;table&gt;
&lt;caption&gt;Cups of coffee consumed by each senator&lt;/caption&gt;
&lt;summary&gt;This table charts the number of cups
  of coffee consumed by each senator, the type 
  of coffee (decaf or regular), and whether 
  taken with sugar.&lt;/summary&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;th&gt;Name&lt;/th&gt;
      &lt;th&gt;Cups&lt;/th&gt;
      &lt;th&gt;Type of Coffee&lt;/th&gt;
      &lt;th&gt;Sugar?&lt;/th&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;T. Sexton&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;Espresso&lt;/td&gt;
      &lt;td&gt;No&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;J. Dinnen&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;Decaf&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>A user agent rendering to a tty device might display this as
follows:</p>

<pre>
<strong>Name         Cups       Type of Coffee   Sugar?</strong>
T. Sexton    10         Espresso         No
J. Dinnen    5          Decaf            Yes
</pre>
</div>

<h3><a  id="sec_23.6.1."><span class="diff-chg">
23.6.1.</span></a> Cells that span several rows or columns</h3>

<p>Cells may span several rows or columns. The number of rows or
columns spanned by a cell is set by the <a class="aref" href= 
"#adef_tables_rowspan">rowspan</a> and <a class="aref" href= 
"#adef_tables_colspan">colspan</a> attributes for the <a class=
"eref" href="#edef_tables_th">th</a> and <a class="eref" href= 
"#edef_tables_td">td</a> elements.</p>

<div class="example">
<p>In this table definition, we specify that the cell in row four,
column two should span a total of three columns, including the
current column.</p>

<pre>
&lt;table&gt;
&lt;caption&gt;Cups of coffee consumed by each senator&lt;/caption&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;th&gt;Name&lt;/td&gt;
      &lt;th&gt;Cups&lt;/td&gt;
      &lt;th&gt;Type of Coffee&lt;/td&gt;
      &lt;th&gt;Sugar?&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;T. Sexton&lt;/td&gt;
      &lt;td&gt;10&lt;/td&gt;
      &lt;td&gt;Espresso&lt;/td&gt;
      &lt;td&gt;No&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;J. Dinnen&lt;/td&gt;
      &lt;td&gt;5&lt;/td&gt;
      &lt;td&gt;Decaf&lt;/td&gt;
      &lt;td&gt;Yes&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;A. Soria&lt;/td&gt;
      &lt;td colspan="3"&gt;&lt;em&gt;Not available&lt;/em&gt;&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>This table might be rendered on a tty device by a visual user
agent as follows:</p>

<pre>
Cups of coffee consumed by each senator
 --------------------------------------
 |   Name  |Cups|Type of Coffee|Sugar?|
 --------------------------------------
 |T. Sexton|10  |Espresso      |No    |
 --------------------------------------
 |J. Dinnen|5   |Decaf         |Yes   |
 --------------------------------------
 |A. Soria |Not available             |
 --------------------------------------
</pre>
</div>

<div class="example">
<p>The next example illustrates (with the help of table borders)
how cell definitions that span more than one row or column affect
the definition of later cells. Consider the following table
definition:</p>

<pre>
&lt;table&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td rowspan="2"&gt;2&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;4
      &lt;td&gt;6&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;9&lt;/td&gt;
      &lt;/td&gt;&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>As cell "2" spans the first and second rows, the definition of
the second row will take it into account. Thus, the second <a
class="eref" href="#edef_tables_td">td</a> in row two actually
defines the row's third cell. Visually, the table might be rendered
to a tty device as:</p>

<pre>
-------------
| 1 | 2 | 3 | 
----|   |----
| 4 |   | 6 |
----|---|----
| 7 | 8 | 9 |
-------------
</pre>

<p>while a graphical user agent might render this as:</p>

<p><img src="images/rowspan.gif" alt=
"Image of a table with rowspan=2" /></p>

<p>Note that if the <a class="eref" href="#edef_tables_td">td</a>
defining cell "6" had been omitted, an extra empty cell would have
been added by the user agent to complete the row.</p>

<p>Similarly, in the following table definition:</p>

<pre>
&lt;table&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td colspan="2"&gt;4&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;7&lt;/td&gt;
      &lt;td&gt;8&lt;/td&gt;
      &lt;td&gt;9&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>

<p>cell "4" spans two columns, so the second <a class="eref" href= 
"#edef_tables_td">td</a> in the row actually defines the third cell
("6"):</p>

<pre>
-------------
| 1 | 2 | 3 | 
--------|----
| 4     | 6 |
--------|----
| 7 | 8 | 9 |
-------------
</pre>

<p>A graphical user agent might render this as:</p>

<p><img src="images/colspan.gif" alt=
"Image of a table with colspan=2" /></p>
</div>

<p>Defining overlapping cells is an error. User agents may vary in
how they handle this error (e.g., rendering may vary).</p>

<div class="illegal-example">
<p>The following illegal example illustrates how one might create
overlapping cells. In this table, cell "5" spans two rows and cell
"7" spans two columns, so there is overlap in the cell between "7"
and "9":</p>

<pre>
&lt;table"&gt;
&lt;tbody&gt;
   &lt;tr&gt;
      &lt;td&gt;1&lt;/td&gt;
      &lt;td&gt;2&lt;/td&gt;
      &lt;td&gt;3&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td&gt;4&lt;/td&gt;
      &lt;td rowspan="2"&gt;5&lt;/td&gt;
      &lt;td&gt;6&lt;/td&gt;
   &lt;/tr&gt;
   &lt;tr&gt;
      &lt;td colspan="2"&gt;7&lt;/td&gt;
      &lt;td&gt;9&lt;/td&gt;
   &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>
</div>

<h2><a  id="sec_23.7."><span class="diff-chg">
23.7.</span></a> The <a class="edef" id="edef_tables_thead">
thead</a> and <a class="edef" id="edef_tables_tfoot">tfoot</a>
elements</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p><span class="index-inst" title="row group|table::row group in">
<a >Table rows may be grouped</a></span> into a
table head, table foot, and one or more table body sections, using
the <a class="eref" href="#edef_tables_thead">thead</a> , <a class= 
"eref" href="#edef_tables_tfoot">tfoot</a> and <a class="eref"
href="#edef_tables_tbody">tbody</a> elements, respectively. This
division enables user agents to support scrolling of table bodies
independently of the table head and foot. When long tables are
printed, the table head and foot information may be repeated on
each page that contains table data.</p>

<p>The table head and table foot should contain information about
the table's columns. The table body should contain rows of table
data.</p>

<p>When present, each <a class="eref" href="#edef_tables_thead">
thead</a> , <a class="eref" href="#edef_tables_tfoot">tfoot</a> ,
and <a class="eref" href="#edef_tables_tbody">tbody</a> contains a
<em>row group</em> . Each row group must contain at least one row,
defined by the <a class="eref" href="#edef_tables_tr">tr</a>
element.</p>

<p>If the <a class="eref" href="#edef_tables_thead">thead</a> , <a
class="eref" href="#edef_tables_tfoot">tfoot</a> , and <a class= 
"eref" href="#edef_tables_tbody">tbody</a> elements are used, and a
rowspan <span class="diff-chg">attribute</span> is used within a
group, the rowspan must remain within the group boundaries of which
it is defined.</p>

<div class="example">
<p>This example illustrates the order and structure of the table
head, foot, and bodies.</p>

<pre>
&lt;table&gt;
&lt;thead&gt;
     &lt;tr&gt; <em>...header information...</em>&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot&gt;
     &lt;tr&gt; <em>...footer information...</em>&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
     &lt;tr&gt; <em>...first row of block one data...</em>&lt;/tr&gt;
     &lt;tr&gt; <em>...second row of block one data...</em>&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
     &lt;tr&gt; <em>...first row of block two data...</em>&lt;/tr&gt;
     &lt;tr&gt; <em>...second row of block two data...</em>&lt;/tr&gt;
     &lt;tr&gt; <em>...third row of block two data...</em>&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>
</div>

<p><a class="eref" href="#edef_tables_tfoot">tfoot</a> must appear
before <a class="eref" href="#edef_tables_tbody">tbody</a> within a
<a class="eref" href="#edef_tables_table">table</a> definition so
that user agents can render the foot before receiving all of the
(potentially numerous) rows of data.</p>

<h2><a  id="sec_23.8."><span class="diff-chg">
23.8.</span></a> The <a class="edef" id="edef_tables_tr">tr</a>
element</h2>

<div class="aref-list">
<p><em>Attributes</em></p>

<dl class='attrRef'>
<dt>The <a class="colref" href="#col_Common">Common</a>
collection</dt>

<dd>A collection of other attribute collections, including: <a
class="colref" href="#col_Core">Core</a> , <a class="colref" href= 
"#col_Events">Events</a> , <a class="colref" href="#col_I18N">
I18N</a> , <a class="colref" href="#col_Bi-directional">
Bi-directional</a> , <a class="colref" href="#col_Edit">Edit</a> ,
<a class="colref" href="#col_Embedding">Embedding</a> , <a class= 
"colref" href="#col_Map">Map</a> , and <a class="colref" href= 
"#col_Hypertext">Hypertext</a></dd>
</dl>
</div>

<p>The <a class="eref" href="#edef_tables_tr">tr</a> elements acts
as a container for a row of table cells.</p>

<div class="example">
<p>This sample table contains three rows, each begun by the <a
class="eref" href="#edef_tables_tr">tr</a> element:</p>

<pre>
&lt;table&gt;
&lt;caption&gt;Cups of coffee consumed by each senator&lt;/caption&gt;
&lt;summary&gt;This table charts the number of cups
  of coffee consumed by each senator, the type 
  of coffee (decaf or regular), and whether 
  taken with sugar.&lt;/summary&gt;
&lt;tbody&gt;
   &lt;tr&gt; <em>...A header row...</em>&lt;/tr&gt;
   &lt;tr&gt; <em>...First row of data...</em>&lt;/tr&gt;
   &lt;tr&gt; <em>...Second row of data...</em>&lt;/tr&gt;
   <em>...the rest of the table...</em>&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</pre>
</div>

<h2><a  id="sec_23.9."><span class="diff-new">
23.9.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_tablesmodule_issue_0" class="issueTitle"><span class= 
"diff-new">[XHTML2] Comments on WD 5: Section 19.1, caption needs
own module, could be generalized</span> <span class="pr"><span
class="diff-new">PR #6564</span></span><br />
<span class="diff-new">State: Needs Approval</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Need to discuss with the WG - is this being
pulled to its own module?</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">This issue was extracted from 7356:
(Replies have been directed to www-html only.)
This post is a combination of editorial comments and suggestions for 
changes that could be made in XHTML2.  I have not repeated the 
suggestions I have made concerning firming up the way XHTML2 handles 
establishing the connection between meta-data and its profile, as those 
appear to be in the process of being addressed.  Other comments that I 
have made that appear to have been unaddressed so far, I have repeated 
where I feel that those comments were not purely of a stylistic nature.
...
22) Section 19.1 The caption element
As has already been noted in the fifth working draft, since caption now 
applies to object as well as table it needs to be placed in a module of 
its own.  Might not caption however, be profitably extended to other 
block elements?  For 
example:
&lt;blockquote&gt;
&lt;caption&gt;The Gettysburg Address&lt;/caption&gt;
&lt;l&gt;A. Lincoln&lt;/l&gt;
&lt;l&gt;87 Years Ave.&lt;/l&gt;
&lt;l&gt;Gettysburg, PA&lt;/l&gt;
&lt;/blockquote&gt;
or:
&lt;div src="/images/lastsupp.jpg"&gt;
&lt;caption&gt;The Last Supper by Leonardo di Caprio&lt;/caption&gt;
&lt;/div&gt;
...
</span>
</pre>
</div>

<h1><a  id="s_xformsmodule"><span class= 
"diff-chg">24.</span></a> XForms Module</h1>

<p>This section is <em>informative</em> .</p>

<p>The XForms Module provides a rich collection of forms features.
It is defined in [ <a class="nref" href="#ref_XFORMS">XFORMS</a>
].</p>

<p>Implementation: <a href= 
"http://www.w3.org/TR/2002/CR-xforms-20021112/sliceA.html">XML
Schema</a></p>

<h2><a  id="sec_24.1."><span class="diff-new">
24.1.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="s_xformsmodule_issue_0" class="issueTitle"><span class= 
"diff-new">Idea for securityfix in HTML</span> <span class="pr">
<span class="diff-new">PR #6182</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Steven replied.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Hello,
We have got an idea for an securityfix in HTML. When people send sensitive
information with HTML forms, this information can be read. This is very
insecure,
just like the FTP protocol sends passwords without encryption. This is also
the reason that a lot of WWWebsites are using https:// instead of http://.
A normal HTML form which allows a user to login to a system, could look
like this:
&lt;form action=3D"http://www.wwwebsite.com/script.cgi" method=3D"POST"&gt;
        Insert your username
        &lt;input type=3D"TEXT" name=3D"username"/&gt;
        &lt;br /&gt;
        Insert your password:
        &lt;input type=3D"PASSWORD" name=3D"password"/&gt;
        &lt;input type=3D"SUBMIT" name=3D"SUBMIT" value=3D"SUBMIT"/&gt;
&lt;/form&gt;
All this information is send without any encryption. We suggest to add
the following attribute to the &lt;INPUT&gt; tag. Like this:
&lt;form action=3D"http://www.wwwebsite.com/script.cgi" method=3D"POST"&gt;
        Insert your username:
        &lt;input type=3D"TEXT" name=3D"username" crypt=3D"ROT13"/&gt;
        &lt;br /&gt;
         Insert your password:
         &lt;input type=3D"PASSWORD" name=3D"password" crypt=3D"MD5"/&gt;
         &lt;input type=3D"SUBMIT" name=3D"SUBMIT" value=3D"SUBMIT"/&gt;
&lt;/form&gt;
This attribute, crypt, could have values like "MD5" (for MD5 encryption),
"ROT13", or "Base64". The values of the &lt;INPUT&gt; tag should be encrypted
by the HTTP client, and send to the HTTP server. Also, there should be a
method to take a checksum from a file uploaded to the HTTP server.
We suggest to create a method which allows the HTTP client to send the file
AND the checksum in one &lt;INPUT&gt; tag, otherwise, people who are using the
HTTP client have to insert the filename twice, to upload the file, and to
send the checksum. The idea of sending checksums is great for the
HTTP server to determine if the uploaded file is send well.
We hope this idea will be included in the W3C standards of HTML and XHTML.
Regards,
D. Willems "Xatr0z" &lt;xatr0z at users.sourceforge.net&gt;
and
M. Verbeek "K!LLER" &lt;system_error at pandora.be&gt;
</span>
</pre>
</div>

<h1><a  id="s_xml-eventsmodule"><span
class="diff-chg">25.</span></a> XML Events Module</h1>

<p>This section is <em>informative</em> .</p>

<p>The XML Events Module defines a linkage between XHTML and the
XML Document Object Model [ <a class="nref" href="#ref_DOM">DOM</a>
]. XML Events are defined in [ <a class="nref" href=
"#ref_XMLEVENTS">XMLEVENTS</a> ].</p>

<p>When this module is selected, the <code>listener</code> element
is added to the content model of the <a class="eref" href= 
"#edef_structure_head">head</a> element as defined in the Structure
Module.</p>

<p>Implementation: <a href="#a_rmodule_XML_Events">RELAX NG</a> ,
<a href= 
"http://www.w3.org/TR/2003/CR-xml-events-20030207/Overview.html#a_Schema_definition">
XML Schema</a> , <a href= 
"http://www.w3.org/TR/2003/CR-xml-events-20030207/Overview.html#a_DTD_definition">
DTD</a></p>

<h1><a  id="a_changes">A.</a> Changes from XHTML
1.1</h1>

<p>This appendix is <em>informative</em> .</p>

<p>This Appendix describes the differences between XHTML 2.0 and
XHTML 1.1.</p>

<h1><a  id="a_xhtml20_relaxng">B.</a> XHTML
2.0 RELAX NG Definition</h1>

<p>This appendix is <em>normative</em> .</p>

<p>This appendix contains the implementation of the XHTML 2.0 RELAX
NG driver file.</p>

<h3><a  id= 
"a_rmodule_RELAX_NG_XHTML_2.0_Driver">B.0.1.</a> RELAX NG XHTML 2.0
Driver</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar ns="http://www.w3.org/2002/06/xhtml2"
         xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;RELAX NG schema for XHTML 2.0&lt;/x:h1&gt;
  &lt;x:pre&gt;
    Copyright &amp;#xA9;2003 W3C&amp;#xAE; (MIT, ERCIM, Keio), All Rights Reserved.
      Editor:   Masayasu Ishikawa &amp;lt;mimasa@w3.org&amp;gt;
      Revision: $Id: test2.xml,v 1.1 2004/02/18 03:43:29 vivien Exp $
    Permission to use, copy, modify and distribute this RELAX NG schema
    for XHTML 2.0 and its accompanying documentation for any purpose and
    without fee is hereby granted in perpetuity, provided that the above
    copyright notice and this paragraph appear in all copies. The copyright
    holders make no representation about the suitability of this RELAX NG
    schema for any purpose.
    It is provided "as is" without expressed or implied warranty.
    For details, please refer to the W3C software license at:
      &lt;x:a href="http://www.w3.org/Consortium/Legal/copyright-software"
      &gt;http://www.w3.org/Consortium/Legal/copyright-software&lt;/x:a&gt;
  &lt;/x:pre&gt;
  &lt;div&gt;
    &lt;x:h2&gt;XHTML 2.0 modules&lt;/x:h2&gt;
    &lt;x:h3&gt;Attribute Collections Module&lt;/x:h3&gt;
    &lt;include href="xhtml-attribs-2.rng"/&gt;
    &lt;x:h3&gt;Structure Module&lt;/x:h3&gt;
    &lt;include href="xhtml-struct-2.rng"/&gt;
    &lt;x:h3&gt;Block Text Module&lt;/x:h3&gt;
    &lt;include href="xhtml-blktext-2.rng"/&gt;
    &lt;x:h3&gt;Inline Text Module&lt;/x:h3&gt;
    &lt;include href="xhtml-inltext-2.rng"/&gt;
    &lt;x:h3&gt;Hypertext Module&lt;/x:h3&gt;
    &lt;include href="xhtml-hypertext-2.rng"/&gt;
    &lt;x:h3&gt;List Module&lt;/x:h3&gt;
    &lt;include href="xhtml-list-2.rng"/&gt;
    &lt;x:h3&gt;Linking Module&lt;/x:h3&gt;
    &lt;include href="xhtml-link-2.rng"/&gt;
    &lt;x:h3&gt;Metainformation Module&lt;/x:h3&gt;
    &lt;include href="xhtml-meta-2.rng"/&gt;
    &lt;x:h3&gt;Object Module&lt;/x:h3&gt;
    &lt;include href="xhtml-object-2.rng"/&gt;
    &lt;x:h3&gt;Scripting Module&lt;/x:h3&gt;
    &lt;include href="xhtml-script-2.rng"/&gt;
    &lt;x:h3&gt;Style Attribute Module&lt;/x:h3&gt;
    &lt;include href="xhtml-inlstyle-2.rng"/&gt;
    &lt;x:h3&gt;Style Sheet Module&lt;/x:h3&gt;
    &lt;include href="xhtml-style-2.rng"/&gt;
    &lt;x:h3&gt;Tables Module&lt;/x:h3&gt;
    &lt;include href="xhtml-table-2.rng"/&gt;
    &lt;x:h3&gt;Support Modules&lt;/x:h3&gt;
    &lt;x:h4&gt;Datatypes Module&lt;/x:h4&gt;
    &lt;include href="xhtml-datatypes-2.rng"/&gt;
    &lt;x:h4&gt;Events Module&lt;/x:h4&gt;
    &lt;include href="xhtml-events-2.rng"/&gt;
    &lt;x:h4&gt;Param Module&lt;/x:h4&gt;
    &lt;include href="xhtml-param-2.rng"/&gt;
    &lt;x:h4&gt;Caption Module&lt;/x:h4&gt;
    &lt;include href="xhtml-caption-2.rng"/&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;XML Events module&lt;/x:h2&gt;
    &lt;include href="xml-events-1.rng"/&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Ruby module&lt;/x:h2&gt;
    &lt;include href="full-ruby-1.rng"/&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;XForms module&lt;/x:h2&gt;
    &lt;x:p&gt;To-Do: work out integration of XForms&lt;/x:p&gt;
    &lt;!--include href="xforms-1.rng"/--&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h2><a  id="sec_B.1."><span class="diff-new">
B.1.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="a_xhtml20_relaxng_issue_0" class="issueTitle"><span class= 
"diff-new">xhtml2-datatypes-2.rng -- Possible semantic problem
with</span> <span class="pr"><span class="diff-new">PR
#7337</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">See PR#7338 and #7342.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">In WD-xhtml2-20030506 [1], the content of xhtml2-datatypes-2.rng
causes an exception in Trang [2] when translating from rng to xsd.
The problem can be fixed by a slight tweak to this module:
    &lt;define name="Charset.datatype"&gt;
      &lt;x:p&gt;A character encoding, as per [RFC2045].&lt;/x:p&gt;
&lt;!-- breaks trang when xlating to xsd
      &lt;text/&gt;
--&gt;
&lt;!-- possible fix --&gt;
      &lt;data type="string"&gt;
      &lt;param name="pattern"&gt;[^\s](\s)*&lt;/param&gt;
      &lt;/data&gt;
&lt;!-- end fix --&gt;
    &lt;/define&gt;
I've informed James Clark of the problem in Trang. Also,
it would seem that defining a list of charsets would not
exactly work if each charset is defined as &lt;text/&gt;, which
presumably can contain whitespace. The above definition
should correct this.
Regards,
Glenn
[1] http://www.w3.org/TR/xhtml2/relax_module_defs.html#a_rmodule_Datatypes
[2] http://www.thaiopensource.com/relaxng/trang.html
</span>
</pre>
</div>

<div class="issue">
<p id="a_xhtml20_relaxng_issue_1" class="issueTitle"><span class= 
"diff-new">Re: xhtml2-datatypes-2.rng -- Possible semantic problem
with</span> <span class="pr"><span class="diff-new">PR
#7338</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Follow-up to PR#7337.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class="diff-new">Thanks for your suggestion.
Actually I was wondering how far we would like to elaborate datatyping.
"Modularization of XHTML in XML Schema" didn't make heavy use of
built-in simple datatypes (e.g. "Charset" was just "xs:string"),
to which the XML Schema WG complained.  Characters allowed for
charset name are much restricted and we could elaborate that
restriction to some extent with regular expressions.  Do we want to
do this?
"Glenn A. Adams" &lt;glenn@xfsi.com&gt; wrote:
&gt; &lt;!-- possible fix --&gt;
&gt;       &lt;data type="string"&gt;
&gt;      &lt;param name="pattern"&gt;[^\s](\s)*&lt;/param&gt;
&gt;       &lt;/data&gt;
&gt; &lt;!-- end fix --&gt;
If we really want to elaborate the Charset datatype, I don't think
the pattern should allow white space, at the very least "\S+" or
something.
It's "xhtml-datatypes-2.rng", not "xhtml2-datatypes-2.rng", BTW.
&gt; [1] http://www.w3.org/TR/xhtml2/relax_module_defs.html#a_rmodule_Datatypes
&gt; [2] http://www.thaiopensource.com/relaxng/trang.html
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<div class="issue">
<p id="a_xhtml20_relaxng_issue_2" class="issueTitle"><span class= 
"diff-new">Re: xhtml2-datatypes-2.rng -- Possible semantic problem
with</span> <span class="pr"><span class="diff-new">PR
#7342</span></span><br />
<span class="diff-new">State: Open</span><br />
<span class="diff-new">Resolution: None</span><br />
<span class="diff-new">User: None</span></p>

<p><b><span class="diff-new">Notes:</span></b><br />
<span class="diff-new">Follow-up to PR#7337.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">Oh, BTW - probably we won't need Charsets anymore, at least for
XHTML 2.0.  It was only used for the 'accept-charset' attribute
of the 'form' element, and we don't have Forms Module in XHTML 2.0.
I didn't remove that datatype as I was not sure whether we need
that datatype for M12N 2.0.
And I forgot to remove the 'charset' attribute from the Hypertext
Module and the Linking Module.  That was my fault, sorry.
"Glenn A. Adams" &lt;glenn@xfsi.com&gt; wrote:
&gt; As for the specific pattern I proposed below, I first had only
&gt; [^\s] but then changed to [^\s](\s)* to allow intervening space;
&gt; however, I see this is not quite correct either since the RNG
&gt; &lt;list&gt; pattern already uses intervening whitespace to delimit
&gt; list elements and, further, my initial pattern wasn't quite
&gt; correct either. So it seems that the correct pattern is probably
&gt; "[^\s]+",
Right, and that's the same as "\S+".  In any case, if we don't need
Charsets, probably this issue is not so critical.
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<h1><a  id="a_relaxng_module_defs">
C.</a> XHTML RELAX NG Module Implementations</h1>

<p>This appendix is <em>normative</em> .</p>

<p>This appendix contains implementations of the modules defined in
this specification. These module implementations can be used in
other XHTML Family Document Types.</p>

<h2><a  id="a_relaxng_special">C.1.</a>
XHTML Module Implementations</h2>

<p>This section contains the formal definition of each of the XHTML
Abstract Modules as a RELAX NG module.</p>

<h3><a  id= 
"a_rmodule_Attribute_Collections">C.1.1.</a> Attribute
Collections</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Attribute Collections Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Core Attribute Collection&lt;/x:h2&gt;
    &lt;define name="class.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="class"&gt;
          &lt;ref name="NMTOKENS.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="id.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="id"&gt;
          &lt;ref name="ID.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="title.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="title"&gt;
          &lt;ref name="Text.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="Core.attrib"&gt;
      &lt;ref name="id.attrib"/&gt;
      &lt;ref name="class.attrib"/&gt;
      &lt;ref name="title.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;I18N Attribute Collection&lt;/x:h2&gt;
    &lt;define name="lang.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="xml:lang"&gt;
          &lt;ref name="LanguageCode.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="I18n.attrib"&gt;
      &lt;ref name="lang.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Bi-directional Text Collection&lt;/x:h2&gt;
    &lt;define name="dir.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="dir"&gt;
          &lt;choice&gt;
            &lt;value&gt;ltr&lt;/value&gt;
            &lt;value&gt;rtl&lt;/value&gt;
            &lt;value&gt;lro&lt;/value&gt;
            &lt;value&gt;rlo&lt;/value&gt;
          &lt;/choice&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="Bidi.attrib"&gt;
      &lt;ref name="dir.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Edit Collection&lt;/x:h2&gt;
    &lt;define name="edit.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="edit"&gt;
          &lt;choice&gt;
            &lt;value&gt;inserted&lt;/value&gt;
            &lt;value&gt;deleted&lt;/value&gt;
            &lt;value&gt;changed&lt;/value&gt;
            &lt;value&gt;moved&lt;/value&gt;
          &lt;/choice&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="datetime.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="datetime"&gt;
          &lt;ref name="Datetime.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="Edit.attrib"&gt;
      &lt;ref name="edit.attrib"/&gt;
      &lt;ref name="datetime.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Hypertext Attribute Collection&lt;/x:h2&gt;
    &lt;define name="href.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="href"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="cite.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="cite"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="target.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="target"&gt;
          &lt;ref name="HrefTarget.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="rel.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="rel"&gt;
          &lt;ref name="LinkTypes.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="rev.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="rev"&gt;
          &lt;ref name="LinkTypes.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="accesskey.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="accesskey"&gt;
          &lt;ref name="Character.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="navindex.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="navindex"&gt;
          &lt;ref name="navindexNumber.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="base.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="xml:base"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="Hypertext.attrib"&gt;
      &lt;ref name="href.attrib"/&gt;
      &lt;ref name="cite.attrib"/&gt;
      &lt;ref name="target.attrib"/&gt;
      &lt;ref name="rel.attrib"/&gt;
      &lt;ref name="rev.attrib"/&gt;
      &lt;ref name="accesskey.attrib"/&gt;
      &lt;ref name="navindex.attrib"/&gt;
      &lt;ref name="base.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Embedding Attribute Collection&lt;/x:h2&gt;
    &lt;define name="src.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="src"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="type.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="type"&gt;
          &lt;ref name="ContentType.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="Embedding.attrib"&gt;
      &lt;ref name="src.attrib"/&gt;
      &lt;ref name="type.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Image Map Attribute Collection&lt;/x:h2&gt;
    &lt;define name="usemap.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="usemap"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="ismap.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="ismap"&gt;
          &lt;value&gt;ismap&lt;/value&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="shape.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="shape"&gt;
          &lt;choice&gt;
            &lt;value&gt;rect&lt;/value&gt;
            &lt;value&gt;circle&lt;/value&gt;
            &lt;value&gt;poly&lt;/value&gt;
            &lt;value&gt;default&lt;/value&gt;
          &lt;/choice&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="coords.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="coords"/&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="ImageMap.attrib"&gt;
      &lt;ref name="usemap.attrib"/&gt;
      &lt;ref name="ismap.attrib"/&gt;
      &lt;ref name="shape.attrib"/&gt;
      &lt;ref name="coords.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="Common.extra.attrib"&gt;
    &lt;empty/&gt;
  &lt;/define&gt;
  &lt;define name="Common.attrib"&gt;
    &lt;ref name="Core.attrib"/&gt;
    &lt;ref name="I18n.attrib"/&gt;
    &lt;ref name="Bidi.attrib"/&gt;
    &lt;ref name="Edit.attrib"/&gt;
    &lt;ref name="Hypertext.attrib"/&gt;
    &lt;ref name="Embedding.attrib"/&gt;
    &lt;ref name="ImageMap.attrib"/&gt;
    &lt;ref name="Common.extra.attrib"/&gt;
  &lt;/define&gt;
  &lt;define name="CommonIdRequired.attrib"&gt;
    &lt;attribute name="id"&gt;
      &lt;ref name="ID.datatype"/&gt;
    &lt;/attribute&gt;
    &lt;ref name="class.attrib"/&gt;
    &lt;ref name="title.attrib"/&gt;
    &lt;ref name="I18n.attrib"/&gt;
    &lt;ref name="Bidi.attrib"/&gt;
    &lt;ref name="Edit.attrib"/&gt;
    &lt;ref name="Hypertext.attrib"/&gt;
    &lt;ref name="Embedding.attrib"/&gt;
    &lt;ref name="ImageMap.attrib"/&gt;
    &lt;ref name="Common.extra.attrib"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id="a_rmodule_Structure">
C.1.2.</a> Structure</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Structure Module&lt;/x:h1&gt;
  &lt;start&gt;
    &lt;ref name="html"/&gt;
  &lt;/start&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The html element&lt;/x:h2&gt;
    &lt;define name="html"&gt;
      &lt;element name="html"&gt;
        &lt;ref name="html.attlist"/&gt;
        &lt;ref name="head"/&gt;
        &lt;ref name="body"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="html.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;ref name="profile.attlist"/&gt;
    &lt;/define&gt;
    &lt;define name="profile.attlist"&gt;
      &lt;optional&gt;
        &lt;attribute name="profile"&gt;
          &lt;ref name="URIs.datatype"/&gt;
        &lt;/attribute&gt;     
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The head element&lt;/x:h2&gt;
    &lt;define name="head"&gt;
      &lt;element name="head"&gt;
        &lt;ref name="head.attlist"/&gt;
        &lt;ref name="head.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="head.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
    &lt;define name="head.content"&gt;
      &lt;ref name="title"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The title element&lt;/x:h2&gt;
    &lt;define name="title"&gt;
      &lt;element name="title"&gt;
        &lt;ref name="title.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="title.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The body element&lt;/x:h2&gt;
    &lt;define name="body"&gt;
      &lt;element name="body"&gt;
        &lt;ref name="body.attlist"/&gt;
        &lt;ref name="Block.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="body.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id="a_rmodule_Block_Text">
C.1.3.</a> Block Text</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Block Text Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The address element&lt;/x:h2&gt;
    &lt;define name="address"&gt;
      &lt;element name="address"&gt;
        &lt;ref name="address.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="address.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The blockcode element&lt;/x:h2&gt;
    &lt;define name="blockcode"&gt;
      &lt;element name="blockcode"&gt;
        &lt;ref name="blockcode.attlist"/&gt;
        &lt;ref name="blockcode.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="blockcode.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
    &lt;define name="blockcode.content"&gt;
      &lt;ref name="blockcode.model"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The blockquote element&lt;/x:h2&gt;
    &lt;define name="blockquote"&gt;
      &lt;element name="blockquote"&gt;
        &lt;ref name="blockquote.attlist"/&gt;
        &lt;ref name="blockquote.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="blockquote.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
    &lt;define name="blockquote.content"&gt;
      &lt;ref name="blockquote.model"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The div element&lt;/x:h2&gt;
    &lt;define name="div"&gt;
      &lt;element name="div"&gt;
        &lt;ref name="div.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="div.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The heading elements&lt;/x:h2&gt;
    &lt;define name="h"&gt;
      &lt;element name="h"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
 
    &lt;define name="h1"&gt;
      &lt;element name="h1"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
 
    &lt;define name="h2"&gt;
      &lt;element name="h2"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
     
    &lt;define name="h3"&gt;
      &lt;element name="h3"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
 
    &lt;define name="h4"&gt;
      &lt;element name="h4"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
 
    &lt;define name="h5"&gt;
      &lt;element name="h5"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="h6"&gt;
      &lt;element name="h6"&gt;
        &lt;ref name="Heading.attrib"/&gt;
        &lt;ref name="Heading.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="Heading.attrib"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
 
    &lt;define name="Heading.content"&gt;
      &lt;ref name="Inline.model"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The hr element&lt;/x:h2&gt;
    &lt;define name="hr"&gt;
      &lt;element name="hr"&gt;
        &lt;ref name="hr.attlist"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="hr.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The p element&lt;/x:h2&gt;
    &lt;define name="p"&gt;
      &lt;element name="p"&gt;
        &lt;ref name="p.attlist"/&gt;
        &lt;ref name="p.content"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="p.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
    &lt;define name="p.content"&gt;
      &lt;ref name="p.model"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The pre element&lt;/x:h2&gt;
    &lt;define name="pre"&gt;
      &lt;element name="pre"&gt;
        &lt;ref name="pre.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="pre.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The section element&lt;/x:h2&gt;
    &lt;define name="section"&gt;
      &lt;element name="section"&gt;
        &lt;ref name="section.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="section.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Content Model&lt;/x:h2&gt;
    &lt;define name="Heading.class"&gt;
      &lt;choice&gt;
        &lt;ref name="h"/&gt;
        &lt;ref name="h1"/&gt;
        &lt;ref name="h2"/&gt;
        &lt;ref name="h3"/&gt;
        &lt;ref name="h4"/&gt;
        &lt;ref name="h5"/&gt;
        &lt;ref name="h6"/&gt;
      &lt;/choice&gt;
    &lt;/define&gt;
    &lt;define name="Block.class"&gt;
      &lt;choice&gt;
        &lt;ref name="address"/&gt;
        &lt;ref name="blockcode"/&gt;
        &lt;ref name="blockquote"/&gt;
        &lt;ref name="div"/&gt;
        &lt;ref name="hr"/&gt;
        &lt;ref name="p"/&gt;
        &lt;ref name="pre"/&gt;
        &lt;ref name="section"/&gt;
      &lt;/choice&gt;
    &lt;/define&gt;
    &lt;define name="blockcode.model"&gt;
      &lt;zeroOrMore&gt;
        &lt;choice&gt;
          &lt;text/&gt;
          &lt;ref name="Inline.class"/&gt;
          &lt;ref name="Heading.class"/&gt;
          &lt;ref name="Block.class"/&gt;
          &lt;ref name="List.class"/&gt;
          &lt;ref name="Misc.class"/&gt;
        &lt;/choice&gt;
      &lt;/zeroOrMore&gt;
    &lt;/define&gt;
    &lt;define name="blockquote.model"&gt;
      &lt;zeroOrMore&gt;
        &lt;choice&gt;
          &lt;text/&gt;
          &lt;ref name="Inline.class"/&gt;
          &lt;ref name="Heading.class"/&gt;
          &lt;ref name="Block.class"/&gt;
          &lt;ref name="List.class"/&gt;
          &lt;ref name="Misc.class"/&gt;
        &lt;/choice&gt;
      &lt;/zeroOrMore&gt;
    &lt;/define&gt;
    &lt;define name="p.model"&gt;
      &lt;zeroOrMore&gt;
        &lt;choice&gt;
          &lt;text/&gt;
          &lt;ref name="Inline.class"/&gt;
          &lt;ref name="List.class"/&gt;
          &lt;ref name="blockquote"/&gt;
          &lt;ref name="pre"/&gt;
          &lt;ref name="table"/&gt;
          &lt;ref name="Misc.class"/&gt;
        &lt;/choice&gt;
      &lt;/zeroOrMore&gt;
    &lt;/define&gt;
    &lt;define name="Block.mix"&gt;
      &lt;zeroOrMore&gt;
        &lt;choice&gt;
          &lt;ref name="Heading.class"/&gt;
          &lt;ref name="Block.class"/&gt;
          &lt;ref name="List.class"/&gt;
          &lt;ref name="Misc.class"/&gt;
        &lt;/choice&gt;
      &lt;/zeroOrMore&gt;
    &lt;/define&gt;
    &lt;define name="Block.model"&gt;
      &lt;oneOrMore&gt;
        &lt;ref name="Block.mix"/&gt;
      &lt;/oneOrMore&gt;
    &lt;/define&gt;
    &lt;define name="Flow.model"&gt;
      &lt;zeroOrMore&gt;
        &lt;choice&gt;
          &lt;text/&gt;
          &lt;ref name="Heading.class"/&gt;
          &lt;ref name="Block.class"/&gt;
          &lt;ref name="List.class"/&gt;
          &lt;ref name="Inline.class"/&gt;
          &lt;ref name="Misc.class"/&gt;
        &lt;/choice&gt;
      &lt;/zeroOrMore&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Inline_Text">
C.1.4.</a> Inline Text</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Inline Text Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The abbr element&lt;/x:h2&gt;
    &lt;define name="abbr"&gt;
      &lt;element name="abbr"&gt;
        &lt;ref name="abbr.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="abbr.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The cite element&lt;/x:h2&gt;
    &lt;define name="cite"&gt;
      &lt;element name="cite"&gt;
        &lt;ref name="cite.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="cite.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The code element&lt;/x:h2&gt;
    &lt;define name="code"&gt;
      &lt;element name="code"&gt;
        &lt;ref name="code.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="code.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The dfn element&lt;/x:h2&gt;
    &lt;define name="dfn"&gt;
      &lt;element name="dfn"&gt;
        &lt;ref name="dfn.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="dfn.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The em element&lt;/x:h2&gt;
    &lt;define name="em"&gt;
      &lt;element name="em"&gt;
        &lt;ref name="em.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="em.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The kbd element&lt;/x:h2&gt;
    &lt;define name="kbd"&gt;
      &lt;element name="kbd"&gt;
        &lt;ref name="kbd.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="kbd.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The l element&lt;/x:h2&gt;
    &lt;define name="l"&gt;
      &lt;element name="l"&gt;
        &lt;ref name="l.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="l.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The quote element&lt;/x:h2&gt;
    &lt;define name="quote"&gt;
      &lt;element name="quote"&gt;
        &lt;ref name="quote.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="quote.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The samp element&lt;/x:h2&gt;
    &lt;define name="samp"&gt;
      &lt;element name="samp"&gt;
        &lt;ref name="samp.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="samp.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The span element&lt;/x:h2&gt;
    &lt;define name="span"&gt;
      &lt;element name="span"&gt;
        &lt;ref name="span.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="span.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The strong element&lt;/x:h2&gt;
    &lt;define name="strong"&gt;
      &lt;element name="strong"&gt;
        &lt;ref name="strong.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="strong.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The sub element&lt;/x:h2&gt;
    &lt;define name="sub"&gt;
      &lt;element name="sub"&gt;
        &lt;ref name="sub.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="sub.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The sup element&lt;/x:h2&gt;
    &lt;define name="sup"&gt;
      &lt;element name="sup"&gt;
        &lt;ref name="sup.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="sup.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The var element&lt;/x:h2&gt;
    &lt;define name="var"&gt;
      &lt;element name="var"&gt;
        &lt;ref name="var.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="var.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:p&gt;these can occur at block or inline level&lt;/x:p&gt;
    &lt;define name="Misc.class"&gt;
      &lt;empty/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Content Model&lt;/x:h2&gt;
    &lt;define name="Inline.class"&gt;
      &lt;choice&gt;
        &lt;ref name="abbr"/&gt;
        &lt;ref name="cite"/&gt;
        &lt;ref name="code"/&gt;
        &lt;ref name="dfn"/&gt;
        &lt;ref name="em"/&gt;
        &lt;ref name="kbd"/&gt;
        &lt;ref name="l"/&gt;
        &lt;ref name="quote"/&gt;
        &lt;ref name="samp"/&gt;
        &lt;ref name="span"/&gt;
        &lt;ref name="strong"/&gt;
        &lt;ref name="sub"/&gt;
        &lt;ref name="sup"/&gt;
        &lt;ref name="var"/&gt;
      &lt;/choice&gt;
    &lt;/define&gt;
    &lt;define name="Inline.model"&gt;
      &lt;zeroOrMore&gt;
        &lt;choice&gt;
          &lt;text/&gt;
          &lt;ref name="Inline.class"/&gt;
          &lt;ref name="Misc.class"/&gt;
        &lt;/choice&gt;
      &lt;/zeroOrMore&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id="a_rmodule_Hypertext">
C.1.5.</a> Hypertext</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Hypertext Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The a element&lt;/x:h2&gt;
    &lt;define name="a"&gt;
      &lt;element name="a"&gt;
        &lt;ref name="a.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="a.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="Inline.class" combine="choice"&gt;
    &lt;ref name="a"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_List">C.1.6.</a>
List</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;List Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The dl element&lt;/x:h2&gt;
    &lt;define name="dl"&gt;
      &lt;element name="dl"&gt;
        &lt;ref name="dl.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;choice&gt;
        &lt;ref name="dt"/&gt;
        &lt;ref name="dd"/&gt;
          &lt;/choice&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="dl.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The dt element&lt;/x:h2&gt;
    &lt;define name="dt"&gt;
      &lt;element name="dt"&gt;
        &lt;ref name="dt.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="dt.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The dd element&lt;/x:h2&gt;
    &lt;define name="dd"&gt;
      &lt;element name="dd"&gt;
        &lt;ref name="dd.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="dd.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The label element&lt;/x:h2&gt;
    &lt;define name="label"&gt;
      &lt;element name="label"&gt;
        &lt;ref name="label.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="label.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The nl element&lt;/x:h2&gt;
    &lt;define name="nl"&gt;
      &lt;element name="nl"&gt;
        &lt;ref name="nl.attlist"/&gt;
        &lt;ref name="label"/&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="li"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="nl.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The ol element&lt;/x:h2&gt;
    &lt;define name="ol"&gt;
      &lt;element name="ol"&gt;
        &lt;ref name="ol.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="li"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="ol.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The ul element&lt;/x:h2&gt;
    &lt;define name="ul"&gt;
      &lt;element name="ul"&gt;
        &lt;ref name="ul.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="li"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="ul.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The li element&lt;/x:h2&gt;
    &lt;define name="li"&gt;
      &lt;element name="li"&gt;
        &lt;ref name="li.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;  
    &lt;define name="li.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;List Content Set&lt;/x:h2&gt;
    &lt;define name="List.class"&gt;
      &lt;choice&gt;
        &lt;ref name="ul"/&gt;
        &lt;ref name="nl"/&gt;
        &lt;ref name="ol"/&gt;
        &lt;ref name="dl"/&gt;
      &lt;/choice&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id="a_rmodule_Link">C.1.7.</a>
Link</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Link Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The link element&lt;/x:h2&gt;
    &lt;define name="link"&gt;
      &lt;element name="link"&gt;
        &lt;ref name="link.attlist"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="link.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;optional&gt;
        &lt;attribute name="media"&gt;
          &lt;ref name="MediaDesc.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="head.content" combine="interleave"&gt;
    &lt;zeroOrMore&gt;
      &lt;ref name="link"/&gt;
    &lt;/zeroOrMore&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id= 
"a_rmodule_Metainformation">C.1.8.</a> Metainformation</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Metainformation Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The meta element&lt;/x:h2&gt;
    &lt;define name="meta"&gt;
      &lt;element name="meta"&gt;
        &lt;ref name="meta.attlist"/&gt;
        &lt;choice&gt;
          &lt;ref name="Inline.model"/&gt;
          &lt;oneOrMore&gt;
            &lt;ref name="meta"/&gt;
          &lt;/oneOrMore&gt;
        &lt;/choice&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="meta.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;optional&gt;
        &lt;attribute name="name"&gt;
          &lt;ref name="NMTOKEN.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="head.content" combine="interleave"&gt;
    &lt;zeroOrMore&gt;
      &lt;ref name="meta"/&gt;
    &lt;/zeroOrMore&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id="a_rmodule_Object">C.1.9.</a>
Object</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Object Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The object element&lt;/x:h2&gt;
    &lt;define name="object"&gt;
      &lt;element name="object"&gt;
        &lt;ref name="object.attlist"/&gt;
        &lt;optional&gt;
          &lt;ref name="caption"/&gt;
        &lt;/optional&gt;
        &lt;optional&gt;
          &lt;ref name="standby"/&gt;
        &lt;/optional&gt;
        &lt;zeroOrMore&gt;
          &lt;ref name="param"/&gt;
        &lt;/zeroOrMore&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="object.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;optional&gt;
        &lt;attribute name="archive"&gt;
          &lt;ref name="URIs.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="content-length"&gt;
          &lt;ref name="Number.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="data"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="declare"&gt;
          &lt;value&gt;declare&lt;/value&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The standby element&lt;/x:h2&gt;
    &lt;define name="standby"&gt;
      &lt;element name="standby"&gt;
        &lt;ref name="standby.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="standby.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="Inline.class" combine="choice"&gt;
    &lt;ref name="object"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Scripting">
C.1.10.</a> Scripting</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Scripting Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The noscript element&lt;/x:h2&gt;
    &lt;define name="noscript"&gt;
      &lt;element name="noscript"&gt;
        &lt;ref name="noscript.attlist"/&gt;
        &lt;ref name="Block.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="noscript.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The script element&lt;/x:h2&gt;
    &lt;define name="script"&gt;
      &lt;element name="script"&gt;
        &lt;ref name="script.attlist"/&gt;
        &lt;choice&gt;
          &lt;text/&gt;
          &lt;ref name="script"/&gt;
          &lt;ref name="noscript"/&gt;
        &lt;/choice&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="script.attlist"&gt;
      &lt;optional&gt;
        &lt;attribute name="charset"&gt;
          &lt;ref name="Charset.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="declare"&gt;
          &lt;value&gt;declare&lt;/value&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="src"&gt;
          &lt;ref name="URI.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;attribute name="type"&gt;
        &lt;ref name="ContentType.datatype"/&gt;
      &lt;/attribute&gt;
      &lt;optional&gt;
        &lt;attribute name="xml:space"&gt;
          &lt;value&gt;preserve&lt;/value&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="head.content" combine="interleave"&gt;
    &lt;zeroOrMore&gt;
      &lt;ref name="script"/&gt;
    &lt;/zeroOrMore&gt;
  &lt;/define&gt;
  &lt;define name="Script.class"&gt;
    &lt;choice&gt;
      &lt;ref name="noscript"/&gt;
      &lt;ref name="script"/&gt;
    &lt;/choice&gt;
  &lt;/define&gt;
  &lt;define name="Inline.class" combine="choice"&gt;
    &lt;ref name="Script.class"/&gt;
  &lt;/define&gt;
  &lt;define name="Block.class" combine="choice"&gt;
    &lt;ref name="Script.class"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a  id= 
"a_rmodule_Style_Attribute">C.1.11.</a> Style Attribute</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Style Attribute Module&lt;/x:h1&gt;
  &lt;define name="style.attrib"&gt;
    &lt;optional&gt;
      &lt;attribute name="style"/&gt;
    &lt;/optional&gt;
  &lt;/define&gt;
  &lt;define name="Common.extra.attrib" combine="interleave"&gt;
    &lt;ref name="style.attrib"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Style_Sheet">
C.1.12.</a> Style Sheet</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Style Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The style element&lt;/x:h2&gt;
    &lt;define name="style"&gt;
      &lt;element name="style"&gt;
        &lt;ref name="style.attlist"/&gt;
        &lt;text/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="style.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;optional&gt;
        &lt;attribute name="media"&gt;
          &lt;ref name="MediaDesc.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="head.content" combine="interleave"&gt;
    &lt;zeroOrMore&gt;
      &lt;ref name="style"/&gt;
    &lt;/zeroOrMore&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Tables">C.1.13.</a>
Tables</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Tables Module&lt;/x:h1&gt;
  &lt;x:p&gt;Note. Also include the Caption Module when this module is used.&lt;/x:p&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The table element&lt;/x:h2&gt;
    &lt;define name="table"&gt;
      &lt;element name="table"&gt;
        &lt;ref name="table.attlist"/&gt;
        &lt;optional&gt;
          &lt;ref name="caption"/&gt;
        &lt;/optional&gt;
        &lt;optional&gt;
          &lt;ref name="summary"/&gt;
        &lt;/optional&gt;
        &lt;choice&gt;
          &lt;zeroOrMore&gt;
            &lt;ref name="col"/&gt;
          &lt;/zeroOrMore&gt;
          &lt;zeroOrMore&gt;
            &lt;ref name="colgroup"/&gt;
          &lt;/zeroOrMore&gt;
        &lt;/choice&gt;
        &lt;choice&gt;
          &lt;group&gt;
            &lt;optional&gt;
              &lt;ref name="thead"/&gt;
            &lt;/optional&gt;
            &lt;optional&gt;
              &lt;ref name="tfoot"/&gt;
            &lt;/optional&gt;
            &lt;oneOrMore&gt;
              &lt;ref name="tbody"/&gt;
            &lt;/oneOrMore&gt;
          &lt;/group&gt;
          &lt;oneOrMore&gt;
            &lt;ref name="tr"/&gt;
          &lt;/oneOrMore&gt;
        &lt;/choice&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="table.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The summary element&lt;/x:h2&gt;
    &lt;define name="summary"&gt;
      &lt;element name="summary"&gt;
        &lt;ref name="summary.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="summary.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The col element&lt;/x:h2&gt;
    &lt;define name="col"&gt;
      &lt;element name="col"&gt;
        &lt;ref name="col.attlist"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="col.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;ref name="span.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The colgroup element&lt;/x:h2&gt;
    &lt;define name="colgroup"&gt;
      &lt;element name="colgroup"&gt;
        &lt;ref name="colgroup.attlist"/&gt;
        &lt;zeroOrMore&gt;
          &lt;ref name="col"/&gt;
        &lt;/zeroOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="colgroup.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;ref name="span.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The thead element&lt;/x:h2&gt;
    &lt;define name="thead"&gt;
      &lt;element name="thead"&gt;
        &lt;ref name="thead.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="tr"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="thead.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The tfoot element&lt;/x:h2&gt;
    &lt;define name="tfoot"&gt;
      &lt;element name="tfoot"&gt;
        &lt;ref name="tfoot.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="tr"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="tfoot.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The tbody element&lt;/x:h2&gt;
    &lt;define name="tbody"&gt;
      &lt;element name="tbody"&gt;
        &lt;ref name="tbody.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="tr"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="tbody.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The tr element&lt;/x:h2&gt;
    &lt;define name="tr"&gt;
      &lt;element name="tr"&gt;
        &lt;ref name="tr.attlist"/&gt;
        &lt;oneOrMore&gt;
          &lt;choice&gt;
            &lt;ref name="th"/&gt;
            &lt;ref name="td"/&gt;
          &lt;/choice&gt;
        &lt;/oneOrMore&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="tr.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The th element&lt;/x:h2&gt;
    &lt;define name="th"&gt;
      &lt;element name="th"&gt;
        &lt;ref name="th.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="th.attlist"&gt;
      &lt;ref name="Cell.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The td element&lt;/x:h2&gt;
    &lt;define name="td"&gt;
      &lt;element name="td"&gt;
        &lt;ref name="td.attlist"/&gt;
        &lt;ref name="Flow.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="td.attlist"&gt;
      &lt;ref name="Cell.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Attribute definitions&lt;/x:h2&gt;
    &lt;define name="span.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="span" a:defaultValue="1"&gt;
          &lt;ref name="spanNumber.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
    &lt;define name="Cell.attrib"&gt;
      &lt;ref name="Common.attrib"/&gt;
      &lt;optional&gt;
        &lt;attribute name="abbr"&gt;
          &lt;ref name="Text.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="axis"/&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="colspan" a:defaultValue="1"&gt;
          &lt;ref name="Number.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="headers"&gt;
          &lt;ref name="IDREFS.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="rowspan" a:defaultValue="1"&gt;
          &lt;ref name="Number.datatype"/&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
      &lt;ref name="scope.attrib"/&gt;
    &lt;/define&gt;
    &lt;define name="scope.attrib"&gt;
      &lt;optional&gt;
        &lt;attribute name="scope"&gt;
          &lt;choice&gt;
            &lt;value&gt;row&lt;/value&gt;
            &lt;value&gt;col&lt;/value&gt;
            &lt;value&gt;rowgroup&lt;/value&gt;
            &lt;value&gt;colgroup&lt;/value&gt;
          &lt;/choice&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;define name="Block.class" combine="choice"&gt;
    &lt;ref name="table"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h2><a id="a_dtdsupport">C.2.</a> XHTML RELAX
NG Support Modules</h2>

<p>The modules in this section are elements and attributes of the
XHTML RELAX NG implementation that, while hidden from casual users,
are important to understand when creating derivative markup
languages using the Modularization architecture.</p>

<h3><a  id="a_rmodule_Datatypes">
C.2.1.</a> Datatypes</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"&gt;
  &lt;x:h1&gt;Datatypes Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Datatypes defined in XML 1.0&lt;/x:h2&gt;
    &lt;define name="CDATA.datatype"&gt;
      &lt;text/&gt;
    &lt;/define&gt;
    &lt;define name="ID.datatype"&gt;
      &lt;data type="ID"/&gt;
    &lt;/define&gt;
    &lt;define name="IDREF.datatype"&gt;
      &lt;data type="IDREF"/&gt;
    &lt;/define&gt;
    &lt;define name="IDREFS.datatype"&gt;
      &lt;data type="IDREFS"/&gt;
    &lt;/define&gt;
    &lt;define name="NAME.datatype"&gt;
      &lt;data type="Name"/&gt;
    &lt;/define&gt;
    &lt;define name="NMTOKEN.datatype"&gt;
      &lt;data type="NMTOKEN"/&gt;
    &lt;/define&gt;
    &lt;define name="NMTOKENS.datatype"&gt;
      &lt;data type="NMTOKENS"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Additional Datatypes&lt;/x:h2&gt;
    &lt;define name="Character.datatype"&gt;
      &lt;x:p&gt;A single character, as per section 2.2 of [XML].&lt;/x:p&gt;
      &lt;data type="string"&gt;
        &lt;param name="length"&gt;1&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="Charset.datatype"&gt;
      &lt;x:p&gt;A character encoding, as per [RFC2045].&lt;/x:p&gt;
<span class="diff-chg">      &lt;data type="string"&gt;
        &lt;param name="pattern"&gt;\S+&lt;/param&gt;
      &lt;/data&gt;
</span>
    &lt;/define&gt;
    &lt;define name="Charsets.datatype"&gt;
      &lt;x:p&gt;A space separated list of character encodings,
        as per [RFC2045].&lt;/x:p&gt;
      &lt;list&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="Charset.datatype"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/list&gt;
    &lt;/define&gt;
    &lt;define name="ContentType.datatype"&gt;
      &lt;x:p&gt;A list of media ranges with optional accept parameters,
        as defined in section 14.1 of [RFC2616] as the field value
        of the accept request header.&lt;/x:p&gt;
      &lt;text/&gt;
    &lt;/define&gt;
    &lt;define name="Coordinates.datatype"&gt;
      &lt;x:p&gt;Comma separated list of Lengths used in defining areas.&lt;/x:p&gt;
      &lt;data type="string"&gt;
        &lt;param name="pattern"&gt;[\-+]?(\d+|\d+(\.\d+)?%)(,\s*[\-+]?(\d+|\d+(\.\d+)?%))*&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="Datetime.datatype"&gt;
      &lt;x:p&gt;Date and time information, as defined by the type dateTime
        in [XMLSCHEMA].&lt;/x:p&gt;
      &lt;data type="dateTime"/&gt;
    &lt;/define&gt;
    &lt;define name="HrefTarget.datatype"&gt;
      &lt;x:p&gt;Name used as destination for results of certain actions.&lt;/x:p&gt;
      &lt;ref name="NMTOKEN.datatype"/&gt;
    &lt;/define&gt;
    &lt;define name="LanguageCode.datatype"&gt;
      &lt;x:p&gt;A language code, as per [RFC3066].&lt;/x:p&gt;
      &lt;data type="language"/&gt;
    &lt;/define&gt;
    &lt;define name="Length.datatype"&gt;
      &lt;x:p&gt;The value may be either in pixels or a percentage of the available
        horizontal or vertical space. Thus, the value "50%" means half of
        the available space.&lt;/x:p&gt;
      &lt;data type="string"&gt;
        &lt;param name="pattern"&gt;[\-+]?(\d+|\d+(\.\d+)?%)&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="LinkTypes.datatype"&gt;
      &lt;x:p&gt;Space-separated list of link types.&lt;/x:p&gt;
      &lt;ref name="NMTOKENS.datatype"/&gt;
    &lt;/define&gt;
    &lt;define name="MediaDesc.datatype"&gt;
      &lt;x:p&gt;A comma-separated list of media descriptors as described by [CSS].
        The default is all.&lt;/x:p&gt;
      &lt;data type="string"&gt;
        &lt;param name="pattern"&gt;[^,]+(,\s*[^,]+)*&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="Number.datatype"&gt;
      &lt;x:p&gt;One or more digits (NUMBER).&lt;/x:p&gt;
      &lt;data type="nonNegativeInteger"&gt;
        &lt;param name="pattern"&gt;[0-9]+&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="spanNumber.datatype"&gt;
      &lt;x:p&gt;span: this attribute value must be an integer &gt; 0;
        the default value is 1.&lt;/x:p&gt;
      &lt;data type="positiveInteger"&gt;
        &lt;param name="pattern"&gt;[0-9]+&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="navindexNumber.datatype"&gt;
      &lt;x:p&gt;navindex: the position of the current element in the navingation
        order for the current document. This value must be a number between
        0 and 32767. User agents must ignore leading zeros.&lt;/x:p&gt;
      &lt;data type="nonNegativeInteger"&gt;
        &lt;param name="pattern"&gt;[0-9]+&lt;/param&gt;
        &lt;param name="minInclusive"&gt;0&lt;/param&gt;
        &lt;param name="maxInclusive"&gt;32767&lt;/param&gt;
      &lt;/data&gt;
    &lt;/define&gt;
    &lt;define name="Shape.datatype"&gt;
      &lt;x:p&gt;The shape of a region.&lt;/x:p&gt;
      &lt;choice&gt;
        &lt;value&gt;rect&lt;/value&gt;
        &lt;value&gt;circle&lt;/value&gt;
        &lt;value&gt;poly&lt;/value&gt;
        &lt;value&gt;default&lt;/value&gt;
      &lt;/choice&gt;
    &lt;/define&gt;
    &lt;define name="Text.datatype"&gt;
      &lt;x:p&gt;Arbitrary textual data, likely meant to be human-readable.&lt;/x:p&gt;
      &lt;text/&gt;
    &lt;/define&gt;
    &lt;define name="URI.datatype"&gt;
      &lt;x:p&gt;A Uniform Resource Identifier Reference, as defined by the type
        anyURI in [XMLSCHEMA].&lt;/x:p&gt;
      &lt;data type="anyURI"/&gt;
    &lt;/define&gt;
    &lt;define name="URIs.datatype"&gt;
      &lt;x:p&gt;A space-separated list of URIs as defined above.&lt;/x:p&gt;
      &lt;list&gt;
        &lt;oneOrMore&gt;
          &lt;data type="anyURI"/&gt;
        &lt;/oneOrMore&gt;
      &lt;/list&gt;
    &lt;/define&gt;
    &lt;define name="URIList.datatype"&gt;
      &lt;x:p&gt;A comma-separated list of URIs as defined above.&lt;/x:p&gt;
      &lt;text/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Events">C.2.2.</a>
Events</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:ev="http://www.w3.org/2001/xml-events"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Events Attribute Collection Module&lt;/x:h1&gt;
  &lt;define name="Events.attrib"&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:event"&gt;
        &lt;ref name="NMTOKEN.datatype"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:observer"&gt;
        &lt;ref name="IDREF.datatype"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:target"&gt;
        &lt;ref name="IDREF.datatype"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:handler"&gt;
        &lt;ref name="URI.datatype"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:phase" a:defaultValue="default"&gt;
        &lt;choice&gt;
          &lt;value&gt;capture&lt;/value&gt;
          &lt;value&gt;default&lt;/value&gt;
        &lt;/choice&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:propagate" a:defaultValue="continue"&gt;
        &lt;choice&gt;
          &lt;value&gt;stop&lt;/value&gt;
          &lt;value&gt;continue&lt;/value&gt;
        &lt;/choice&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="ev:defaultAction" a:defaultValue="perform"&gt;
        &lt;choice&gt;
          &lt;value&gt;cancel&lt;/value&gt;
          &lt;value&gt;perform&lt;/value&gt;
        &lt;/choice&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
  &lt;/define&gt;
  &lt;define name="Common.extra.attrib" combine="interleave"&gt;
    &lt;ref name="Events.attrib"/&gt;
  &lt;/define&gt;
  &lt;define name="head.content" combine="interleave"&gt;
    &lt;zeroOrMore&gt;
      &lt;ref name="listener" ns="http://www.w3.org/2001/xml-events"/&gt;
    &lt;/zeroOrMore&gt;
  &lt;/define&gt;
  &lt;define name="Script.class" combine="choice"&gt;
    &lt;ref name="listener" ns="http://www.w3.org/2001/xml-events"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Param">C.2.3.</a>
Param</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Param Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The param element&lt;/x:h2&gt;
    &lt;define name="param"&gt;
      &lt;element name="param"&gt;
        &lt;ref name="param.attlist"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="param.attlist"&gt;
      &lt;optional&gt;
        &lt;ref name="id.attrib"/&gt;
      &lt;/optional&gt;
      &lt;attribute name="name"/&gt;
      &lt;optional&gt;
        &lt;attribute name="value"/&gt;
      &lt;/optional&gt;
      &lt;optional&gt;
        &lt;attribute name="valuetype" a:defaultValue="data"&gt;
          &lt;choice&gt;
            &lt;value&gt;data&lt;/value&gt;
            &lt;value&gt;ref&lt;/value&gt;
            &lt;value&gt;object&lt;/value&gt;
          &lt;/choice&gt;
        &lt;/attribute&gt;
      &lt;/optional&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_Caption">C.2.4.</a>
Caption</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Caption Module&lt;/x:h1&gt;
  &lt;div&gt;
    &lt;x:h2&gt;The caption element&lt;/x:h2&gt;
    &lt;define name="caption"&gt;
      &lt;element name="caption"&gt;
        &lt;ref name="caption.attlist"/&gt;
        &lt;ref name="Inline.model"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="caption.attlist"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h2><a id="a_relaxng_external">C.3.</a>
RELAX NG External Modules</h2>

<p>These modules are not defined by XHTML, but these definitions
are included here for completeness.</p>

<h3><a  id="a_rmodule_Ruby">C.3.1.</a>
Ruby</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"&gt;
  &lt;x:h1&gt;Ruby Module in RELAX NG&lt;/x:h1&gt;
  &lt;x:pre&gt;
    Ruby Elements
      ruby, rbc, rtc, rb, rt, rp
    This module defines grammars to support ruby annotation markup.
    This module is based on the W3C Ruby Annotation Specification:
      http://www.w3.org/TR/ruby
    Copyright &amp;#xA9;2003 W3C&amp;#xAE; (MIT, ERCIM, Keio), All Rights Reserved.
      Editor:   Masayasu Ishikawa &amp;lt;mimasa@w3.org&amp;gt;
      Revision: $Id: test2.xml,v 1.1 2004/02/18 03:43:29 vivien Exp $
    Permission to use, copy, modify and distribute this RELAX NG schema
    for Ruby Annotation and its accompanying documentation for any purpose
    and without fee is hereby granted in perpetuity, provided that the above
    copyright notice and this paragraph appear in all copies. The copyright
    holders make no representation about the suitability of this RELAX NG
    schema for any purpose.
    It is provided "as is" without expressed or implied warranty.
    For details, please refer to the W3C software license at:
      &lt;x:a href="http://www.w3.org/Consortium/Legal/copyright-software"
      &gt;http://www.w3.org/Consortium/Legal/copyright-software&lt;/x:a&gt;
  &lt;/x:pre&gt;
  &lt;div&gt;
    &lt;x:h2&gt;patterns for the content model of the ruby element&lt;/x:h2&gt;
    &lt;define name="Ruby.content.simple"&gt;
      &lt;x:p&gt;Content model of simple ruby&lt;/x:p&gt;
      &lt;group&gt;
        &lt;ref name="rb"/&gt;
        &lt;choice&gt;
          &lt;ref name="rt-simple"/&gt;
          &lt;group&gt;
            &lt;ref name="rp"/&gt;
            &lt;ref name="rt-simple"/&gt;
            &lt;ref name="rp"/&gt;
          &lt;/group&gt;
        &lt;/choice&gt;
      &lt;/group&gt;
    &lt;/define&gt;
    &lt;define name="Ruby.content.complex"&gt;
      &lt;x:p&gt;Content model of complex ruby&lt;/x:p&gt;
      &lt;group&gt;
        &lt;ref name="rbc"/&gt;
        &lt;ref name="rtc"/&gt;
        &lt;optional&gt;
          &lt;ref name="rtc"/&gt;
        &lt;/optional&gt;
      &lt;/group&gt;
    &lt;/define&gt;
    &lt;define name="Ruby.content"&gt;
      &lt;x:p&gt;Simple ruby is used by default&lt;/x:p&gt;
      &lt;ref name="Ruby.content.simple"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Ruby Elements&lt;/x:h2&gt;
    &lt;x:h3&gt;ruby element&lt;/x:h3&gt;
    &lt;define name="ruby"&gt;
      &lt;element name="ruby"&gt;
        &lt;ref name="Ruby.content"/&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;x:h3&gt;rbc (ruby base component) element&lt;/x:h3&gt;
    &lt;define name="rbc"&gt;
      &lt;element name="rbc"&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="rb"/&gt;
        &lt;/oneOrMore&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;x:h3&gt;rtc (ruby text component) element&lt;/x:h3&gt;
    &lt;define name="rtc"&gt;
      &lt;element name="rtc"&gt;
        &lt;oneOrMore&gt;
          &lt;ref name="rt-complex"/&gt;
        &lt;/oneOrMore&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;x:h3&gt;rb (ruby base) element&lt;/x:h3&gt;
    &lt;define name="rb"&gt;
      &lt;element name="rb"&gt;
        &lt;ref name="NoRuby.content"/&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;x:h3&gt;rt (ruby text) element&lt;/x:h3&gt;
    &lt;define name="rt-simple"&gt;
      &lt;x:p&gt;grammar for simple ruby&lt;/x:p&gt;
      &lt;x:p&gt;rbspan attribute is not allowed in simple ruby&lt;/x:p&gt;
      &lt;element name="rt"&gt;
        &lt;ref name="NoRuby.content"/&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;define name="rt-complex"&gt;
      &lt;x:p&gt;grammar for complex ruby&lt;/x:p&gt;
      &lt;element name="rt"&gt;
        &lt;ref name="NoRuby.content"/&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
        &lt;optional&gt;
          &lt;attribute name="rbspan" a:defaultValue="1"&gt;
            &lt;data type="positiveInteger"&gt;
              &lt;param name="pattern"&gt;[1-9][0-9]*&lt;/param&gt;
            &lt;/data&gt;
          &lt;/attribute&gt;
        &lt;/optional&gt;
      &lt;/element&gt;
    &lt;/define&gt;
    &lt;x:h3&gt;rp (ruby parenthesis) element&lt;/x:h3&gt;
    &lt;define name="rp"&gt;
      &lt;element name="rp"&gt;
        &lt;text/&gt;
        &lt;ref name="Ruby.common.attrib"/&gt;
      &lt;/element&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:h2&gt;Ruby Common Attributes&lt;/x:h2&gt;
    &lt;x:p&gt;Ruby elements are intended to have common attributes of its
      parent markup language. The pattern "Common.attrib" MUST be
      defined to integrate this module.&lt;/x:p&gt;
    &lt;define name="Ruby.common.attrib"&gt;
      &lt;ref name="Common.attrib"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
  &lt;div&gt;
    &lt;x:p&gt;Content models of the rb and the rt elements are intended to
      allow other inline-level elements of its parent markup language,
      but it should not include ruby descendent elements. This RELAX NG
      module itself doesn't check nesting of ruby elements.
      The patterns "Inline.class" and "Inline.model" MUST be defined
      to integrate this module.&lt;/x:p&gt;
    &lt;define name="Inline.class" combine="choice"&gt;
      &lt;ref name="ruby"/&gt;
    &lt;/define&gt;
    &lt;define name="NoRuby.content"&gt;
      &lt;ref name="Inline.model"/&gt;
    &lt;/define&gt;
  &lt;/div&gt;
&lt;/grammar&gt;
</pre>

<h3><a id= 
"a_rmodule_Ruby_Driver_for_Full_Ruby_Markup">C.3.2.</a> Ruby Driver
for Full Ruby Markup</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"&gt;
  &lt;x:h1&gt;Ruby Module in RELAX NG for full ruby markup&lt;/x:h1&gt;
  &lt;x:pre&gt;
    Copyright &amp;#xA9;2003 W3C&amp;#xAE; (MIT, ERCIM, Keio), All Rights Reserved.
      Editor:   Masayasu Ishikawa &amp;lt;mimasa@w3.org&amp;gt;
      Revision: $Id: test2.xml,v 1.1 2004/02/18 03:43:29 vivien Exp $
  &lt;/x:pre&gt;
  &lt;include href="ruby-1.rng"/&gt;
  &lt;define name="Ruby.content" combine="choice"&gt;
    &lt;x:p&gt;Allow complex ruby markup in addition to simple ruby markup&lt;/x:p&gt;
    &lt;ref name="Ruby.content.complex"/&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h3><a id="a_rmodule_XML_Events">
C.3.3.</a> XML Events</h3>

<pre class="dtd">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;grammar ns="http://www.w3.org/2001/xml-events"
         xmlns="http://relaxng.org/ns/structure/1.0"
         xmlns:ev="http://www.w3.org/2001/xml-events"
         xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0"
         xmlns:x="http://www.w3.org/1999/xhtml"
         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"&gt;
  &lt;x:h1&gt;XML Events Module in RELAX NG&lt;/x:h1&gt;
  &lt;x:pre&gt;
    Copyright &amp;#xA9;2003 W3C&amp;#xAE; (MIT, ERCIM, Keio), All Rights Reserved.
      Editor:   Masayasu Ishikawa &amp;lt;mimasa@w3.org&amp;gt;
      Revision: $Id: test2.xml,v 1.1 2004/02/18 03:43:29 vivien Exp $
    Permission to use, copy, modify and distribute this RELAX NG schema
    for XML Events and its accompanying documentation for any purpose and
    without fee is hereby granted in perpetuity, provided that the above
    copyright notice and this paragraph appear in all copies. The copyright
    holders make no representation about the suitability of this RELAX NG
    schema for any purpose.
    It is provided "as is" without expressed or implied warranty.
    For details, please refer to the W3C software license at:
      &lt;x:a href="http://www.w3.org/Consortium/Legal/copyright-software"
      &gt;http://www.w3.org/Consortium/Legal/copyright-software&lt;/x:a&gt;
  &lt;/x:pre&gt;
  &lt;define name="listener"&gt;
    &lt;element name="listener"&gt;
      &lt;ref name="listener.attlist"/&gt;
    &lt;/element&gt;
  &lt;/define&gt;
  &lt;define name="listener.attlist"&gt;
    &lt;optional&gt;
      &lt;attribute name="event"&gt;
        &lt;data type="NMTOKEN"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="observer"&gt;
        &lt;data type="IDREF"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="target"&gt;
        &lt;data type="IDREF"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="handler"&gt;
        &lt;data type="anyURI"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="phase" a:defaultValue="default"&gt;
        &lt;choice&gt;
          &lt;value&gt;capture&lt;/value&gt;
          &lt;value&gt;default&lt;/value&gt;
        &lt;/choice&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="propagate" a:defaultValue="continue"&gt;
        &lt;choice&gt;
          &lt;value&gt;stop&lt;/value&gt;
          &lt;value&gt;continue&lt;/value&gt;
        &lt;/choice&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="defaultAction" a:defaultValue="perform"&gt;
        &lt;choice&gt;
          &lt;value&gt;cancel&lt;/value&gt;
          &lt;value&gt;perform&lt;/value&gt;
        &lt;/choice&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
    &lt;optional&gt;
      &lt;attribute name="id"&gt;
        &lt;data type="ID"/&gt;
      &lt;/attribute&gt;
    &lt;/optional&gt;
  &lt;/define&gt;
&lt;/grammar&gt;
</pre>

<h1><a  id="a_xhtml20_schema">D.</a> XHTML
2.0 Schema</h1>

<p>This appendix is <em>normative</em> .</p>

<p>This appendix will contain the implementation of the XHTML 2.0
Schema driver file and content model file.</p>

<h1><a  id="a_schema_module_defs">E.</a>
XHTML Schema Module Implementations</h1>

<p>This appendix is <em>normative</em> .</p>

<p>This appendix will contain implementations of the modules
defined in this specification via XML Schema [ <a class="nref"
href="#ref_XMLSCHEMA">XMLSCHEMA</a> ] when XML Schema becomes a W3C
Recommendation.</p>

<h1><a  id="a_xhtml20_dtd">F.</a> XHTML 2.0
Document Type Definition</h1>

<p>This appendix is <em>normative</em> .</p>

<p>This appendix will contain the implementation of the XHTML 2.0
DTD driver file and content model file.</p>

<h2><a id="sec_F.1."><span class="diff-new">
F.1.</span></a> <span class="diff-new">Issues</span></h2>

<div class="issue">
<p id="a_xhtml20_dtd_issue_0" class="issueTitle"><span class= 
"diff-chg">more xhtml</span> 2.0 <span class="diff-chg">
comments</span> <span class="pr"><span class="diff-chg">PR
#6330</span></span><br />
<span class="diff-chg">State: Open</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
</p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class=
"diff-chg">More comments about XHTML 2.0. Each entry below has references at the end of
the message. Message x-posted to www-html-editor.
This issue as extracted from issue 6323:
0. the lack of DTD is a very big problem. The HTML WG should not release other
    XHTML WD without DTD.
[0] http://www.w3.org/TR/xhtml2/xhtml2.html#a_xhtml20_dtd_issue_0
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="a_xhtml20_dtd_issue_1" class="issueTitle"><span class= 
"diff-chg">more xhtml</span> 2.0 <span class="diff-chg">
comments</span> <span class="pr"><span class="diff-chg">PR
#6338</span></span><br />
<span class="diff-chg">State: Open</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
</p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">More comments about XHTML 2.0. 
This issue as extracted from issue 6323:
8. I do not understand how the DTD will reflect the modularization
&lt;/Daniel&gt;
</span>
</pre>
</div>

<div class="issue">
<p id="a_xhtml20_dtd_issue_2" class="issueTitle"><span class= 
"diff-chg">Fw: Character entities in HTML</span> and <span class= 
"diff-chg">MathML</span> <span class="pr"><span class="diff-chg">PR
#634</span></span><br />
<span class="diff-chg">State: Open</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
</p>

<p><b><span class="diff-chg">Original Message:</span></b></p>

<pre>
<span class="diff-chg">----- Original Message ----- 
From: "Patrick D. F. Ion" &lt;ion@ams.org&gt;
To: "Steven Pemberton" &lt;steven.pemberton@cwi.nl&gt;
Cc: &lt;davidc@nag.co.uk&gt;; &lt;soiffer@wolfram.com&gt;; &lt;aldiaz@us.ibm.com&gt;
Sent: Thursday, November 29, 2001 4:08 AM
Subject: Character entities in HTML and MathML
&gt; 
&gt;   Dear Steven,
&gt; 
&gt;     In going through the tables of characters for MathML
&gt;     use again, because of the imminent revision of Unicode,
&gt;     we have a couple of comments on the assignments of
&gt;     codes and names in HTML, MathML, Unicode and elsewhere.
&gt;     In fact there are two cases where we would suggest that
&gt;     changes be made in HTML.  In a couple of other cases
&gt;     we've made changes in the MathML assignments, although there
&gt;     are arguments from usage that one shouldn't.  We have been
&gt;     explicitly trying to remain compatible with ISO for MathML
&gt;     will be deployed along with DocBook and TEI.
&gt; 
&gt;     In detail, the characters in question are the following
&gt; 
&gt;     Name                  Unicode (dec/hex)
&gt;     -------------------
&gt;     Upsilon  (HTML)            933/03A5
&gt;           This is the Greek text upper-case
&gt;           Upsilon.  As such this is a good
&gt; choice for the name Upsilon.
&gt; 
&gt;     [Upsilon  (former MathML)] 978/03D2
&gt;           The MathML choice for this used to be
&gt;           the Upsilon with a bit of a curl as
&gt;           commonly used in mathematical texts.
&gt;           Thus, now, for compatibility with HTML,
&gt;           MathML will now use an entity name
&gt;           from ISOGRK3, which is shown there
&gt;           with the right sort of glyph.
&gt;     Upsi  (MathML)             978/03D2
&gt;     -------------------
&gt; 
&gt;     Name                  Unicode (dec/hex)
&gt;     -------------------
&gt;     circ  (HTML)                94/02C6
&gt;           This code assigns the name to
&gt;           a character in the IPA Extensions
&gt;           block that Unicode describes as
&gt;           "MODIFIER LETTER  CIRCUMFLEX ACCENT".
&gt;           All the items around this code point
&gt;           have to do with phonetics, so this seems
&gt;           possibly the wrong assignment.
&gt; 
&gt;           A possible correction for HTML?
&gt; 
&gt;     -------------------
&gt; 
&gt;     Name                  Unicode (dec/hex)
&gt;     -------------------
&gt;     empty (HTML)            8709/2205
&gt;           MathML had preferred a variant
&gt;           character, more like a cancelled
&gt;           (slashed, negated) letter O, which is
&gt;           more common in printed mathematics
&gt;           today for use as &amp;empty;.  But we
&gt;           have adjusted to agree with HTML and
&gt;           now have the recognized variant
&gt;           2205-0FE0 available in Unicode
&gt;           to be called &amp;varnothing; or &amp;emptyv;.
&gt; 
&gt;     -------------------
&gt; 
&gt;     Name                  Unicode (dec/hex)   Comment
&gt;     -------------------
&gt;     asymp (HTML)              8776/2248
&gt;          Unicode says "ALMOST EQUAL TO =
&gt;          approximately equal to".
&gt;     [asymp (former MathML)]   8781/224D
&gt;           Unicode says "EQUIVALENT TO".
&gt;     is changed to
&gt;     asympeq (new MathML)      8781/224D
&gt;         Unicode says "EQUIVALENT TO".
&gt; 
&gt;     MathML chose to use &amp;asymp; for 224D because
&gt;     it accords with the ISOAMR entity set, and
&gt;     this symbol is commonly used in asymptotic
&gt;     analysis to mean "asymptotically equivalent to".
&gt;     2248 is usually used for notions of approximate
&gt;     equality, which have nothing to do with asymptotics.
&gt;     Nonetheless, MathML can adjust to HTML's name
&gt;     since people are using the entity to get a
&gt;     "double twiddle" already. Our change harms compatibility
&gt;     with DocBook. Is there a way of deprecating &amp;asymp;
&gt;     and giving new names whcih wouldn't be so confusing?
&gt;     One can use &amp;ap; the ISO 12083 name for 2248, or
&gt;     the aliases &amp;tildetilde; and &amp;approx;.
&gt; 
&gt;     -------------------
&gt; 
&gt;     Name                  Unicode (dec/hex)
&gt;     -------------------
&gt;     phi    (HTML)            966/03C6
&gt;        Unicode says "GREEK SMALL LETTER PHI
&gt;        = latin small letter phi 0278"
&gt;        This is the curly one.
&gt;     981/03D5
&gt;        Unicode says "GREEK SMALL LETTER
&gt;        SCRIPT PHI * used as a technical
&gt;        symbol"
&gt;        This is now the straight one.
&gt; 
&gt;        The problem arises because HTML4 did not
&gt;        issue an erratum after Unicode 3 came
&gt;        out and changed the code points, switching
&gt;        curly and straight in response
&gt;        to Greek protests.
&gt; 
&gt;     -------------------
&gt; 
&gt;     These are the points where there still
&gt;     seems to be difference of any
&gt;     sort between MathML and HTML.  We hope we
&gt;     can bring them into full harmony because
&gt;     entity resolutions depend on DTD loading
&gt;     order, so that minor disagreements over
&gt;     characters can lead to unforeseen and
&gt;     regrettable consequences for users. Since
&gt;     you are doing an XHTML update this seems a
&gt;     very good time to resolve the issues.
&gt; 
&gt; 
&gt; Best regards,
&gt; 
&gt; Patrick
&gt; 
&gt; -- 
&gt; end
&gt; -%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%-%
&gt; Patrick D. F. Ion
&gt; Associate Editor                          &lt;ion@ams.org&gt;
&gt; Mathematical Reviews
&gt; P. O. Box 8614,  416 Fourth Street
&gt; Ann Arbor, Michigan  48107-8604
&gt; Tel: [1]-(734)-996-5273      FAX: [1]-(734)-996-2916 
&gt; &lt;http://www.ams.org/mathweb/MRInfo/MR-Home.html&gt;
&gt; 
&gt; University of Michigan   &lt;pion@umich.edu&gt;     Campus Mail Stop: 4820
&gt; 
&gt; W3C Math Working Group Co-chair              &lt;http://www.w3.org/Math/&gt;
&gt; MathML 2             &lt;http://www.w3.org/TR/2001/REC-MathML2-20010221/&gt;
&gt; MathML Recommendation &lt;http://www.w3.org/2001/02/mathml2-pressrelease&gt;
&gt; Math on the Web pages                    &lt;http://www.ams.org/mathweb/&gt;
&gt; MathML Conference, 28-30 June 2002   &lt;http://www.mathmlconference.org&gt;
&gt; 
</span>
</pre>
</div>

<div class="issue">
<p id="a_xhtml20_dtd_issue_3" class="issueTitle"><span class= 
"diff-chg">Character entities: do we still need them?</span> <span
class="pr"><span class="diff-chg">PR #671</span></span><br />
<span class="diff-chg">State: Open</span><br />
<span class="diff-chg">Resolution: None</span><br />
<span class="diff-chg">User: None</span></p>

<p><b><span class="diff-chg">Notes:</span></b><br />
<span class="diff-chg">The WG believes that there's still a need
for character entities. We</span> need to <span class="diff-chg">
find</span> a <span class="diff-chg">solution.</span></p>

<p><b><span class="diff-new">Original Message:</span></b></p>

<pre>
<span class=
"diff-new">I'm really sorry to resurrect this old issue, but for XHTML 2.0,
we have to reconsider this issue again, unfortunately.
If I understand correctly, the decision at the Cannnes FtF
w.r.t. the conformance section of XHTML 2.0 [1] is to require
xsi:schemaLocation and make DOCTYPE optional.  However, as we
all know painfully well, XML Schema doesn't support entities
and if we want to continue to support character entity references
in XHTML 2.0, we have to stick to DTD mechanism.
I'm not sure if we discussed this issue particularly for XHTML 2.0,
and in Boston FtF, we discussed (I believe with XHTML 1.x in mind)
and decided as follows [2]:
  Conclusion: We will continue to require DTD parsers along with XML Schemas
Well, strictly speaking, it's somewhat bogus, as non-validating XML
processors may not read external DTD subset, so if we really want
to use character entity references reliably, those entity declarations
have to be declared in the internal DTD subset.
So, what's our position for XHTML 2.0?  Possible options include:
  1. Continue to support character entities, require DOCTYPE (at least
     for character entities) in addition to xsi:schemaLocation
  2. Abandon support for character entities
  3. Replace character entities with an ugly schema "alternative" (see
     an example in XML Schema Part 0 [3])
  4. Use other arcane mechanism, such as PI (ugh).
  5. Declare defeat, explain the current mess, tell authors not to
     rely on character entities (e.g. authors MAY use them but they
     have to explicitly include all the necessary entity declarations
     in the internal subset for reliable processing).
None of these options is ideal, but we have to face this reality
and make a decision.
[1] http://www.w3.org/MarkUp/Group/2002/WD-xhtml2-20020209/conformance.html#strict
[2] http://www.w3.org/MarkUp/Group/2001/03/f2f/minutes#Entities
[3] http://www.w3.org/TR/xmlschema-0/#usingEntities
Regards,
-- 
Masayasu Ishikawa / mimasa@w3.org
W3C - World Wide Web Consortium
</span>
</pre>
</div>

<h1><a  id="a_dtd_module_defs">G.</a> XHTML
DTD Module Implementations</h1>

<p>This appendix is <em>normative</em> .</p>

<p>This appendix will contain implementations of the modules
defined in this specification. These module implementations can be
used in other XHTML Family Document Types.</p>

<h2><a  id="a_xhtml_framework">G.1.</a>
XHTML Modular Framework</h2>

<p>In order to take advantage of the XHTML DTD Modules, DTD authors
need to define the content model for their DTD. XHTML provides a
variety of tools to ease this effort. They are defined in a set of
support modules, instantiated by a main Framework module:</p>

<pre class="dtd">
Module DTD/xhtml-framework-2.mod not found!
</pre>

<p>Note that the module above references a content model module.
This module is defined on a per-document type basis in addition to
the document type driver file. The Modular framework also relies
upon the following component modules:</p>

<h3><a  id= 
"a_module_XHTML_Base_Architecture">G.1.1.</a> XHTML Base
Architecture</h3>

<h3><a  id=
"a_module_XHTML_Notations">G.1.2.</a> XHTML Notations</h3>

<h3><a  id=
"a_module_XHTML_Datatypes">G.1.3.</a> XHTML Datatypes</h3>

<h3><a  id= 
"a_module_XHTML_Common_Attribute_Definitions">G.1.4.</a> XHTML
Common Attribute Definitions</h3>

<h3><a  id= 
"a_module_XHTML_Qualified_Names">G.1.5.</a> XHTML Qualified
Names</h3>

<h3><a  id= 
"a_module_XHTML_Character_Entities">G.1.6.</a> XHTML Character
Entities</h3>

<h2><a  id="a_dtdspecial">G.2.</a> XHTML Module
Implementations</h2>

<p>This section contains the formal definition of each of the XHTML
Abstract Modules as a DTD module.</p>

<h3><a  id="a_module_Structure">G.2.1.</a>
Structure</h3>

<h3><a  id="a_module_Block_Text">
G.2.2.</a> Block Text</h3>

<h3><a  id="a_module_Inline_Text">
G.2.3.</a> Inline Text</h3>

<h3><a  id="a_module_Hypertext">G.2.4.</a>
Hypertext</h3>

<h3><a  id="a_module_List">G.2.5.</a> List</h3>

<h3><a  id="a_module_Link">G.2.6.</a> Link</h3>

<h3><a id=
"a_module_Metainformation">G.2.7.</a> Metainformation</h3>

<h3><a  id="a_module_Object">G.2.8.</a>
Object</h3>

<h3><a  id="a_module_Scripting">G.2.9.</a>
Scripting</h3>

<h3><a  id=
"a_module_Style_Attribute">G.2.10.</a> Style Attribute</h3>

<h3><a  id="a_module_Style_Sheet">
G.2.11.</a> Style Sheet</h3>

<h3><a  id="a_module_Tables">G.2.12.</a>
Tables</h3>

<h2><a  id="a_dtdsupport_2">G.3.</a> XHTML DTD
Support Modules</h2>

<p>The modules in this section are elements of the XHTML DTD
implementation that, while hidden from casual users, are important
to understand when creating derivative markup languages using the
Modularization architecture.</p>

<h3><a  id="a_module_Param">G.3.1.</a>
Param</h3>

<h1><a  id="a_stylesheet"><span class=
"diff-chg">H.</span></a> <span class="diff-chg">Stylesheet for
XHTML 2</span></h1>

<p><span class="diff-chg">This appendix is</span> <em><span class= 
"diff-chg">normative</span></em> .</p>

<p><span class="diff-chg">This Appendix defines</span> a <span
class="diff-chg">normative [</span> <a class="nref" href=
"#ref_CSS2"><span class="diff-chg">CSS2</span></a> <span class= 
"diff-chg">] stylesheet for XHTML 2. While visual user agents
implementing XHTML 2 are not required to support CSS2, they are
required to behave as if the following CSS2 styles are in
effect.</span></p>

<pre class="dtd">
<span class=
"diff-chg">@namespace url("http://www.w3.org/2002/06/xhtml2");
/*  A sample style sheet for XHTML 2
    This style sheet describes the sample rendering of proposed XHTML 2
    elements.
    Editor: Masayasu Ishikawa &lt;mimasa@w3.org&gt;
    Revision: $Id: test2.xml,v 1.1 2004/02/18 03:43:29 vivien Exp $
*/
/* new elements */
section, h, nl, label, line, l, blockcode
                { display: block; }
section, h, nl, label, line, l, blockcode
                { unicode-bidi: embed }
nl              { margin: 1.33em 0 }
summary, standby
                { display: none }
blockcode
                { font-family: monospace; white-space: pre }
h { 
        display: block;
    color: #005A9C;
}
body h {
    font-size: 2em;
    margin: .67em 0;
}
section h {
    font-size: 1.5em;
    margin: .83em 0;
}
section section h {
    font-size: 1.17em;
    margin: 1em 0;
}
section section section h, p, blockquote, ul, ol, dl {
    margin: 1.33em 0;
}
section section section section h {
    font-size: .83em;
    line-height: 1.17em;
    margin: 1.67em 0;
}
section section section section section h {
    font-size: .67em;
    margin: 2.33em 0;
}
h {
    font-weight: bolder;
}
*[edit="deleted"]  { text-decoration: line-through }
*[edit="inserted"] { text-decoration: underline; font-style: italic }
*[edit="changed"]  { background-color: yellow }
*[edit="moved"]    { background-color: red }
/* experimental navigation list style */
nl {
  height: 1.5em;
  overflow: auto;
  margin: 0;
  line-height: normal !important;
  white-space: nowrap;
  text-align: start; 
  cursor: default;
  border-width: 2px !important;
  border-style: inset !important;
  vertical-align: baseline;
  padding: 0;
  -moz-box-sizing: border-box;
  -moz-appearance: menulist;
}
nl:hover { height: auto; overflow: visible; }
nl &gt; li, nl &gt; label {
  display: block;
  min-height: 1em;
  line-height: normal !important;
}
nl &gt; li, nl &gt; label {
  padding: 0 5px 0 3px;
}
nl &gt; li {
  margin-left: 1em;
}
nl &gt; label {
  font-weight: bold;
}
nl &gt; nl &gt; label {
  display: block;
  line-height: normal !important;
  font-style: italic;
  font-weight: bold;
  -moz-user-select: none;
  -moz-user-focus: none;
}
nl &gt; nl &gt; li {
  padding-left: 2em;
  font-style: normal;
  font-weight: normal;
}
@media print {
/*   @page         { margin: 10%; } */
  h             { page-break-after: avoid; page-break-inside: avoid }
  blockcode
                { page-break-inside: avoid }
}
@media aural {
    h {
        voice-family: paul, male;
        stress: 20;
        richness: 90;
        pitch: x-low;
        pitch-range: 90;
    }
    
    section h {
        pitch: x-low;
        pitch-range: 80;
    }
    
    section section h {
        pitch: low;
        pitch-range: 70;
    }
    
    section section section h {
        pitch: medium;
        pitch-range: 60;
    }
    
    section section section section h {
        pitch: medium;
        pitch-range: 50;
    }
    
    section section section section section h {
        pitch: medium;
        pitch-range: 40;
    }
        blockcode {
        pitch: medium; pitch-range: 0; stress: 0; richness: 80
    }
}
/* inherited elements */
html, body, div, p, hr, h1, h2, h3, h4, h5, h6,
address, blockquote, pre, ol, ul, dl, dt, dd
                { display: block }
li              { display: list-item }
head, script    { display: none }
table           { display: table }
tr              { display: table-row }
thead           { display: table-header-group }
tbody           { display: table-row-group }
tfoot           { display: table-footer-group }
col             { display: table-column }
colgroup        { display: table-column-group }
td, th          { display: table-cell }
caption         { display: table-caption }
th              { font-weight: bolder; text-align: center }
caption         { text-align: center }
body            { padding: 8px; line-height: 1.12em }
h1              { font-size: 200%; margin: .67em 0 }
h2              { font-size: 150%; margin: .83em 0 }
h3              { font-size: 117%; margin: 1em 0 }
h4, p, blockquote, ol, ul, dl
                { margin: 1.33em 0 }
h5              { font-size: 83%; line-height: 1.17em; margin: 1.67em 0 }
h6              { font-size: 67%; margin: 2.33em 0 }
h1, h2, h3, h4, h5, h6
                { font-family: sans-serif; font-weight: bolder }
strong          { font-weight: bolder }
blockquote      { margin-left: 40px; margin-right: 40px }
cite, em, var, address
                { font-style: italic }
pre code, kbd, samp
                { font-family: monospace }
pre             { white-space: pre }
sub, sup        { font-size: smaller }
sub             { vertical-align: sub }
sup             { vertical-align: super }
/* del             { text-decoration: line-through } */
hr              { border: 1px inset }
ol, ul, dd      { margin-left: 40px }
ol              { list-style-type: decimal }
ol ul, ul ol, ul ul, ol ol
                { margin-top: 0; margin-bottom: 0 }
/* ins             { text-decoration: underline } */
br:before       { content: "\A" }
/*
abbr, acronym   { font-variant: small-caps; letter-spacing: 0.1em }
*/
abbr[title]     { border-bottom: dotted 1px }
*[href]         { text-decoration: underline; color: blue; }
:focus          { outline: thin dotted invert }
/* Hover effects should be default */
*[href]:visited { color: #b7f } /* A little lighter than traditionally */
*[href]:hover   { color: red }
/* begin bidirectionality settings (do not change) */
/*
bdo[dir="ltr"]  { direction: ltr; unicode-bidi: bidi-override }
bdo[dir="rtl"]  { direction: rtl; unicode-bidi: bidi-override }
*/
*[dir="ltr"]    { direction: ltr; unicode-bidi: embed }
*[dir="rtl"]    { direction: rtl; unicode-bidi: embed }
*[dir="lro"]    { direction: ltr; unicode-bidi: bidi-override }
*[dir="rlo"]    { direction: rtl; unicode-bidi: bidi-override }
/* block-level elements */
body, div, p, center, hr, h1, h2, h3, h4, h5, h6,
address, blockquote, pre, ol, ul, li, dl, dt, dd,
noscript, table, thead, tbody, tfoot, tr, td, th,
col, colgroup, caption, object
                { unicode-bidi: embed }
/* end bidi settings */
/* @page         { margin: 10% } */
@media print {
  h1, h2, h3, h4, h5, h6
                { page-break-after: avoid; page-break-inside: avoid }
  blockquote, pre
                { page-break-inside: avoid }
  ul, ol, dl    { page-break-before: avoid }
}
@media aural {
  h1, h2, h3, h4, h5, h6
                { voice-family: paul, male; stress: 20; richness: 90 }
  h1            { pitch: x-low; pitch-range: 90 }
  h2            { pitch: x-low; pitch-range: 80 }
  h3            { pitch: low; pitch-range: 70 }
  h4            { pitch: medium; pitch-range: 60 }
  h5            { pitch: medium; pitch-range: 50 }
  h6            { pitch: medium; pitch-range: 40 }
  li, dt, dd    { pitch: medium; richness: 60 }
  dt            { stress: 80 }
  pre, code     { pitch: medium; pitch-range: 0; stress: 0; richness: 80 }
  em            { pitch: medium; pitch-range: 60; stress: 60; richness: 50 }
  strong        { pitch: medium; pitch-range: 60; stress: 90; richness: 90 }
  dfn           { pitch: high; pitch-range: 60; stress: 60 }
  :link         { voice-family: harry, male }
  :visited      { voice-family: betty, female }
  :active       { voice-family: betty, female; pitch-range: 80; pitch: x-high }
}
/* end xhtml2.css */
</span>
</pre>

<h1><a id="a_elements"><span class="diff-chg">
J.</span></a> List of Elements</h1>

<p>This appendix is <em>informative</em> .</p>

<p>This appendix will contain a list of elements defined in this
specification, sorted in alphabetical order, with some other
relevant information and links to the element definitions.</p>

<table cellpadding="2" border="1" summary="list of elements and 
their locations">
<tr>
<th><span class="diff-new">Element Name</span></th>
<th><span class="diff-new">Module</span></th>
<th><span class="diff-new">Description</span></th>
</tr>
</table>

<h1><a  id="a_attributes"><span class=
"diff-chg">I.</span></a> List of Attributes</h1>

<p>This appendix is <em>informative</em> .</p>

<p>This appendix will contain a list of attributes defined in this
specification, sorted in alphabetical order, with some other
relevant information and links to the attribute definitions.</p>

<table cellpadding="2" border="1" summary="list of attributes and 
their locations">
<tr>
<th><span class="diff-new">Attribute Name</span></th>
<th><span class="diff-new">Module</span></th>
<th><span class="diff-new">Description</span></th>
</tr>
</table>

<h1><a id="a_xref"><span class="diff-chg">
K.</span></a> Cross-reference Index</h1>

<p>This appendix is <em>informative</em> .</p>

<p>This appendix will contain a detailed index of this document,
with links to the indexed terms.</p>

<h1><a id="a_refs"><span class="diff-chg">
L.</span></a> References</h1>

<p>This appendix is <em>normative</em> .</p>

<h2><a id="a_normrefs"><span class="diff-chg">
L.1.</span></a> Normative References</h2>

<dl>
<dt><a id="ref_CSS2"  class="normref">
[CSS2]</a></dt>

<dd>" <cite><a href="http://www.w3.org/TR/1998/REC-CSS2-19980512">
Cascading Style Sheets, level 2 (CSS2) Specification</a></cite> ",
W3C Recommendation, B. Bos <i xml:lang="la">et al.</i> ,
<i><abbr title="editors">eds.</abbr></i> , 12 May 1998.<br />
Available at: http://www.w3.org/TR/1998/REC-CSS2-19980512</dd>

<dt><a id="ref_DOM" name="ref_DOM" class="normref">[DOM]</a></dt>

<dd>" <cite><a href= 
"http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113">Document
Object Model (DOM) Level 2 Core Specification</a></cite> ", W3C
Recommendation, A. Le&nbsp;Hors <i lang="la" xml:lang="la">et
al.</i> , <i><abbr title="editors">eds.</abbr></i> , 13 November
2000.<br />
Available at:
http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113<br />
A <a href="http://www.w3.org/DOM/DOMTR#dom2">list of DOM Level 2
specifications</a> can be found at:
http://www.w3.org/DOM/DOMTR#dom2</dd>

<dt><a id="ref_MIMETYPES" name="ref_MIMETYPES" class="normref">
[MIMETYPES]</a></dt>

<dd>List of registered content types (MIME media types). Download a
list of registered content types from <a href= 
"http://www.iana.org/assignments/media-types/">
http://www.iana.org/assignments/media-types/</a> .</dd>

<dt><a id="ref_P3P" name="ref_P3P" class="normref">[P3P]</a></dt>

<dd>" <cite><a href="http://www.w3.org/TR/2002/REC-P3P-20020416/">
The Platform for Privacy Preferences 1.0 (P3P1.0)
Specification</a></cite> ", W3C Recommendation, L. Cranor <i lang= 
"la" xml:lang="la">et al.</i> , 16 April 2002.<br />
Available at: http://www.w3.org/TR/2002/REC-P3P-20020416/</dd>

<dt><a id="ref_RELAXNG" name="ref_RELAXNG" class="normref">
[RELAXNG]</a></dt>

<dd>" <cite><a href="http://relaxng.org/spec-20011203.html">RELAX
NG Specification</a></cite> ", <acronym title="Organization for the 
Advancement of Structured Information Standards">OASIS</acronym>
Committee Specification, J. Clark, Murata M., <i><abbr title= 
"editors">eds.</abbr></i> , 3 December 2001.<br />
Available at: http://relaxng.org/spec-20011203.html<br />
RELAX NG is being standardized as part of <abbr title= 
"International Organization for Standardization">ISO</abbr> / <abbr
title="International Electrotechnical Commission">IEC</abbr> 19757
- Document Schema Definition Languages ( <abbr>DSDL</abbr> ),
currently a Final Draft International Standard ( <abbr>FDIS</abbr>
). See <a href="http://dsdl.org/">home page for Document Schema
Definition Languages</a> at http://dsdl.org/ for details.</dd>

<dt><a id="ref_RFC2045" name="ref_RFC2045" class="normref">
[RFC2045]</a></dt>

<dd>" <cite><a href="http://www.rfc-editor.org/rfc/rfc2045.txt">
Multipurpose Internet Mail Extensions (MIME) Part One: Format of
Internet Message Bodies</a></cite> ", RFC 2045, N. Freed and N.
Borenstein, November 1996.<br />
Available at: http://www.rfc-editor.org/rfc/rfc2045.txt</dd>

<dt><a id="ref_RFC2119" name="ref_RFC2119" class="normref">
[RFC2119]</a></dt>

<dd>" <cite><a href="http://www.rfc-editor.org/rfc/rfc2119.txt">Key
words for use in RFCs to indicate requirement levels</a></cite> ",
RFC 2119, S. Bradner, March 1997.<br />
Available at: http://www.rfc-editor.org/rfc/rfc2119.txt</dd>

<dt><a id="ref_RFC2616" name="ref_RFC2616" class="normref">
[RFC2616]</a></dt>

<dd>" <cite><a href="http://www.rfc-editor.org/rfc/rfc2616.txt">
Hypertext Transfer Protocol -- HTTP/1.1</a></cite> ", RFC 2616, R.
Fielding <i lang="la" xml:lang="la">et al.</i> , June 1999.<br />
Available at: http://www.rfc-editor.org/rfc/rfc2616.txt</dd>

<dt><a id="ref_RFC3066" name="ref_RFC3066" class="normref">
[RFC3066]</a></dt>

<dd>" <cite><a href="http://www.rfc-editor.org/rfc/rfc3066.txt">
Tags for the Identification of Languages</a></cite> ", RFC 3066, H.
Alvestrand, January 2001.<br />
Available at: http://www.rfc-editor.org/rfc/rfc3066.txt</dd>

<dt><a id="ref_RUBY" name="ref_RUBY" class="normref">
[RUBY]</a></dt>

<dd>" <cite><a href="http://www.w3.org/TR/2001/REC-ruby-20010531">
Ruby Annotation</a></cite> ", W3C Recommendation, M. Sawicki <i
lang="la" xml:lang="la">et al.</i> , <i><abbr title="editors">
eds.</abbr></i> , 31 May 2001.<br />
Available at: http://www.w3.org/TR/2001/REC-ruby-20010531</dd>

<dt><a id="ref_SGML" name="ref_SGML" class="normref">
[SGML]</a></dt>

<dd>" <cite>Information Processing -- Text and Office Systems --
Standard Generalized Markup Language (SGML)</cite> ", ISO
8879:1986.<br />
Please consult the <a href="http://www.iso.ch/">ISO Web site</a> at
http://www.iso.ch/ for information about the standard, or <a href= 
"http://www.oasis-open.org/cover/general.html#overview">
http://www.oasis-open.org/cover/general.html#overview</a> about
SGML.</dd>

<dt><a id="ref_UAX9" name="ref_UAX9" class="normref">
[UAX9]</a></dt>

<dd>" <cite><a href=
"http://www.unicode.org/reports/tr9/tr9-11.html">Unicode Standard
Annex #9: The Bidirectional Algorithm</a></cite> ", M. Davis, 17
April 2003.<br />
Available at: http://www.unicode.org/reports/tr9/tr9-11.html<br />
The <a href="http://www.unicode.org/reports/tr9/">latest
version</a> of <abbr title="Unicode Standard Annex">UAX</abbr> #9
is available at: http://www.unicode.org/reports/tr9/</dd>

<dt><a id="ref_URI" name="ref_URI" class="normref">[URI]</a></dt>

<dd>" <cite><a href="http://www.rfc-editor.org/rfc/rfc2396.txt">
Uniform Resource Identifiers (URI): Generic Syntax</a></cite> ",
RFC 2396, T. Berners-Lee <i lang="la" xml:lang="la">et al.</i> ,
August 1998.<br />
Available at: http://www.rfc-editor.org/rfc/rfc2396.txt.</dd>

<dt><a id="ref_XFORMS" name="ref_XFORMS" class="normref">
[XFORMS]</a></dt>

<dd>" <cite><a href=
"http://www.w3.org/TR/2002/CR-xforms-20021112/">XForms
1.0</a></cite> ", W3C Candidate Recommendation, M. Dubinko <i lang= 
"la" xml:lang="la">et al.</i> , <i><abbr title="editors">
eds.</abbr></i> , 12 November 2002, <em>work in progress</em>
.<br />
Available at: http://www.w3.org/TR/2002/CR-xforms-20021112/</dd>

<dt><a id="ref_XHTMLMOD" name="ref_XHTMLMOD" class="normref">
[XHTMLMOD]</a></dt>

<dd>" <cite><a href= 
"http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410">
Modularization of XHTML</a></cite> ", W3C Recommendation, M.
Altheim <i lang="la" xml:lang="la">et al.</i> , <i><abbr title= 
"editors">eds.</abbr></i> , 10 April 2001<br />
Available at:
http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410</dd>

<dt><a id="ref_XML" name="ref_XML" class="normref">[XML]</a></dt>

<dd>" <cite><a href="http://www.w3.org/TR/2000/REC-xml-20001006">
Extensible Markup Language (XML) 1.0 (Second Edition)</a></cite> ",
W3C Recommendation, T. Bray <i lang="la" xml:lang="la">et al.</i> ,
<i><abbr title="editors">eds.</abbr></i> , 6 October 2000.<br />
Available at: http://www.w3.org/TR/2000/REC-xml-20001006</dd>

<dt><a id="ref_XMLBASE" name="ref_XMLBASE" class="normref">
[XMLBASE]</a></dt>

<dd>" <cite><a href=
"http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML
Base</a></cite> ", W3C Recommendation, J. Marsh, <i><abbr title= 
"editor">ed.</abbr></i> , 27 June 2001.<br />
Available at: http://www.w3.org/TR/2001/REC-xmlbase-20010627/</dd>

<dt><a id="ref_XMLEVENTS" name="ref_XMLEVENTS" class="normref">
[XMLEVENTS]</a></dt>

<dd>" <cite><a href= 
"http://www.w3.org/TR/2003/CR-xml-events-20030207">XML
Events</a></cite> ", W3C Candidate Recommendation, S. McCarron <i
lang="la" xml:lang="la">et al.</i> , <i><abbr title="editors">
eds.</abbr></i> , 7 February 2003, <em>work in progress</em>
.<br />
Available at: http://www.w3.org/TR/2003/CR-xml-events-20030207</dd>

<dt><a id="ref_XMLNAMES" name="ref_XMLNAMES" class="normref">
[XMLNAMES]</a></dt>

<dd>" <cite><a href= 
"http://www.w3.org/TR/1999/REC-xml-names-19990114">Namespaces in
XML</a></cite> ", W3C Recommendation, T. Bray <i lang="la"
xml:lang="la">et al.</i> , <i><abbr title="editors">eds.</abbr></i>
, 14 January 1999.<br />
Available at: http://www.w3.org/TR/1999/REC-xml-names-19990114</dd>

<dt><a id="ref_XMLSCHEMA" name="ref_XMLSCHEMA" class="normref">
[XMLSCHEMA]</a></dt>

<dd>" <cite><a href= 
"http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schema
Part 1: Structures</a></cite> ", W3C Recommendation, H. S. Thompson
<i lang="la" xml:lang="la">et al.</i> , <i><abbr title="editors">
eds.</abbr></i> , 2 May 2001.<br />
Available at:
http://www.w3.org/TR/2001/REC-xmlschema-1-20010502<br />
See also " <cite><a href= 
"http://www.w3.org/TR/2001/REC-xmlschema-2-20010502">XML Schema
Part 2: Datatypes</a></cite> ", available at:
http://www.w3.org/TR/2001/REC-xmlschema-2-20010502</dd>
</dl>

<h2><a  id="a_inforefs"><span class="diff-chg">
L.2.</span></a> Informative References</h2>

<dl>
<dt><a id="ref_HTML4" name="ref_HTML4" class="normref">
[HTML4]</a></dt>

<dd>" <cite><a href=
"http://www.w3.org/TR/1999/REC-html401-19991224">HTML 4.01
Specification</a></cite> ", W3C Recommendation, D. Raggett <i lang= 
"la" xml:lang="la">et al.</i> , <i><abbr title="editors">
eds.</abbr></i> , 24 December 1999.<br />
Available at: http://www.w3.org/TR/1999/REC-html401-19991224</dd>

<dt><a id="ref_XFRAMES" name="ref_XFRAMES" class="ref">
[XFRAMES]</a></dt>

<dd>" <cite><a href=
"http://www.w3.org/TR/2002/WD-xframes-20020806">XFrames</a></cite>
", W3C Working Draft, S. Pemberton, <i><abbr title="editor">
ed.</abbr></i> , 6 August 2002, <em>work in progress</em> .<br />
Available at: http://www.w3.org/TR/2002/WD-xframes-20020806</dd>

<dt><a id="ref_XLINK" name="ref_XLINK" class="ref">[XLINK]</a></dt>

<dd>" <cite><a href=
"http://www.w3.org/TR/2001/REC-xlink-20010627/">XML Linking
Language (XLink) Version 1.0</a></cite> ", W3C Recommendation, S.
DeRose <i lang="la" xml:lang="la">et al.</i> , <i><abbr title= 
"editors">eds.</abbr></i> , 27 June 2001.<br />
Available at: http://www.w3.org/TR/2001/REC-xlink-20010627/</dd>
</dl>

<h1><a  id="a_acks"><span class="diff-chg">
M.</span></a> Acknowledgements</h1>

<p>This appendix is <em>informative</em> .</p>

<p>This specification was prepared by the <acronym title="World 
Wide Web Consortium">W3C</acronym> <acronym title="HyperText Markup 
Language">HTML</acronym> Working Group. The participants at the
time of publication were:</p>

<p><em>This section will be updated at publication time.</em></p>
</body>
</html>

