trenni 1.7.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.travis.yml +7 -3
  4. data/Gemfile +4 -0
  5. data/README.md +72 -10
  6. data/Rakefile +85 -0
  7. data/benchmark/call_vs_yield.rb +51 -0
  8. data/benchmark/interpolation_vs_concat.rb +29 -0
  9. data/benchmark/io_vs_string.rb +14 -4
  10. data/entities.json +2233 -0
  11. data/ext/trenni/extconf.rb +13 -0
  12. data/ext/trenni/markup.c +1981 -0
  13. data/ext/trenni/markup.h +6 -0
  14. data/ext/trenni/markup.rl +223 -0
  15. data/ext/trenni/template.c +1113 -0
  16. data/ext/trenni/template.h +6 -0
  17. data/ext/trenni/template.rl +77 -0
  18. data/ext/trenni/trenni.c +64 -0
  19. data/ext/trenni/trenni.h +28 -0
  20. data/lib/trenni.rb +1 -0
  21. data/lib/trenni/buffer.rb +13 -2
  22. data/lib/trenni/builder.rb +54 -47
  23. data/lib/trenni/entities.rb +2154 -0
  24. data/lib/trenni/entities.trenni +34 -0
  25. data/lib/trenni/fallback/markup.rb +1648 -0
  26. data/lib/trenni/fallback/markup.rl +236 -0
  27. data/lib/trenni/fallback/template.rb +843 -0
  28. data/lib/trenni/fallback/template.rl +97 -0
  29. data/lib/trenni/markup.rb +76 -0
  30. data/lib/trenni/native.rb +28 -0
  31. data/lib/trenni/parse_delegate.rb +34 -0
  32. data/lib/trenni/{scanner.rb → parse_error.rb} +9 -54
  33. data/lib/trenni/parsers.rb +12 -0
  34. data/lib/trenni/substitutions.rb +45 -0
  35. data/lib/trenni/template.rb +52 -135
  36. data/lib/trenni/version.rb +1 -1
  37. data/parsers/trenni/entities.rl +11 -0
  38. data/parsers/trenni/markup.rl +43 -0
  39. data/parsers/trenni/template.rl +60 -0
  40. data/spec/trenni/builder_spec.rb +37 -62
  41. data/spec/trenni/corpus/large.rb +4605 -0
  42. data/spec/trenni/corpus/large.xhtml +726 -0
  43. data/spec/trenni/markup_parser_spec.rb +233 -0
  44. data/spec/trenni/markup_spec.rb +48 -0
  45. data/spec/trenni/parsers_performance_spec.rb +44 -0
  46. data/spec/trenni/template_error_spec.rb +36 -0
  47. data/spec/trenni/template_performance_spec.rb +102 -0
  48. data/spec/trenni/template_spec.rb +90 -64
  49. data/spec/trenni/template_spec/basic.trenni +1 -0
  50. data/spec/trenni/template_spec/capture.trenni +2 -2
  51. data/spec/trenni/template_spec/error.trenni +4 -0
  52. data/trenni.gemspec +9 -6
  53. metadata +57 -15
  54. data/lib/trenni/parser.rb +0 -153
  55. data/spec/trenni/parser_spec.rb +0 -144
@@ -0,0 +1,726 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <?xml-stylesheet href="xhtml.css" type="text/css" media="screen, aural, print" ?>
3
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" dir="ltr">
6
+ <head lang="en" xml:lang="en" dir="ltr" profile="profile">
7
+ <!-- base href="http://www.w3.org/People/mimasa/test/xhtml/media-types/test" /-->
8
+ <meta http-equiv="Content-Language" content="en" />
9
+ <title lang="en" xml:lang="en" dir="ltr">Sample XHTML 1.0 document</title>
10
+ <link rev="made" href="mailto:mimasa@w3.org" />
11
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
12
+ <meta http-equiv="Content-Style-Type" content="text/css" />
13
+ <link href="xhtml.css" type="text/css" rel="stylesheet" media="screen, aural, print" />
14
+ <meta lang="en" xml:lang="en" name="keywords" content="XHTML, sample" />
15
+ <style type="text/css" media="screen">
16
+ .title { color: red }
17
+ </style>
18
+ <meta scheme="Dublin Core" name="DC.CREATOR" content="ISHIKAWA, Masayasu" />
19
+ <style type="text/css" media="aural">
20
+ .title { volume: loud }
21
+ </style>
22
+ <link id="help.link" class="help.link" title="For more information, see HTML 4 Specification." lang="en" xml:lang="en" dir="ltr" charset="ISO-8859-1" href="http://www.w3.org/TR/html4" rel="Help" />
23
+ </head>
24
+ <body id="body" class="body" title="body" lang="en" xml:lang="en" dir="ltr">
25
+
26
+ <h1 id="title" class="title" title="document title" lang="en"
27
+ xml:lang="en" dir="ltr" style="color: maroon">Sample XHTML 1.0 document</h1>
28
+
29
+
30
+ <h2 id="ToC">Contents</h2>
31
+
32
+ <ul>
33
+ <li><a href="#grouping.heading">Grouping elements: <code>div</code> and <code>span</code></a></li>
34
+ <li><a href="#headings.heading">Headings: <code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>, <code>h6</code></a></li>
35
+ <li><a href="#address.heading">Address: <code>address</code></a></li>
36
+ <li><a href="#bidi.heading">Bidrectionality</a>
37
+ <ul>
38
+ <li><a href="#ltr.heading">Base directionality: left to right</a></li>
39
+ <li><a href="#rtl.heading">Base directionality: right to left</a></li>
40
+ <li><a href="#bdo.heading">Bidirectionality override: <code>bdo</code></a></li>
41
+ </ul>
42
+ </li>
43
+ <li><a href="#text.heading">Text</a>
44
+ <ul>
45
+ <li><a href="#phrase.heading">Phrase elements: <code>em</code>, <code>strong</code>, <code>dfn</code>, <code>code</code>, <code>samp</code>, <code>kbd</code>, <code>var</code>, <code>cite</code>, <code>abbr</code>, and <code>acronym</code></a></li>
46
+ <li><a href="#fonts.heading">Font style elements: <code>tt</code>, <code>i</code>, <code>b</code>, <code>big</code>, and <code>small</code></a></li>
47
+ <li><a href="#quotations.heading">Quotations: <code>blockquote</code> and <code>q</code></a></li>
48
+ <li><a href="#sub-sup.heading">Subscripts and superscripts: <code>sub</code> and <code>sup</code></a></li>
49
+ <li><a href="#p.heading">Paragraphs: <code>p</code></a></li>
50
+ <li><a href="#br.heading">Forcing a line break: <code>br</code></a></li>
51
+ <li><a href="#pre.heading">Preformatted text: <code>pre</code></a></li>
52
+ <li><a href="#ins-del.heading">Marking document changes: <code>ins</code> and <code>del</code></a></li>
53
+ <li><a href="#hr.heading">Rules: <code>hr</code></a></li>
54
+ </ul>
55
+ </li>
56
+ <li><a href="#lists.heading">Lists</a>
57
+ <ul>
58
+ <li><a href="#ul.heading">Unordered lists: <code>ul</code></a></li>
59
+ <li><a href="#ol.heading">Ordered lists: <code>ol</code></a></li>
60
+ <li><a href="#dl.heading">Definition lists: <code>dl</code></a></li>
61
+ </ul>
62
+ </li>
63
+ <li><a href="#tables.heading">Tables</a>
64
+ <ul>
65
+ <li><a href="#tables.grouping.heading">Using column and row groups: <code>colgroup</code>, <code>col</code>, <code>thead</code>, <code>tfoot</code>, and <code>tbody</code></a></li>
66
+ <li><a href="#tables.header.heading">Associating header information with data cells</a></li>
67
+ <li><a href="#tables.categorize.heading">Basic table, with categorizing cells</a></li>
68
+ </ul>
69
+ </li>
70
+ <li><a href="#a.heading">Anchors: <code>a</code></a></li>
71
+ <li><a href="#objects.heading">Objects, Images, and Applets</a>
72
+ <ul>
73
+ <li><a href="#img.heading">Including an image: <code>img</code></a></li>
74
+ <li><a href="#object.heading">Generic inclusion: <code>object</code></a></li>
75
+ <li><a href="#usemap.heading">Client-side image maps: <code>map</code> and <code>area</code></a></li>
76
+ <li><a href="#ismap.heading">Server-side image maps</a></li>
77
+ </ul>
78
+ </li>
79
+ <li><a href="#forms.heading">Forms</a></li>
80
+ <li><a href="#script.heading">Script</a></li>
81
+ </ul>
82
+
83
+
84
+ <div id="div.grouping" class="grouping" lang="en" xml:lang="en" dir="ltr">
85
+ <h2 id="grouping.heading" class="grouping" lang="en" xml:lang="en" dir="ltr">Grouping elements: <code>div</code> and <code>span</code></h2>
86
+
87
+ <div title="div contains Flow" lang="en" xml:lang="en" dir="ltr">
88
+ <div id="div" class="div" title="div" lang="en" xml:lang="en" dir="ltr"><code>div</code></div>
89
+ <span id="span" class="span" title="span" lang="en" xml:lang="en" dir="ltr"><code>span</code></span>
90
+ </div>
91
+ </div>
92
+
93
+ <div id="div.headings" class="headings" title="headings" lang="en" xml:lang="en">
94
+ <h2 id="headings.heading" class="headings" lang="en" xml:lang="en" dir="ltr">Headings: <code>h1</code>, <code>h2</code>, <code>h3</code>, <code>h4</code>, <code>h5</code>, <code>h6</code></h2>
95
+
96
+ <h1 id="h1" class="h1" title="h1" lang="en" xml:lang="en">h1</h1>
97
+ <h2 id="h2" class="h2" title="h2" lang="en" xml:lang="en">h2</h2>
98
+ <h3 id="h3" class="h4" title="h3" lang="en" xml:lang="en">h3</h3>
99
+ <h4 id="h4" class="h4" title="h4" lang="en" xml:lang="en">h4</h4>
100
+ <h5 id="h5" class="h5" title="h5" lang="en" xml:lang="en">h5</h5>
101
+ <h6 id="h6" class="h6" title="h6" lang="en" xml:lang="en">h6</h6>
102
+ </div>
103
+
104
+ <div id="div.address">
105
+ <h2 id="address.heading">Address: <code>address</code></h2>
106
+
107
+ <address id="address" class="address" title="address" lang="en" xml:lang="en" dir="ltr">
108
+ Address
109
+ </address>
110
+ </div>
111
+
112
+ <div id="div.bidi">
113
+ <h2 id="bidi.heading">Bidirectionality</h2>
114
+
115
+ <h3 id="ltr.heading">Base directionality: left to right</h3>
116
+
117
+ <p lang="en" xml:lang="en" dir="ltr">
118
+ Arabic text<span dir="ltr">:</span>
119
+ <span lang="ar" xml:lang="ar" dir="rtl">&#x063A;&#x0631;&#x0628;</span>
120
+ </p>
121
+
122
+ <h3 id="rtl.heading">Base directionality: right to left</h3>
123
+
124
+ <p lang="ar" xml:lang="ar" dir="rtl">
125
+ <span lang="en" xml:lang="en" dir="ltr">Arabic text</span><span dir="rtl">:</span>
126
+ &#x063A;&#x0631;&#x0628;
127
+ </p>
128
+
129
+ <h3 id="bdo.heading">Bidirectionality override: <code>bdo</code></h3>
130
+
131
+ <p lang="en" xml:lang="en" dir="ltr">left to right:
132
+ <bdo id="bdo" class="bdo" title="bdo" lang="en" xml:lang="en" dir="ltr">1234567890</bdo></p>
133
+
134
+ <p lang="en" xml:lang="en" dir="ltr">right to left:
135
+ <bdo dir="rtl">1234567890</bdo></p>
136
+ </div>
137
+
138
+ <div id="div.text">
139
+ <h2 id="text.heading">Text</h2>
140
+
141
+ <div id="div.phrase">
142
+ <h3 id="phrase.heading">Phrase elements: <code>em</code>, <code>strong</code>, <code>dfn</code>, <code>code</code>, <code>samp</code>, <code>kbd</code>, <code>var</code>, <code>cite</code>, <code>abbr</code>, and <code>acronym</code></h3>
143
+
144
+ <ul>
145
+ <li><em id="em" class="em" title="em" lang="en" xml:lang="en" dir="ltr">em</em></li>
146
+ <li><strong id="strong" class="strong" title="strong" lang="en" xml:lang="en" dir="ltr">strong</strong></li>
147
+ <li><dfn id="dfn" class="dfn" title="dfn" lang="en" xml:lang="en" dir="ltr">dfn</dfn></li>
148
+ <li><code id="code" class="code" title="code" lang="en" xml:lang="en" dir="ltr">code</code></li>
149
+ <li><samp id="samp" class="samp" title="samp" lang="en" xml:lang="en" dir="ltr">samp</samp></li>
150
+ <li><kbd id="kbd" class="kbd" title="kbd" lang="en" xml:lang="en" dir="ltr">kbd</kbd></li>
151
+ <li><var id="var" class="var" title="var" lang="en" xml:lang="en" dir="ltr">var</var></li>
152
+ <li><cite id="cite" class="cite" title="cite" lang="en" xml:lang="en" dir="ltr">cite</cite></li>
153
+ <li>abbr: <abbr id="abbr" class="abbr" title="abbreviation" lang="en" xml:lang="en" dir="ltr">abbr.</abbr></li>
154
+ <li>acronym: <acronym id="acronym" class="acronym" title="World Wide Web" lang="en" xml:lang="en" dir="ltr">WWW</acronym></li>
155
+ </ul>
156
+ </div>
157
+
158
+ <div id="div.fonts">
159
+ <h3 id="fonts.heading">Font style elements: <code>tt</code>, <code>i</code>, <code>b</code>, <code>big</code>, and <code>small</code></h3>
160
+
161
+ <ul>
162
+ <li><tt id="tt" class="tt" title="tt" lang="en" xml:lang="en" dir="ltr">tt</tt></li>
163
+ <li><i id="i" class="i" title="i" lang="en" xml:lang="en" dir="ltr">i</i></li>
164
+ <li><b id="b" class="b" title="b" lang="en" xml:lang="en" dir="ltr">b</b></li>
165
+ <li><big id="big" class="big" title="big" lang="en" xml:lang="en" dir="ltr">big</big></li>
166
+ <li><small id="small" class="small" title="small" lang="en" xml:lang="en" dir="ltr">small</small></li>
167
+ </ul>
168
+ </div>
169
+
170
+ <div id="div.quotations">
171
+ <h3 id="quotations.heading">Quotations:
172
+ <code>blockquote</code> and <code>q</code></h3>
173
+
174
+ <p>An example of quotation:</p>
175
+
176
+ <blockquote id="blockquote" class="blockquote" title="blockquote"
177
+ lang="en" xml:lang="en" dir="ltr"
178
+ cite="http://www.w3.org/TR/html4/struct/text.html#h-9.2.2">
179
+ <p>John said, <q id="q" class="q" title="q" lang="en-US" xml:lang="en-US"
180
+ dir="ltr" cite="http://www.w3.org/TR/html4/struct/text.html#h-9.2.2">I saw
181
+ Lucy at lunch, she told me <q lang="en-US">Mary wants you to get some
182
+ ice cream on your way home.</q> I think I will get some at Ben and
183
+ Jerry's, on Gloucester Road.</q></p>
184
+ </blockquote>
185
+ </div>
186
+
187
+ <div id="div.sub-sup">
188
+ <h3 id="sub-sup.heading">Subscripts and superscripts: <code>sub</code> and <code>sup</code></h3>
189
+
190
+ <p>
191
+ This is
192
+ <sub id="sub" class="sub" title="sub" lang="en" xml:lang="en" dir="ltr">subscript</sub>,
193
+ and this is
194
+ <sup id="sup" class="sup" title="sup" lang="en" xml:lang="en" dir="ltr">superscript</sup>.
195
+ </p>
196
+ </div>
197
+
198
+ <div id="div.p">
199
+ <h3 id="p.heading">Paragraphs: <code>p</code></h3>
200
+
201
+ <p id="p" class="p" title="p" lang="en" xml:lang="en" dir="ltr">
202
+ This is paragraph.</p>
203
+ </div>
204
+
205
+ <div id="div.br">
206
+ <h3 id="br.heading">Forcing a line break: <code>br</code></h3>
207
+
208
+ <p>Line<br id="br" class="br" title="br" />break</p>
209
+ </div>
210
+
211
+ <div id="div.pre">
212
+ <h3 id="pre.heading">Preformatted text: <code>pre</code></h3>
213
+
214
+ <pre id="pre" class="pre" title="pre" lang="en" xml:lang="en" dir="ltr">
215
+ This is
216
+ preformatted
217
+ text.
218
+ </pre>
219
+ </div>
220
+
221
+ <div id="div.ins-del">
222
+ <h3 id="ins-del.heading">Marking document changes:
223
+ <code>ins</code> and <code>del</code></h3>
224
+
225
+ <p><ins id="ins" class="ins" title="ins" lang="en" xml:lang="en" dir="ltr" cite="http://www.w3.org/TR/html4/struct/text.html#h-9.4" datetime="2000-08-06T14:33:15Z">ins</ins> and <del id="del" class="del" title="del" lang="en" xml:lang="en" dir="ltr" cite="http://www.w3.org/TR/html4/struct/text.html#h-9.4" datetime="2000-08-06T14:33:15Z">del</del></p>
226
+
227
+ <ins>
228
+ <p>Inserted paragraph</p>
229
+ </ins>
230
+
231
+ <del>
232
+ <p>Deleted paragraph</p>
233
+ </del>
234
+
235
+ <del datetime="2000-08-06T14:38:11Z">
236
+ <p><ins datetime="2000-08-06T14:37:44Z">Some words were inserted</ins>,
237
+ but later whole paragraph was deleted</p>
238
+ </del>
239
+ </div>
240
+
241
+ <div id="div.hr">
242
+ <h3 id="hr.heading">Rules: <code>hr</code></h3>
243
+
244
+ <hr id="hr" class="hr" title="hr" lang="en" xml:lang="en" dir="ltr" />
245
+ </div>
246
+ </div>
247
+
248
+ <div id="div.lists">
249
+ <h2 id="lists.heading">Lists</h2>
250
+
251
+ <div id="div.ul">
252
+ <h3 id="ul.heading">Unordered lists: <code>ul</code></h3>
253
+
254
+ <ul id="ul" class="ul" title="ul" lang="en" xml:lang="en" dir="ltr">
255
+ <li id="ul.li.inline" class="li" title="li" lang="en" xml:lang="en" dir="ltr">"Inline" list item</li>
256
+ <li id="ul.li.block" class="li" title="li" lang="en" xml:lang="en" dir="ltr"><p>"Block" list item</p></li>
257
+ </ul>
258
+ </div>
259
+
260
+ <div id="div.ol">
261
+ <h3 id="ol.heading">Ordered lists: <code>ol</code></h3>
262
+
263
+ <ol id="ol" class="ol" title="ol" lang="en" xml:lang="en" dir="ltr">
264
+ <li id="ol.li.inline" class="li" title="li" lang="en" xml:lang="en" dir="ltr">"Inline" list item</li>
265
+ <li id="ol.li.block" class="li" title="li" lang="en" xml:lang="en" dir="ltr"><p>"Block" list item</p></li>
266
+ </ol>
267
+ </div>
268
+
269
+ <div id="div.dl">
270
+ <h3 id="dl.heading">Definition lists: <code>dl</code></h3>
271
+
272
+ <dl id="dl" class="dl" title="dl" lang="en" xml:lang="en" dir="ltr">
273
+ <dt id="dt" class="dt" lang="en" xml:lang="en" dir="ltr">Definition term</dt>
274
+ <dd id="dd.inline" class="dd" title="dd" lang="en" xml:lang="en" dir="ltr">"Inline" definition description</dd>
275
+ <dd id="dd.block" class="dd" title="dd" lang="en" xml:lang="en" dir="ltr">"Block" definition description</dd>
276
+ </dl>
277
+ </div>
278
+ </div>
279
+
280
+ <h2 id="tables.heading">Tables</h2>
281
+
282
+ <h3 id="tables.grouping.heading">Using column and row groups: <code>colgroup</code>, <code>col</code>, <code>thead</code>, <code>tfoot</code>, and <code>tbody</code></h3>
283
+
284
+ <table id="table" class="table" title="table" lang="en" xml:lang="en" dir="ltr" summary="The first column contains inline content in th, and the second column contains block content in th. The third column contains inline content in td, and the forth column contains block content in td." border="1">
285
+ <caption id="caption" class="caption" title="caption" lang="en" xml:lang="en" dir="ltr">Caption</caption>
286
+ <colgroup id="colgroup" class="colgroup" title="colgroup" lang="en" xml:lang="en" dir="ltr" span="1" width="100">
287
+ <col id="col" class="col" title="col" lang="en" xml:lang="en" dir="ltr" span="2" width="150" />
288
+ <col span="2" />
289
+ </colgroup>
290
+ <thead id="thead" class="thead" title="thead" lang="en" xml:lang="en" dir="ltr" align="center" valign="top">
291
+ <tr id="thead.tr" class="thead.tr" title="thead.tr" lang="en" xml:lang="en" dir="ltr">
292
+ <th id="thead.th.inline" class="thead.th.inline" title="thead.th.inline" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1">Inline content in <code>th</code> in <code>thead</code></th>
293
+ <th id="thead.th.block" class="thead.th.block" title="thead.th.block" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1"><p>Block content in <code>th</code> in <code>thead</code></p></th>
294
+ <td id="thead.td.inline" class="thead.td.inline" title="thead.td.inline" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1">Inline content in <code>td</code> in <code>thead</code></td>
295
+ <td id="thead.td.block" class="thead.td.block" title="thead.td.block" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1"><p>Block content in <code>td</code> in <code>thead</code></p></td>
296
+ </tr>
297
+ </thead>
298
+ <tfoot id="tfoot" class="tfoot" title="tfoot" lang="en" xml:lang="en" dir="ltr" align="right" valign="bottom">
299
+ <tr id="tfoot.tr" class="tfoot.tr" title="tfoot.tr" lang="en" xml:lang="en" dir="ltr">
300
+ <th id="tfoot.th.inline" class="tfoot.th.inline" title="tfoot.th.inline" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1">Inline content in <code>th</code> in <code>tfoot</code></th>
301
+ <th id="tfoot.th.block" class="tfoot.th.block" title="tfoot.th.block" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1"><p>Block content in <code>th</code> in <code>tfoot</code></p></th>
302
+ <td id="tfoot.td.inline" class="tfoot.td.inline" title="tfoot.td.inline" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1">Inline content in <code>td</code> in <code>tfoot</code></td>
303
+ <td id="tfoot.td.block" class="tfoot.td.block" title="tfoot.td.block" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1"><p>Block content in <code>td</code> in <code>tfoot</code></p></td>
304
+ </tr>
305
+ </tfoot>
306
+ <tbody id="tbody" class="tbody" title="tbody" lang="en" xml:lang="en" dir="ltr" align="left" valign="middle">
307
+ <tr id="tbody.tr" class="tbody.tr" title="tbody.tr" lang="en" xml:lang="en" dir="ltr">
308
+ <th id="tbody.th.inline" class="tbody.th.inline" title="tbody.th.inline" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1">Inline content in <code>th</code> in <code>tbody</code></th>
309
+ <th id="tbody.th.block" class="tbody.th.block" title="tbody.th.block" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1"><p>Block content in <code>th</code> in <code>tbody</code></p></th>
310
+ <td id="tbody.td.inline" class="tbody.td.inline" title="tbody.td.inline" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1">Inline content in <code>td</code> in <code>tbody</code></td>
311
+ <td id="tbody.td.block" class="tbody.td.block" title="tbody.td.block" lang="en" xml:lang="en" dir="ltr" rowspan="1" colspan="1"><p>Block content in <code>td</code> in <code>tbody</code></p></td>
312
+ </tr>
313
+ </tbody>
314
+ </table>
315
+
316
+ <h3 id="tables.header.heading">Associating header information with data cells</h3>
317
+
318
+ <table summary="This table contains header information." border="1">
319
+ <col span="1" width="150" />
320
+ <col span="3" width="100" />
321
+ <thead>
322
+ <tr>
323
+ <th id="thead.th1" abbr="th" scope="col" rowspan="1" colspan="1">thead.th1</th>
324
+ <th id="thead.th2" abbr="th" scope="col" rowspan="1" colspan="1">thead.th2</th>
325
+ <th id="thead.th3" abbr="th" scope="col" rowspan="1" colspan="1">thead.th3</th>
326
+ <th id="thead.th4" abbr="th" scope="col" rowspan="1" colspan="1">thead.th4</th>
327
+ </tr>
328
+ </thead>
329
+ <tbody>
330
+ <tr>
331
+ <th id="tbody.tr1.th1" abbr="th" scope="row" rowspan="1" colspan="1">tbody.tr1.th1</th>
332
+ <td id="tbody.tr1.td1" headers="thead.th2 tbody.tr1.th1" rowspan="1" colspan="1">tbody.tr1.td1</td>
333
+ <td id="tbody.tr1.td2" headers="thead.th3 tbody.tr1.th1" rowspan="1" colspan="1">tbody.tr1.td2</td>
334
+ <td id="tbody.tr1.td3" headers="thead.th4 tbody.tr1.th1" rowspan="1" colspan="1">tbody.tr1.td3</td>
335
+ </tr>
336
+ <tr>
337
+ <th id="tbody.tr2.th1" abbr="th" scope="row" rowspan="1" colspan="1">tbody.tr2.th1</th>
338
+ <td id="tbody.tr2.td1" headers="thead.th2 tbody.tr2.th1" rowspan="1" colspan="1">tbody.tr2.td1</td>
339
+ <td id="tbody.tr2.td2" headers="thead.th3 tbody.tr2.th1" rowspan="1" colspan="1">tbody.tr2.td2</td>
340
+ <td id="tbody.tr2.td3" headers="thead.th4 tbody.tr2.th1" rowspan="1" colspan="1">tbody.tr2.td3</td>
341
+ </tr>
342
+ </tbody>
343
+ </table>
344
+
345
+ <h3 id="tables.categorize.heading">Basic table, with categorizing cells</h3>
346
+
347
+ <table summary="This table summarizes travel expenses incurred during August trips to San Jose and Seattle" border="1" cellspacing="2" cellpadding="5">
348
+ <caption>Travel Expense Report</caption>
349
+ <colgroup align="char" char=".">
350
+ </colgroup>
351
+ <tr>
352
+ <th></th>
353
+ <th id="a2" axis="expenses">Meals</th>
354
+ <th id="a3" axis="expenses">Hotels</th>
355
+ <th id="a4" axis="expenses">Transport</th>
356
+ <td>subtotals</td>
357
+ </tr>
358
+ <tr>
359
+ <th id="a6" axis="location">San Jose</th>
360
+ <th></th>
361
+ <th></th>
362
+ <th></th>
363
+ <td></td>
364
+ </tr>
365
+ <tr align="char" char=".">
366
+ <td id="a7" axis="date">25-Aug-97</td>
367
+ <td headers="a6 a7 a2" align="char" char=".">37.74</td>
368
+ <td headers="a6 a7 a3" align="char" char=".">112.00</td>
369
+ <td headers="a6 a7 a4" align="char" char=".">45.00</td>
370
+ <td></td>
371
+ </tr>
372
+ <tr align="char" char=".">
373
+ <td id="a8" axis="date">26-Aug-97</td>
374
+ <td headers="a6 a8 a2" align="char" char=".">27.28</td>
375
+ <td headers="a6 a8 a3" align="char" char=".">112.00</td>
376
+ <td headers="a6 a8 a4" align="char" char=".">45.00</td>
377
+ <td></td>
378
+ </tr>
379
+ <tr align="char" char=".">
380
+ <td>subtotals</td>
381
+ <td align="char" char=".">65.02</td>
382
+ <td align="char" char=".">224.00</td>
383
+ <td align="char" char=".">90.00</td>
384
+ <td align="char" char=".">379.02</td>
385
+ </tr>
386
+ <tr>
387
+ <th id="a10" axis="location">Seattle</th>
388
+ <th></th>
389
+ <th></th>
390
+ <th></th>
391
+ <td></td>
392
+ </tr>
393
+ <tr align="char" char=".">
394
+ <td id="a11" axis="date">27-Aug-97</td>
395
+ <td headers="a10 a11 a2" align="char" char=".">96.25</td>
396
+ <td headers="a10 a11 a3" align="char" char=".">109.00</td>
397
+ <td headers="a10 a11 a4" align="char" char=".">36.00</td>
398
+ <td></td>
399
+ </tr>
400
+ <tr align="char" char=".">
401
+ <td id="a12" axis="date">28-Aug-97</td>
402
+ <td headers="a10 a12 a2" align="char" char=".">35.00</td>
403
+ <td headers="a10 a12 a3" align="char" char=".">109.00</td>
404
+ <td headers="a10 a12 a4" align="char" char=".">36.00</td>
405
+ <td></td>
406
+ </tr>
407
+ <tr align="char" char=".">
408
+ <td>subtotals</td>
409
+ <td align="char" char=".">131.25</td>
410
+ <td align="char" char=".">218.00</td>
411
+ <td align="char" char=".">72.00</td>
412
+ <td align="char" char=".">421.25</td>
413
+ </tr>
414
+ <tr>
415
+ <th>Totals</th>
416
+ <td align="char" char=".">196.27</td>
417
+ <td align="char" char=".">442.00</td>
418
+ <td align="char" char=".">162.00</td>
419
+ <td align="char" char=".">800.27</td>
420
+ </tr>
421
+ </table>
422
+
423
+ <h2 id="a.heading">Anchors: <code>a</code></h2>
424
+
425
+ <p>For more information about XHTML 1.0, please consult the
426
+ <a id="a" class="a" title="a" lang="en" xml:lang="en" dir="ltr" name="a" href="http://www.w3.org/TR/xhtml1" hreflang="en" accesskey="X" tabindex="1">XHTML 1.0 Specification</a>.</p>
427
+
428
+ <p>For more information about semantics of the elements and their
429
+ attributes in XHTML, please consult the
430
+ <a id="a.2" lang="en" xml:lang="en" dir="ltr" charset="ISO-8859-1" type="text/html" name="a.2" href="http://www.w3.org/TR/html4" hreflang="en" accesskey="H" tabindex="4">HTML 4 Specification</a>.</p>
431
+
432
+ <p>Links to the <a href="#tables.heading" rev="Prev" accesskey="P" tabindex="2">previous section</a> and the <a href="#objects.heading" rel="Next" accesskey="N" tabindex="3">next section</a>.</p>
433
+
434
+ <p>
435
+ Body elements:
436
+ <a href="#div">div</a>, <a href="#span">span</a>,
437
+ <a href="#h1">h1</a>, <a href="#h2">h2</a>, <a href="#h3">h3</a>,
438
+ <a href="#h4">h4</a>, <a href="#h5">h5</a>, <a href="#h6">h6</a>,
439
+ <a href="#address">address</a>, <a href="#bdo">bdo</a>,
440
+ <a href="#em">em</a>, <a href="#strong">strong</a>, <a href="#dfn">dfn</a>,
441
+ <a href="#code">code</a>, <a href="#samp">samp</a>, <a href="#kbd">kbd</a>,
442
+ <a href="#var">var</a>, <a href="#cite">cite</a>, <a href="#abbr">abbr</a>,
443
+ <a href="#acronym">acronym</a>, <a href="#tt">tt</a>, <a href="#i">i</a>,
444
+ <a href="#b">b</a>, <a href="#big">big</a>, <a href="#small">small</a>,
445
+ <a href="#blockquote">blockquote</a>, <a href="#q">q</a>,
446
+ <a href="#sub">sub</a>, <a href="#sup">sup</a>, <a href="#p">p</a>,
447
+ <a href="#br">br</a>, <a href="#pre">pre</a>,
448
+ <a href="#ins">ins</a>, <a href="#del">del</a>, <a href="#hr">hr</a>,
449
+ <a href="#ul">ul</a>, <a href="#ol">ol</a>, <a href="#ul.li.inline">li</a>,
450
+ <a href="#dl">dl</a>, <a href="#dt">dt</a>, <a href="#dd.inline">dd</a>,
451
+ <a href="#table">table</a>, <a href="#caption">caption</a>,
452
+ <a href="#colgroup">colgroup</a>, <a href="#col">col</a>,
453
+ <a href="#thead">thead</a>, <a href="#tfoot">tfoot</a>,
454
+ <a href="#tbody">tbody</a>, <a href="#thead.tr">tr</a>,
455
+ <a href="#thead.th.inline">th</a>, <a href="#thead.td.inline">td</a>,
456
+ <a href="#a">a</a>, <a href="#img">img</a>, <a href="#object">object</a>,
457
+ <a href="#map">map</a>, <a href="#area">area</a>
458
+ </p>
459
+
460
+ <div id="div.objects">
461
+ <h2 id="objects.heading">Objects, Images, and Applets</h2>
462
+
463
+ <div id="div.img">
464
+ <h3 id="img.heading">Including an image: <code>img</code></h3>
465
+
466
+ <p><img id="img" class="img" title="img" lang="en" xml:lang="en" dir="ltr" src="dot.png" alt="image" longdesc="#img.heading" height="40" width="40" /></p>
467
+ </div>
468
+
469
+ <div id="div.object">
470
+ <h3 id="object.heading">Generic inclusion: <code>object</code></h3>
471
+
472
+ <p><object id="object" class="object" title="object" lang="en" xml:lang="en" dir="ltr" data="dot.png" type="image/png" height="40" width="40" tabindex="8">
473
+ <param name="width" value="40" valuetype="data" />
474
+ <param name="height" value="40" valuetype="data" />
475
+ <object data="dot.jpg" type="image/jpeg" height="40" width="40">
476
+ <param name="width" value="40" valuetype="data" />
477
+ <param name="height" value="40" valuetype="data" />
478
+ <img src="dot.png" alt="Image" height="40" width="40" />
479
+ </object></object></p>
480
+ </div>
481
+
482
+ <div id="div.usemap">
483
+ <h3 id="usemap.heading">Client-side image maps: <code>map</code> and <code>area</code></h3>
484
+
485
+ <p><img src="dot.png" alt="image" height="40" width="40" usemap="#map" /></p>
486
+
487
+ <p><img src="dot.png" alt="image" height="40" width="40" usemap="#map2" /></p>
488
+
489
+ <div>
490
+ <map lang="en" xml:lang="en" dir="ltr" id="map" class="map" title="map" name="map">
491
+ <area id="area" class="area" title="area" lang="en" xml:lang="en" dir="ltr" shape="rect" coords="0,0,19,19" href="#grouping.heading" alt="Grouping elements: div and span" tabindex="5" />
492
+ <area shape="rect" coords="20,0,39,20" href="#headings.heading" alt="Headings: h1, h2, h3, h4, h5, h6" tabindex="6" />
493
+ <area shape="rect" coords="0,20,20,39" href="#address.heading" alt="Address: address" tabindex="7" />
494
+ <area shape="rect" coords="20,20,39,39" nohref="nohref" alt="" />
495
+ </map>
496
+ </div>
497
+
498
+ <div>
499
+ <map lang="en" xml:lang="en" dir="ltr" id="map2" class="map" title="map" name="map2">
500
+ <ul>
501
+ <li><a shape="rect" coords="0,0,19,19" href="#grouping.heading">Grouping elements: div and span</a></li>
502
+ <li><a shape="rect" coords="20,0,39,20" href="#headings.heading">Headings: h1, h2, h3, h4, h5, h6</a></li>
503
+ <li><a shape="rect" coords="0,20,20,39" href="#address.heading">Address: address</a></li>
504
+ </ul>
505
+ </map>
506
+ </div>
507
+ </div>
508
+
509
+ <div id="div.ismap">
510
+ <h3 id="ismap.heading">Server-side image maps</h3>
511
+
512
+ <p><a href="uri"><img src="dot.png" alt="Server-side image maps" longdesc="#ismap.heading" height="40" width="40" ismap="ismap" /></a></p>
513
+ </div>
514
+ </div>
515
+
516
+ <h2 id="forms.heading">Forms</h2>
517
+
518
+ <form id="form" class="form" title="form" lang="en" xml:lang="en" dir="ltr" action="uri" method="post" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8, UTF-16, UTF-16BE, UTF-16LE">
519
+ <fieldset id="fieldset" class="fieldset" title="Fieldset" lang="en" xml:lang="en" dir="ltr">
520
+ <legend id="legend" class="legend" title="Legend" lang="en" xml:lang="en" dir="ltr" accesskey="L">Input fields</legend>
521
+
522
+ <fieldset>
523
+ <legend>Text input</legend>
524
+
525
+ <p>
526
+ <label id="label" class="label" title="Label" lang="en" xml:lang="en" dir="ltr" for="input.text">Text input field:</label>
527
+ <input id="input.text" class="input" title="Text input" lang="en" xml:lang="en" dir="ltr" type="text" name="text" value="default text" size="40" tabindex="8" accesskey="T" />
528
+ </p>
529
+
530
+ <p>
531
+ <label for="input.text.disabled">Disabled text input field:</label>
532
+ <input id="input.text.disabled" class="input" title="Disabled text input" lang="en" xml:lang="en" dir="ltr" type="text" name="text.disabled" value="default text" disabled="disabled" size="40" />
533
+ </p>
534
+
535
+ <p>
536
+ <label for="input.text.readonly">Readonly text input field:</label>
537
+ <input id="input.text.readonly" class="input" title="Readonly text input" lang="en" xml:lang="en" dir="ltr" type="text" name="text.readonly" value="readonly text" readonly="readonly" size="15" />
538
+ </p>
539
+
540
+ </fieldset>
541
+
542
+ <fieldset>
543
+ <legend>Password input</legend>
544
+
545
+ <p>
546
+ <label for="input.password">Password input field:</label>
547
+ <input id="input.password" name="input.password" title="Password input" type="password" size="6" maxlength="6" />
548
+ </p>
549
+
550
+ <p>
551
+ <label for="input.password.disabled">Disabled password input field:</label>
552
+ <input id="input.password.disabled" name="input.password.disabled" title="Disabled password input" type="password" disabled="disabled" size="6" maxlength="6" />
553
+ </p>
554
+
555
+ <p>
556
+ <label for="input.password.readonly">Readonly password input field:</label>
557
+ <input id="input.password.readonly" name="input.password.readonly" title="Readonly password input" type="password" value="123456" readonly="readonly" size="6" maxlength="6" />
558
+ </p>
559
+ </fieldset>
560
+
561
+ <fieldset>
562
+ <legend>Checkboxes</legend>
563
+ <p>
564
+ <label for="input.checkbox1">1:</label>
565
+ <input id="input.checkbox1" title="Checkbox" type="checkbox" name="checkbox" value="checkbox1" checked="checked" />
566
+ <label for="input.checkbox2">2:</label>
567
+ <input id="input.checkbox2" title="Checkbox" type="checkbox" name="checkbox" value="checkbox2" />
568
+ <label for="input.checkbox3">3:</label>
569
+ <input id="input.checkbox3" title="Checkbox" type="checkbox" name="checkbox" value="checkbox3" />
570
+ <label for="input.checkbox4">4:</label>
571
+ <input id="input.checkbox4" title="Checkbox" type="checkbox" name="checkbox" value="checkbox4" />
572
+ <label for="input.checkbox5">5:</label>
573
+ <input id="input.checkbox5" title="Checkbox" type="checkbox" name="checkbox" value="checkbox5" />
574
+ <label for="input.checkbox.disabled">disabled:</label>
575
+ <input id="input.checkbox.disabled" title="Disabled checkbox" type="checkbox" name="checkbox" value="disabled_checkbox" disabled="disabled" />
576
+ </p>
577
+ </fieldset>
578
+
579
+ <fieldset>
580
+ <legend>Radio buttons</legend>
581
+ <p>
582
+ <label for="input.radio1">a.</label>
583
+ <input id="input.radio1" title="Radio button" type="radio" name="radio" value="radio1" />
584
+ <label for="input.radio2">b.</label>
585
+ <input id="input.radio2" title="Radio button" type="radio" name="radio" value="radio2" />
586
+ <label for="input.radio3">c.</label>
587
+ <input id="input.radio3" title="Radio button" type="radio" name="radio" value="radio3" checked="checked" />
588
+ <label for="input.radio4">d.</label>
589
+ <input id="input.radio4" title="Radio button" type="radio" name="radio" value="radio4" />
590
+ <label for="input.radio5">e.</label>
591
+ <input id="input.radio5" title="Radio button" type="radio" name="radio" value="radio5" />
592
+ <label for="input.radio.disabled">disabled.</label>
593
+ <input id="input.radio.disabled" title="Disabled radio button" type="radio" name="radio" value="disabled_radio" disabled="disabled" />
594
+ </p>
595
+ </fieldset>
596
+
597
+ <fieldset>
598
+ <legend>File upload</legend>
599
+ <p><label for="input.file">File upload:</label>
600
+ <input id="input.file" name="input.file" title="File upload" type="file" value="filename.ext" accept="text/plain,text/html,text/xml" /></p>
601
+
602
+ <p><label for="input.file.disabled">Disabled file upload:</label>
603
+ <input id="input.file.disabled" name="input.file.disabled" title="Disabled file upload" type="file" value="filename.ext" disabled="disabled" /></p>
604
+ </fieldset>
605
+
606
+ <fieldset>
607
+ <legend>Image submit button</legend>
608
+ <p><label for="input.image">Image submit button:</label>
609
+ <input id="input.image" name="input.image" style="width: 20px; height: 20px" title="Image submit button" type="image" src="dot.png" alt="Submit" /></p>
610
+
611
+ <p><label for="input.image.disabled">Disabled image submit button:</label>
612
+ <input id="input.image.disabled" name="input.image.disabled" style="width: 20px; height: 20px" title="Disabled image submit button" type="image" disabled="disabled" src="dot.png" alt="Submit" /></p>
613
+ </fieldset>
614
+
615
+
616
+ <fieldset>
617
+ <legend>Submit/Reset</legend>
618
+ <p><input id="input.submit" title="Submit button" type="submit" value="Submit" />
619
+ <input id="input.reset" title="Reset button" type="reset" value="Reset" />
620
+ <input id="input.buttom" title="Input button" type="button" value="Button" /></p>
621
+
622
+ <p><input id="input.submit.disabled" title="Disabled submit button" type="submit" value="Submit" disabled="disabled" />
623
+ <input id="input.reset.disabled" title="Disabled reset button" type="reset" value="Reset" disabled="disabled" />
624
+ <input id="input.buttom.disabled" title="Disabled input button" type="button" value="Button" disabled="disabled" /></p>
625
+ </fieldset>
626
+
627
+ <p><input id="input.hidden" name="input.hidden" title="Hidden input control" type="hidden" value="hidden_value" /></p>
628
+ </fieldset>
629
+
630
+ <fieldset>
631
+ <legend>Button</legend>
632
+ <button id="button.submit" lang="en" xml:lang="en" dir="ltr" name="submit" value="submit" type="submit" tabindex="9" accesskey="B">
633
+ Submit button using<br /> the <code>button</code> element</button>
634
+ <button id="button.reset" name="reset" value="reset" type="reset">
635
+ Reset button using<br /> the <code>button</code> element</button>
636
+ <button id="button.button" name="button" value="button" type="button">
637
+ A button using the<br /> <code>button</code> element</button>
638
+ <button id="button.disabled" name="button.disabled" value="button" type="button" disabled="disabled">
639
+ A disabled button using<br /> the <code>button</code> element</button>
640
+
641
+ </fieldset>
642
+
643
+ <fieldset>
644
+ <legend>Option selector</legend>
645
+
646
+ <p><label for="select">Single selection:</label>
647
+ <select id="select" class="select" title="Select" lang="en" xml:lang="en" dir="ltr" name="select">
648
+ <optgroup id="optgroup" class="optgroup" title="Optgroup" lang="en" xml:lang="en" dir="ltr" label="optgroup">
649
+ <option id="option" class="option" title="Option" lang="en" xml:lang="en" dir="ltr" value="Opt1">Option 1</option>
650
+ <option value="Opt2">Option 2</option>
651
+ </optgroup>
652
+ <optgroup disabled="disabled" label="disabled_optgroup">
653
+ <option value="Opt3">Option 3 (disabled)</option>
654
+ <option value="Opt4">Option 4 (disabled)</option>
655
+ </optgroup>
656
+ <option value="Opt5">Option 5</option>
657
+ <option selected="selected" value="Opt6">Option 6 (default)</option>
658
+ <option disabled="disabled" value="Opt7">Option 7 (disabled)</option>
659
+ </select>
660
+ </p>
661
+
662
+ <p><label for="select.multiple">Multiple selections:</label>
663
+ <select id="select.multiple" class="select" title="Multiple select" lang="en" xml:lang="en" dir="ltr" name="select.multiple" size="4" multiple="multiple">
664
+ <optgroup id="optgroup.multiple" class="optgroup" title="Optgroup" lang="en" xml:lang="en" dir="ltr" label="optgroup">
665
+ <option id="option.multiple" class="option" title="Option" lang="en" xml:lang="en" dir="ltr" value="Opt1">Option 1</option>
666
+ <option value="Opt2">Option 2</option>
667
+ </optgroup>
668
+ <optgroup disabled="disabled" label="disabled_optgroup">
669
+ <option value="Opt3">Option 3 (disabled)</option>
670
+ <option value="Opt4">Option 4 (disabled)</option>
671
+ </optgroup>
672
+ <option value="Opt5">Option 5</option>
673
+ <option selected="selected" value="Opt6">Option 6 (default)</option>
674
+ <option disabled="disabled" value="Opt7">Option 7 (disabled)</option>
675
+ </select>
676
+ </p>
677
+
678
+ <p><label for="select.disabled">Disabled selection:</label>
679
+ <select id="select.disabled" class="select" title="Select" lang="en" xml:lang="en" dir="ltr" name="select.disabled" disabled="disabled">
680
+ <optgroup id="optgroup.disabled" class="optgroup" title="Optgroup" lang="en" xml:lang="en" dir="ltr" label="optgroup">
681
+ <option id="option.disabled" class="option" title="Option" lang="en" xml:lang="en" dir="ltr" value="Opt1">Option 1</option>
682
+ <option value="Opt2">Option 2</option>
683
+ </optgroup>
684
+ <optgroup disabled="disabled" label="disabled_optgroup">
685
+ <option value="Opt3">Option 3 (disabled)</option>
686
+ <option value="Opt4">Option 4 (disabled)</option>
687
+ </optgroup>
688
+ <option value="Opt5">Option 5</option>
689
+ <option selected="selected" value="Opt6">Option 6 (default)</option>
690
+ <option disabled="disabled" value="Opt7">Option 7 (disabled)</option>
691
+ </select>
692
+ </p>
693
+ </fieldset>
694
+
695
+ <fieldset>
696
+ <legend>Textarea</legend>
697
+ <p><label for="textarea">Textarea:</label>
698
+ <textarea id="textarea" class="textarea" title="Textarea" lang="en" xml:lang="en" dir="ltr" name="textarea" rows="5" cols="20" tabindex="10" accesskey="X">default text</textarea></p>
699
+ <p><label for="textarea.disabled">Disabled textarea:</label>
700
+ <textarea id="textarea.disabled" class="textarea" title="Textarea" lang="en" xml:lang="en" dir="ltr" name="textarea.disabled" rows="5" cols="20" disabled="disabled">default text</textarea></p>
701
+ <p><label for="textarea.readonly">Readonly textarea:</label>
702
+ <textarea id="textarea.readonly" class="textarea" title="Textarea" lang="en" xml:lang="en" dir="ltr" name="textarea.readonly" rows="5" cols="20" readonly="readonly">default text</textarea></p>
703
+ </fieldset>
704
+
705
+ </form>
706
+
707
+ <h2 id="script.heading">Script</h2>
708
+
709
+ <script type="text/javascript">
710
+ //<![CDATA[
711
+ document.write("<p>Text generated by JavaScript.<\/p>")
712
+ //]]>
713
+ </script>
714
+
715
+ <noscript id="noscript" class="noscript" title="Noscript" lang="en" xml:lang="en" dir="ltr">
716
+ <p>Alternate text in <code>noscript</code>.</p>
717
+ </noscript>
718
+
719
+ <hr />
720
+
721
+ <address title="author" lang="en" xml:lang="en" dir="ltr">
722
+ <a href="mailto:mimasa@w3.org">Masayasu Ishikawa</a>
723
+ </address>
724
+
725
+ </body>
726
+ </html>