milkfarm-onix 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/CHANGELOG +136 -0
  2. data/README.markdown +40 -0
  3. data/TODO +14 -0
  4. data/dtd/2.1r3/iso-amsa.ent +173 -0
  5. data/dtd/2.1r3/iso-amsb.ent +146 -0
  6. data/dtd/2.1r3/iso-amsc.ent +49 -0
  7. data/dtd/2.1r3/iso-amsn.ent +117 -0
  8. data/dtd/2.1r3/iso-amso.ent +77 -0
  9. data/dtd/2.1r3/iso-amsr.ent +205 -0
  10. data/dtd/2.1r3/iso-box.ent +67 -0
  11. data/dtd/2.1r3/iso-cyr1.ent +94 -0
  12. data/dtd/2.1r3/iso-cyr2.ent +53 -0
  13. data/dtd/2.1r3/iso-dia.ent +41 -0
  14. data/dtd/2.1r3/iso-grk3.ent +70 -0
  15. data/dtd/2.1r3/iso-lat1.ent +89 -0
  16. data/dtd/2.1r3/iso-lat2.ent +148 -0
  17. data/dtd/2.1r3/iso-mfrk.ent +79 -0
  18. data/dtd/2.1r3/iso-mopf.ent +53 -0
  19. data/dtd/2.1r3/iso-mscr.ent +79 -0
  20. data/dtd/2.1r3/iso-num.ent +103 -0
  21. data/dtd/2.1r3/iso-num.old.ent +103 -0
  22. data/dtd/2.1r3/iso-pub.ent +110 -0
  23. data/dtd/2.1r3/iso-tech.ent +183 -0
  24. data/dtd/2.1r3/onix-international.dtd +1012 -0
  25. data/dtd/2.1r3/onix-xhtml.elt +672 -0
  26. data/dtd/2.1r3/reference.elt +4758 -0
  27. data/dtd/2.1r3/xhtml-special.ent +79 -0
  28. data/dtd/2.1r3/xhtml-symbol.ent +242 -0
  29. data/lib/onix/addressee_identifier.rb +12 -0
  30. data/lib/onix/apa_product.rb +731 -0
  31. data/lib/onix/audience_range.rb +26 -0
  32. data/lib/onix/common.rb +26 -0
  33. data/lib/onix/contributor.rb +27 -0
  34. data/lib/onix/header.rb +46 -0
  35. data/lib/onix/imprint.rb +15 -0
  36. data/lib/onix/language.rb +14 -0
  37. data/lib/onix/lists/audience_code.rb +17 -0
  38. data/lib/onix/lists/country_code.rb +257 -0
  39. data/lib/onix/lists/language_code.rb +498 -0
  40. data/lib/onix/lists/language_role.rb +18 -0
  41. data/lib/onix/lists/notification_type.rb +19 -0
  42. data/lib/onix/lists/product_availability.rb +32 -0
  43. data/lib/onix/lists/product_form.rb +99 -0
  44. data/lib/onix/lists/product_form_detail.rb +157 -0
  45. data/lib/onix/market_representation.rb +19 -0
  46. data/lib/onix/measure.rb +14 -0
  47. data/lib/onix/media_file.rb +16 -0
  48. data/lib/onix/normaliser.rb +187 -0
  49. data/lib/onix/other_text.rb +17 -0
  50. data/lib/onix/price.rb +21 -0
  51. data/lib/onix/product.rb +73 -0
  52. data/lib/onix/product_identifier.rb +13 -0
  53. data/lib/onix/publisher.rb +16 -0
  54. data/lib/onix/reader.rb +187 -0
  55. data/lib/onix/sales_restriction.rb +12 -0
  56. data/lib/onix/sender_identifier.rb +14 -0
  57. data/lib/onix/series.rb +57 -0
  58. data/lib/onix/series_identifier.rb +13 -0
  59. data/lib/onix/simple_product.rb +47 -0
  60. data/lib/onix/sl_product.rb +131 -0
  61. data/lib/onix/stock.rb +15 -0
  62. data/lib/onix/subject.rb +16 -0
  63. data/lib/onix/supply_detail.rb +32 -0
  64. data/lib/onix/title.rb +17 -0
  65. data/lib/onix/website.rb +14 -0
  66. data/lib/onix/writer.rb +86 -0
  67. data/lib/onix.rb +114 -0
  68. data/spec/apa_product_spec.rb +59 -0
  69. data/spec/audience_range_spec.rb +46 -0
  70. data/spec/contributor_spec.rb +42 -0
  71. data/spec/header_spec.rb +123 -0
  72. data/spec/imprint_spec.rb +39 -0
  73. data/spec/language_spec.rb +42 -0
  74. data/spec/market_representation_spec.rb +41 -0
  75. data/spec/measure_spec.rb +43 -0
  76. data/spec/media_file_spec.rb +42 -0
  77. data/spec/normaliser_spec.rb +125 -0
  78. data/spec/other_text_spec.rb +40 -0
  79. data/spec/price_spec.rb +40 -0
  80. data/spec/product_identifier_spec.rb +40 -0
  81. data/spec/product_spec.rb +96 -0
  82. data/spec/publisher_spec.rb +38 -0
  83. data/spec/reader_spec.rb +131 -0
  84. data/spec/sales_restriction_spec.rb +35 -0
  85. data/spec/sender_identifier.rb +40 -0
  86. data/spec/series_identifier_spec.rb +38 -0
  87. data/spec/series_spec.rb +34 -0
  88. data/spec/sl_product_spec.rb +48 -0
  89. data/spec/stock_spec.rb +44 -0
  90. data/spec/subject_spec.rb +40 -0
  91. data/spec/supply_detail_spec.rb +53 -0
  92. data/spec/title_spec.rb +43 -0
  93. data/spec/website_spec.rb +41 -0
  94. data/spec/writer_spec.rb +81 -0
  95. data/support/entities.txt +1499 -0
  96. data/support/extract.rb +25 -0
  97. data/support/switch-onix-2.1-short-to-reference.xsl +23 -0
  98. data/support/switch-onix-tagnames-1.1.xsl +25 -0
  99. data/support/switch-onix-tagnames-2.0.xsl +37 -0
  100. metadata +209 -0
@@ -0,0 +1,672 @@
1
+ <!--
2
+ **************************************************
3
+ * *
4
+ * ONIX INTERNATIONAL *
5
+ * *
6
+ * XML DTD *
7
+ * XHTML MODULE *
8
+ * *
9
+ * Original filename: ONIX-INTERNATIONAL.ELT *
10
+ * *
11
+ * Original author: Francis Cave *
12
+ * *
13
+ * Version 2.1 *
14
+ * Revision 00 *
15
+ * Status: DRAFT *
16
+ * Release date: 2003-02-21 *
17
+ * *
18
+ * (c) 2000-2003 EDItEUR *
19
+ * http://www.editeur.org/ *
20
+ * *
21
+ **************************************************
22
+
23
+ THIS MODULE CONTAINS A SUBSET OF THE W3C XHTML 1.0 DTD. IT ONLY INCLUDES
24
+ ELEMENTS AND ASSOCIATED ATTRIBUTES THAT ARE VALID INSIDE THE XHTML ELEMENT
25
+ TYPE 'body', AND EXCLUDES ELEMENT TYPES FOR XHTML FORMS AND SCRIPTS AND
26
+ ATTRIBUTES THAT DEFINE BEHAVIOUR. SOME PARAMETER ENTITIES HAVE BEEN RENAMED
27
+ TO AVOID CLASHES WITH ONIX PARAMETER ENTITY NAMES.
28
+
29
+ -->
30
+
31
+ <!--================ Character mnemonic entities =========================-->
32
+
33
+ <!--
34
+ THE FOLLOWING ENTITY SET IS NOT INCLUDED BECAUSE ITS ENTIRE CONTENTS
35
+ DUPLICATES SPECIAL CHARACTER ENTITIES IN OTHER SETS.
36
+ <!ENTITY % HTMLlat1 PUBLIC
37
+ "-//W3C//ENTITIES Latin 1 for XHTML//EN"
38
+ "xhtml-lat1.ent">
39
+ %HTMLlat1;
40
+ -->
41
+
42
+ <!ENTITY % HTMLsymbol PUBLIC
43
+ "-//W3C//ENTITIES Symbols for XHTML//EN"
44
+ "xhtml-symbol.ent">
45
+ %HTMLsymbol;
46
+
47
+ <!ENTITY % HTMLspecial PUBLIC
48
+ "-//W3C//ENTITIES Special for XHTML//EN"
49
+ "xhtml-special.ent">
50
+ %HTMLspecial;
51
+
52
+ <!--================== Imported Names ====================================-->
53
+
54
+ <!ENTITY % XHTMLContentType "CDATA">
55
+ <!-- media type, as per [RFC2045] -->
56
+
57
+ <!ENTITY % XHTMLContentTypes "CDATA">
58
+ <!-- comma-separated list of media types, as per [RFC2045] -->
59
+
60
+ <!ENTITY % Charset "CDATA">
61
+ <!-- a character encoding, as per [RFC2045] -->
62
+
63
+ <!ENTITY % Charsets "CDATA">
64
+ <!-- a space separated list of character encodings, as per [RFC2045] -->
65
+
66
+ <!ENTITY % XHTMLLanguageCode "NMTOKEN">
67
+ <!-- a language code, as per [RFC1766] -->
68
+
69
+ <!ENTITY % Character "CDATA">
70
+ <!-- a single character from [ISO10646] -->
71
+
72
+ <!ENTITY % XHTMLNumber "CDATA">
73
+ <!-- one or more digits -->
74
+
75
+ <!ENTITY % LinkTypes "CDATA">
76
+ <!-- space-separated list of link types -->
77
+
78
+ <!ENTITY % MediaDesc "CDATA">
79
+ <!-- single or comma-separated list of media descriptors -->
80
+
81
+ <!ENTITY % URI "CDATA">
82
+ <!-- a Uniform Resource Identifier, see [RFC2396] -->
83
+
84
+ <!ENTITY % UriList "CDATA">
85
+ <!-- a space separated list of Uniform Resource Identifiers -->
86
+
87
+ <!ENTITY % Datetime "CDATA">
88
+ <!-- date and time information. ISO date format -->
89
+
90
+ <!ENTITY % Script "CDATA">
91
+ <!-- script expression -->
92
+
93
+ <!ENTITY % StyleSheet "CDATA">
94
+ <!-- style sheet data -->
95
+
96
+ <!ENTITY % XHTMLText "CDATA">
97
+ <!-- used for titles etc. -->
98
+
99
+ <!ENTITY % FrameTarget "NMTOKEN">
100
+ <!-- render in this frame -->
101
+
102
+ <!ENTITY % Length "CDATA">
103
+ <!-- nn for pixels or nn% for percentage length -->
104
+
105
+ <!ENTITY % MultiLength "CDATA">
106
+ <!-- pixel, percentage, or relative -->
107
+
108
+ <!ENTITY % MultiLengths "CDATA">
109
+ <!-- comma-separated list of MultiLength -->
110
+
111
+ <!ENTITY % Pixels "CDATA">
112
+ <!-- integer representing length in pixels -->
113
+
114
+ <!-- these are used for image maps -->
115
+
116
+ <!ENTITY % Shape "(rect|circle|poly|default)">
117
+
118
+ <!ENTITY % Coords "CDATA">
119
+ <!-- comma separated list of lengths -->
120
+
121
+ <!--=================== Generic Attributes ===============================-->
122
+
123
+ <!-- core attributes common to most elements
124
+ id document-wide unique id
125
+ class space separated list of classes
126
+ style associated style info
127
+ title advisory title/amplification
128
+ -->
129
+ <!ENTITY % coreattrs
130
+ "id ID #IMPLIED
131
+ class CDATA #IMPLIED
132
+ style %StyleSheet; #IMPLIED
133
+ title %XHTMLText; #IMPLIED"
134
+ >
135
+
136
+ <!-- internationalization attributes
137
+ lang language code (backwards compatible)
138
+ xml:lang language code (as per XML 1.0 spec)
139
+ dir direction for weak/neutral text
140
+ -->
141
+ <!ENTITY % i18n
142
+ "lang %XHTMLLanguageCode; #IMPLIED
143
+ xml:lang %XHTMLLanguageCode; #IMPLIED
144
+ dir (ltr|rtl) #IMPLIED"
145
+ >
146
+
147
+ <!ENTITY % attrs "%coreattrs; %i18n;">
148
+
149
+ <!--=================== Text Elements ====================================-->
150
+
151
+ <!ENTITY % special "br | span | bdo | object | img | map">
152
+
153
+ <!ENTITY % fontstyle "tt | i | b | big | small">
154
+
155
+ <!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
156
+ samp | kbd | var | cite | abbr | acronym">
157
+
158
+ <!ENTITY % inline "a | %special; | %fontstyle; | %phrase;">
159
+
160
+ <!-- %Inline; covers inline or "text-level" elements -->
161
+ <!ENTITY % Inline "(#PCDATA | %inline;)*">
162
+
163
+ <!--================== Block level elements ==============================-->
164
+
165
+ <!ENTITY % heading "h1|h2|h3|h4|h5|h6">
166
+ <!ENTITY % lists "ul | ol | dl">
167
+ <!ENTITY % blocktext "pre | hr | blockquote | address">
168
+
169
+ <!ENTITY % block
170
+ "p | %heading; | div | %lists; | %blocktext; | table">
171
+
172
+ <!ENTITY % Block "(%block;)*">
173
+
174
+ <!-- %Flow; mixes Block and Inline and is used for list items etc. -->
175
+ <!ENTITY % Flow "(#PCDATA | %block; | %inline;)*">
176
+
177
+ <!--================== Content models for exclusions =====================-->
178
+
179
+ <!-- a elements use %Inline; excluding a -->
180
+
181
+ <!ENTITY % a.content "(#PCDATA | %special; | %fontstyle; | %phrase;)*">
182
+
183
+ <!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
184
+
185
+ <!ENTITY % pre.content
186
+ "(#PCDATA | a | br | span | bdo | map | tt | i | b | %phrase;)*">
187
+
188
+ <!--=================== Document Body ====================================-->
189
+
190
+ <!ELEMENT div %Flow;> <!-- generic language/style container -->
191
+ <!ATTLIST div
192
+ %attrs;
193
+ >
194
+
195
+ <!--=================== Paragraphs =======================================-->
196
+
197
+ <!ELEMENT p %Inline;>
198
+ <!ATTLIST p
199
+ %attrs;
200
+ >
201
+
202
+ <!--=================== Headings =========================================-->
203
+
204
+ <!--
205
+ There are six levels of headings from h1 (the most important)
206
+ to h6 (the least important).
207
+ -->
208
+
209
+ <!ELEMENT h1 %Inline;>
210
+ <!ATTLIST h1
211
+ %attrs;
212
+ >
213
+
214
+ <!ELEMENT h2 %Inline;>
215
+ <!ATTLIST h2
216
+ %attrs;
217
+ >
218
+
219
+ <!ELEMENT h3 %Inline;>
220
+ <!ATTLIST h3
221
+ %attrs;
222
+ >
223
+
224
+ <!ELEMENT h4 %Inline;>
225
+ <!ATTLIST h4
226
+ %attrs;
227
+ >
228
+
229
+ <!ELEMENT h5 %Inline;>
230
+ <!ATTLIST h5
231
+ %attrs;
232
+ >
233
+
234
+ <!ELEMENT h6 %Inline;>
235
+ <!ATTLIST h6
236
+ %attrs;
237
+ >
238
+
239
+ <!--=================== Lists ============================================-->
240
+
241
+ <!-- Unordered list -->
242
+
243
+ <!ELEMENT ul (li)+>
244
+ <!ATTLIST ul
245
+ %attrs;
246
+ >
247
+
248
+ <!-- Ordered (numbered) list -->
249
+
250
+ <!ELEMENT ol (li)+>
251
+ <!ATTLIST ol
252
+ %attrs;
253
+ >
254
+
255
+ <!-- list item -->
256
+
257
+ <!ELEMENT li %Flow;>
258
+ <!ATTLIST li
259
+ %attrs;
260
+ >
261
+
262
+ <!-- definition lists - dt for term, dd for its definition -->
263
+
264
+ <!ELEMENT dl (dt|dd)+>
265
+ <!ATTLIST dl
266
+ %attrs;
267
+ >
268
+
269
+ <!ELEMENT dt %Inline;>
270
+ <!ATTLIST dt
271
+ %attrs;
272
+ >
273
+
274
+ <!ELEMENT dd %Flow;>
275
+ <!ATTLIST dd
276
+ %attrs;
277
+ >
278
+
279
+ <!--=================== Address ==========================================-->
280
+
281
+ <!-- information on author -->
282
+
283
+ <!ELEMENT address %Inline;>
284
+ <!ATTLIST address
285
+ %attrs;
286
+ >
287
+
288
+ <!--=================== Horizontal Rule ==================================-->
289
+
290
+ <!ELEMENT hr EMPTY>
291
+ <!ATTLIST hr
292
+ %attrs;
293
+ >
294
+
295
+ <!--=================== Preformatted Text ================================-->
296
+
297
+ <!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
298
+
299
+ <!ELEMENT pre %pre.content;>
300
+ <!ATTLIST pre
301
+ %attrs;
302
+ xml:space (preserve) #FIXED 'preserve'
303
+ >
304
+
305
+ <!--=================== Block-like Quotes ================================-->
306
+
307
+ <!ELEMENT blockquote %Block;>
308
+ <!ATTLIST blockquote
309
+ %attrs;
310
+ cite %URI; #IMPLIED
311
+ >
312
+
313
+ <!--================== The Anchor Element ================================-->
314
+
315
+ <!-- content is %Inline; except that anchors shouldn't be nested -->
316
+
317
+ <!ELEMENT a %a.content;>
318
+ <!ATTLIST a
319
+ %attrs;
320
+ charset %Charset; #IMPLIED
321
+ type %XHTMLContentType; #IMPLIED
322
+ name NMTOKEN #IMPLIED
323
+ href %URI; #IMPLIED
324
+ hreflang %XHTMLLanguageCode; #IMPLIED
325
+ rel %LinkTypes; #IMPLIED
326
+ rev %LinkTypes; #IMPLIED
327
+ accesskey %Character; #IMPLIED
328
+ shape %Shape; "rect"
329
+ coords %Coords; #IMPLIED
330
+ tabindex %XHTMLNumber; #IMPLIED
331
+ onfocus %Script; #IMPLIED
332
+ onblur %Script; #IMPLIED
333
+ >
334
+
335
+ <!--===================== Inline Elements ================================-->
336
+
337
+ <!ELEMENT span %Inline;> <!-- generic language/style container -->
338
+ <!ATTLIST span
339
+ %attrs;
340
+ >
341
+
342
+ <!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
343
+ <!ATTLIST bdo
344
+ %coreattrs;
345
+ lang %XHTMLLanguageCode; #IMPLIED
346
+ xml:lang %XHTMLLanguageCode; #IMPLIED
347
+ dir (ltr|rtl) #REQUIRED
348
+ >
349
+
350
+ <!ELEMENT br EMPTY> <!-- forced line break -->
351
+ <!ATTLIST br
352
+ %coreattrs;
353
+ >
354
+
355
+ <!ELEMENT em %Inline;> <!-- emphasis -->
356
+ <!ATTLIST em %attrs;>
357
+
358
+ <!ELEMENT strong %Inline;> <!-- strong emphasis -->
359
+ <!ATTLIST strong %attrs;>
360
+
361
+ <!ELEMENT dfn %Inline;> <!-- definitional -->
362
+ <!ATTLIST dfn %attrs;>
363
+
364
+ <!ELEMENT code %Inline;> <!-- program code -->
365
+ <!ATTLIST code %attrs;>
366
+
367
+ <!ELEMENT samp %Inline;> <!-- sample -->
368
+ <!ATTLIST samp %attrs;>
369
+
370
+ <!ELEMENT kbd %Inline;> <!-- something user would type -->
371
+ <!ATTLIST kbd %attrs;>
372
+
373
+ <!ELEMENT var %Inline;> <!-- variable -->
374
+ <!ATTLIST var %attrs;>
375
+
376
+ <!ELEMENT cite %Inline;> <!-- citation -->
377
+ <!ATTLIST cite %attrs;>
378
+
379
+ <!ELEMENT abbr %Inline;> <!-- abbreviation -->
380
+ <!ATTLIST abbr %attrs;>
381
+
382
+ <!ELEMENT acronym %Inline;> <!-- acronym -->
383
+ <!ATTLIST acronym %attrs;>
384
+
385
+ <!ELEMENT q %Inline;> <!-- inlined quote -->
386
+ <!ATTLIST q
387
+ %attrs;
388
+ cite %URI; #IMPLIED
389
+ >
390
+
391
+ <!ELEMENT sub %Inline;> <!-- subscript -->
392
+ <!ATTLIST sub %attrs;>
393
+
394
+ <!ELEMENT sup %Inline;> <!-- superscript -->
395
+ <!ATTLIST sup %attrs;>
396
+
397
+ <!ELEMENT tt %Inline;> <!-- fixed pitch font -->
398
+ <!ATTLIST tt %attrs;>
399
+
400
+ <!ELEMENT i %Inline;> <!-- italic font -->
401
+ <!ATTLIST i %attrs;>
402
+
403
+ <!ELEMENT b %Inline;> <!-- bold font -->
404
+ <!ATTLIST b %attrs;>
405
+
406
+ <!ELEMENT big %Inline;> <!-- bigger font -->
407
+ <!ATTLIST big %attrs;>
408
+
409
+ <!ELEMENT small %Inline;> <!-- smaller font -->
410
+ <!ATTLIST small %attrs;>
411
+
412
+ <!--==================== Object ======================================-->
413
+ <!--
414
+ object is used to embed objects as part of HTML pages.
415
+ param elements should precede other content. Parameters
416
+ can also be expressed as attribute/value pairs on the
417
+ object element itself when brevity is desired.
418
+ -->
419
+
420
+ <!ELEMENT object (#PCDATA | param | %block; | %inline;)*>
421
+ <!ATTLIST object
422
+ %attrs;
423
+ declare (declare) #IMPLIED
424
+ classid %URI; #IMPLIED
425
+ codebase %URI; #IMPLIED
426
+ data %URI; #IMPLIED
427
+ type %XHTMLContentType; #IMPLIED
428
+ codetype %XHTMLContentType; #IMPLIED
429
+ archive %UriList; #IMPLIED
430
+ standby %XHTMLText; #IMPLIED
431
+ height %Length; #IMPLIED
432
+ width %Length; #IMPLIED
433
+ usemap %URI; #IMPLIED
434
+ name NMTOKEN #IMPLIED
435
+ tabindex %XHTMLNumber; #IMPLIED
436
+ >
437
+
438
+ <!--
439
+ param is used to supply a named property value.
440
+ In XML it would seem natural to follow RDF and support an
441
+ abbreviated syntax where the param elements are replaced
442
+ by attribute value pairs on the object start tag.
443
+ -->
444
+ <!ELEMENT param EMPTY>
445
+ <!ATTLIST param
446
+ id ID #IMPLIED
447
+ name CDATA #IMPLIED
448
+ value CDATA #IMPLIED
449
+ valuetype (data|ref|object) "data"
450
+ type %XHTMLContentType; #IMPLIED
451
+ >
452
+
453
+ <!--=================== Images ===========================================-->
454
+
455
+ <!--
456
+ To avoid accessibility problems for people who aren't
457
+ able to see the image, you should provide a text
458
+ description using the alt and longdesc attributes.
459
+ In addition, avoid the use of server-side image maps.
460
+ Note that in this DTD there is no name attribute. That
461
+ is only available in the transitional and frameset DTD.
462
+ -->
463
+
464
+ <!ELEMENT img EMPTY>
465
+ <!ATTLIST img
466
+ %attrs;
467
+ src %URI; #REQUIRED
468
+ alt %XHTMLText; #REQUIRED
469
+ longdesc %URI; #IMPLIED
470
+ height %Length; #IMPLIED
471
+ width %Length; #IMPLIED
472
+ usemap %URI; #IMPLIED
473
+ ismap (ismap) #IMPLIED
474
+ >
475
+
476
+ <!-- usemap points to a map element which may be in this document
477
+ or an external document, although the latter is not widely supported -->
478
+
479
+ <!--================== Client-side image maps ============================-->
480
+
481
+ <!-- These can be placed in the same document or grouped in a
482
+ separate document although this isn't yet widely supported -->
483
+
484
+ <!ELEMENT map ((%block;)+ | area+)>
485
+ <!ATTLIST map
486
+ %i18n;
487
+ id ID #REQUIRED
488
+ class CDATA #IMPLIED
489
+ style %StyleSheet; #IMPLIED
490
+ title %XHTMLText; #IMPLIED
491
+ name NMTOKEN #IMPLIED
492
+ >
493
+
494
+ <!ELEMENT area EMPTY>
495
+ <!ATTLIST area
496
+ %attrs;
497
+ shape %Shape; "rect"
498
+ coords %Coords; #IMPLIED
499
+ href %URI; #IMPLIED
500
+ nohref (nohref) #IMPLIED
501
+ alt %XHTMLText; #REQUIRED
502
+ >
503
+
504
+ <!--======================= Tables =======================================-->
505
+
506
+ <!-- Derived from IETF HTML table standard, see [RFC1942] -->
507
+
508
+ <!--
509
+ The border attribute sets the thickness of the frame around the
510
+ table. The default units are screen pixels.
511
+
512
+ The frame attribute specifies which parts of the frame around
513
+ the table should be rendered. The values are not the same as
514
+ CALS to avoid a name clash with the valign attribute.
515
+ -->
516
+ <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
517
+
518
+ <!--
519
+ The rules attribute defines which rules to draw between cells:
520
+
521
+ If rules is absent then assume:
522
+ "none" if border is absent or border="0" otherwise "all"
523
+ -->
524
+
525
+ <!ENTITY % TRules "(none | groups | rows | cols | all)">
526
+
527
+ <!-- horizontal placement of table relative to document -->
528
+ <!ENTITY % TAlign "(left|center|right)">
529
+
530
+ <!-- horizontal alignment attributes for cell contents
531
+
532
+ char alignment char, e.g. char=':'
533
+ charoff offset for alignment char
534
+ -->
535
+ <!ENTITY % cellhalign
536
+ "align (left|center|right|justify|char) #IMPLIED
537
+ char %Character; #IMPLIED
538
+ charoff %Length; #IMPLIED"
539
+ >
540
+
541
+ <!-- vertical alignment attributes for cell contents -->
542
+ <!ENTITY % cellvalign
543
+ "valign (top|middle|bottom|baseline) #IMPLIED"
544
+ >
545
+
546
+ <!ELEMENT table
547
+ (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
548
+ <!ELEMENT caption %Inline;>
549
+ <!ELEMENT thead (tr)+>
550
+ <!ELEMENT tfoot (tr)+>
551
+ <!ELEMENT tbody (tr)+>
552
+ <!ELEMENT colgroup (col)*>
553
+ <!ELEMENT col EMPTY>
554
+ <!ELEMENT tr (th|td)+>
555
+ <!ELEMENT th %Flow;>
556
+ <!ELEMENT td %Flow;>
557
+
558
+ <!ATTLIST table
559
+ %attrs;
560
+ summary %XHTMLText; #IMPLIED
561
+ width %Length; #IMPLIED
562
+ border %Pixels; #IMPLIED
563
+ frame %TFrame; #IMPLIED
564
+ rules %TRules; #IMPLIED
565
+ cellspacing %Length; #IMPLIED
566
+ cellpadding %Length; #IMPLIED
567
+ >
568
+
569
+ <!ENTITY % CAlign "(top|bottom|left|right)">
570
+
571
+ <!ATTLIST caption
572
+ %attrs;
573
+ >
574
+
575
+ <!--
576
+ colgroup groups a set of col elements. It allows you to group
577
+ several semantically related columns together.
578
+ -->
579
+ <!ATTLIST colgroup
580
+ %attrs;
581
+ span %XHTMLNumber; "1"
582
+ width %MultiLength; #IMPLIED
583
+ %cellhalign;
584
+ %cellvalign;
585
+ >
586
+
587
+ <!--
588
+ col elements define the alignment properties for cells in
589
+ one or more columns.
590
+
591
+ The width attribute specifies the width of the columns, e.g.
592
+
593
+ width=64 width in screen pixels
594
+ width=0.5* relative width of 0.5
595
+
596
+ The span attribute causes the attributes of one
597
+ col element to apply to more than one column.
598
+ -->
599
+ <!ATTLIST col
600
+ %attrs;
601
+ span %XHTMLNumber; "1"
602
+ width %MultiLength; #IMPLIED
603
+ %cellhalign;
604
+ %cellvalign;
605
+ >
606
+
607
+ <!--
608
+ Use thead to duplicate headers when breaking table
609
+ across page boundaries, or for static headers when
610
+ tbody sections are rendered in scrolling panel.
611
+
612
+ Use tfoot to duplicate footers when breaking table
613
+ across page boundaries, or for static footers when
614
+ tbody sections are rendered in scrolling panel.
615
+
616
+ Use multiple tbody sections when rules are needed
617
+ between groups of table rows.
618
+ -->
619
+ <!ATTLIST thead
620
+ %attrs;
621
+ %cellhalign;
622
+ %cellvalign;
623
+ >
624
+
625
+ <!ATTLIST tfoot
626
+ %attrs;
627
+ %cellhalign;
628
+ %cellvalign;
629
+ >
630
+
631
+ <!ATTLIST tbody
632
+ %attrs;
633
+ %cellhalign;
634
+ %cellvalign;
635
+ >
636
+
637
+ <!ATTLIST tr
638
+ %attrs;
639
+ %cellhalign;
640
+ %cellvalign;
641
+ >
642
+
643
+
644
+ <!-- Scope is simpler than headers attribute for common tables -->
645
+ <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
646
+
647
+ <!-- th is for headers, td for data and for cells acting as both -->
648
+
649
+ <!ATTLIST th
650
+ %attrs;
651
+ abbr %XHTMLText; #IMPLIED
652
+ axis CDATA #IMPLIED
653
+ headers IDREFS #IMPLIED
654
+ scope %Scope; #IMPLIED
655
+ rowspan %XHTMLNumber; "1"
656
+ colspan %XHTMLNumber; "1"
657
+ %cellhalign;
658
+ %cellvalign;
659
+ >
660
+
661
+ <!ATTLIST td
662
+ %attrs;
663
+ abbr %XHTMLText; #IMPLIED
664
+ axis CDATA #IMPLIED
665
+ headers IDREFS #IMPLIED
666
+ scope %Scope; #IMPLIED
667
+ rowspan %XHTMLNumber; "1"
668
+ colspan %XHTMLNumber; "1"
669
+ %cellhalign;
670
+ %cellvalign;
671
+ >
672
+