Added XHTML validation support.
[jsvc.git] / etc / catalog / xhtml1-strict.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema version="1.0" xml:lang="en"
3     xmlns:xs="http://www.w3.org/2001/XMLSchema"
4     targetNamespace="http://www.w3.org/1999/xhtml"
5     xmlns="http://www.w3.org/1999/xhtml"
6     xmlns:xml="http://www.w3.org/XML/1998/namespace"
7     elementFormDefault="qualified">
8
9   <xs:annotation>
10     <xs:documentation>
11     XHTML 1.0 (Second Edition) Strict in XML Schema
12
13     This is the same as HTML 4 Strict except for
14     changes due to the differences between XML and SGML.
15
16     Namespace = http://www.w3.org/1999/xhtml
17
18     For further information, see: http://www.w3.org/TR/xhtml1
19
20     Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
21     All Rights Reserved. 
22
23     The DTD version is identified by the PUBLIC and SYSTEM identifiers:
24
25     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
26     SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
27
28     $Id: xhtml1-strict.xsd,v 1.2 2002/08/28 08:05:44 mimasa Exp $
29     </xs:documentation>
30   </xs:annotation>
31
32   <xs:import namespace="http://www.w3.org/XML/1998/namespace"
33       schemaLocation="http://www.w3.org/2001/xml.xsd"/>
34
35   <xs:annotation>
36     <xs:documentation>
37     ================ Character mnemonic entities =========================
38
39     XHTML entity sets are identified by the PUBLIC and SYSTEM identifiers:
40   
41     PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN"
42     SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent"
43
44     PUBLIC "-//W3C//ENTITIES Special for XHTML//EN"
45     SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent"
46
47     PUBLIC "-//W3C//ENTITIES Symbols for XHTML//EN"
48     SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent"
49     </xs:documentation>
50   </xs:annotation>
51
52   <xs:annotation>
53     <xs:documentation>
54     ================== Imported Names ====================================
55     </xs:documentation>
56   </xs:annotation>
57
58   <xs:simpleType name="ContentType">
59     <xs:annotation>
60       <xs:documentation>
61       media type, as per [RFC2045]
62       </xs:documentation>
63     </xs:annotation>
64     <xs:restriction base="xs:string"/>
65   </xs:simpleType>
66
67   <xs:simpleType name="ContentTypes">
68     <xs:annotation>
69       <xs:documentation>
70       comma-separated list of media types, as per [RFC2045]
71       </xs:documentation>
72     </xs:annotation>
73     <xs:restriction base="xs:string"/>
74   </xs:simpleType>
75
76   <xs:simpleType name="Charset">
77     <xs:annotation>
78       <xs:documentation>
79       a character encoding, as per [RFC2045]
80       </xs:documentation>
81     </xs:annotation>
82     <xs:restriction base="xs:string"/>
83   </xs:simpleType>
84
85   <xs:simpleType name="Charsets">
86     <xs:annotation>
87       <xs:documentation>
88       a space separated list of character encodings, as per [RFC2045]
89       </xs:documentation>
90     </xs:annotation>
91     <xs:restriction base="xs:string"/>
92   </xs:simpleType>
93
94   <xs:simpleType name="LanguageCode">
95     <xs:annotation>
96       <xs:documentation>
97       a language code, as per [RFC3066]
98       </xs:documentation>
99     </xs:annotation>
100     <xs:restriction base="xs:language"/>
101   </xs:simpleType>
102
103   <xs:simpleType name="Character">
104     <xs:annotation>
105       <xs:documentation>
106       a single character, as per section 2.2 of [XML]
107       </xs:documentation>
108     </xs:annotation>
109     <xs:restriction base="xs:string">
110       <xs:length value="1" fixed="true"/>
111     </xs:restriction>
112   </xs:simpleType>
113
114   <xs:simpleType name="Number">
115     <xs:annotation>
116       <xs:documentation>
117       one or more digits
118       </xs:documentation>
119     </xs:annotation>
120     <xs:restriction base="xs:nonNegativeInteger">
121       <xs:pattern value="[0-9]+"/>
122     </xs:restriction>
123   </xs:simpleType>
124
125   <xs:simpleType name="tabindexNumber">
126     <xs:annotation>
127       <xs:documentation>
128       tabindex attribute specifies the position of the current element
129       in the tabbing order for the current document. This value must be
130       a number between 0 and 32767. User agents should ignore leading zeros. 
131       </xs:documentation>
132     </xs:annotation>
133     <xs:restriction base="Number">
134       <xs:minInclusive value="0"/>
135       <xs:maxInclusive value="32767"/>
136     </xs:restriction>
137   </xs:simpleType>
138
139   <xs:simpleType name="LinkTypes">
140     <xs:annotation>
141       <xs:documentation>
142       space-separated list of link types
143       </xs:documentation>
144     </xs:annotation>
145     <xs:restriction base="xs:NMTOKENS"/>
146   </xs:simpleType>
147
148   <xs:simpleType name="MediaDesc">
149     <xs:annotation>
150       <xs:documentation>
151       single or comma-separated list of media descriptors
152       </xs:documentation>
153     </xs:annotation>
154     <xs:restriction base="xs:string">
155       <xs:pattern value="[^,]+(,\s*[^,]+)*"/>
156     </xs:restriction>
157   </xs:simpleType>
158
159   <xs:simpleType name="URI">
160     <xs:annotation>
161       <xs:documentation>
162       a Uniform Resource Identifier, see [RFC2396]
163       </xs:documentation>
164     </xs:annotation>
165     <xs:restriction base="xs:anyURI"/>
166   </xs:simpleType>
167
168   <xs:simpleType name="UriList">
169     <xs:annotation>
170       <xs:documentation>
171       a space separated list of Uniform Resource Identifiers
172       </xs:documentation>
173     </xs:annotation>
174     <xs:restriction base="xs:string"/>
175   </xs:simpleType>
176
177   <xs:simpleType name="Datetime">
178     <xs:annotation>
179       <xs:documentation>
180       date and time information. ISO date format
181       </xs:documentation>
182     </xs:annotation>
183     <xs:restriction base="xs:dateTime"/>
184   </xs:simpleType>
185
186   <xs:simpleType name="Script">
187     <xs:annotation>
188       <xs:documentation>
189       script expression
190       </xs:documentation>
191     </xs:annotation>
192     <xs:restriction base="xs:string"/>
193   </xs:simpleType>
194
195   <xs:simpleType name="StyleSheet">
196     <xs:annotation>
197       <xs:documentation>
198       style sheet data
199       </xs:documentation>
200     </xs:annotation>
201     <xs:restriction base="xs:string"/>
202   </xs:simpleType>
203
204   <xs:simpleType name="Text">
205     <xs:annotation>
206       <xs:documentation>
207       used for titles etc.
208       </xs:documentation>
209     </xs:annotation>
210     <xs:restriction base="xs:string"/>
211   </xs:simpleType>
212
213   <xs:simpleType name="Length">
214     <xs:annotation>
215       <xs:documentation>
216       nn for pixels or nn% for percentage length
217       </xs:documentation>
218     </xs:annotation>
219     <xs:restriction base="xs:string">
220       <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)"/>
221     </xs:restriction>
222   </xs:simpleType>
223
224   <xs:simpleType name="MultiLength">
225     <xs:annotation>
226       <xs:documentation>
227       pixel, percentage, or relative
228       </xs:documentation>
229     </xs:annotation>
230     <xs:restriction base="xs:string">
231       <xs:pattern value="[-+]?(\d+|\d+(\.\d+)?%)|[1-9]?(\d+)?\*"/>
232     </xs:restriction>
233   </xs:simpleType>
234
235   <xs:simpleType name="Pixels">
236     <xs:annotation>
237       <xs:documentation>
238       integer representing length in pixels
239       </xs:documentation>
240     </xs:annotation>
241     <xs:restriction base="xs:nonNegativeInteger"/>
242   </xs:simpleType>
243
244   <xs:annotation>
245     <xs:documentation>
246     these are used for image maps
247     </xs:documentation>
248   </xs:annotation>
249
250   <xs:simpleType name="Shape">
251     <xs:restriction base="xs:token">
252       <xs:enumeration value="rect"/>
253       <xs:enumeration value="circle"/>
254       <xs:enumeration value="poly"/>
255       <xs:enumeration value="default"/>
256     </xs:restriction>
257   </xs:simpleType>
258
259   <xs:simpleType name="Coords">
260     <xs:annotation>
261       <xs:documentation>
262       comma separated list of lengths
263       </xs:documentation>
264     </xs:annotation>
265     <xs:restriction base="xs:string">
266       <xs:pattern
267           value="[-+]?(\d+|\d+(\.\d+)?%)(,\s*[-+]?(\d+|\d+(\.\d+)?%))*"/>
268     </xs:restriction>
269   </xs:simpleType>
270
271   <xs:annotation>
272     <xs:documentation>
273     =================== Generic Attributes ===============================
274     </xs:documentation>
275   </xs:annotation>
276
277   <xs:attributeGroup name="coreattrs">
278     <xs:annotation>
279       <xs:documentation>
280       core attributes common to most elements
281       id       document-wide unique id
282       class    space separated list of classes
283       style    associated style info
284       title    advisory title/amplification
285       </xs:documentation>
286     </xs:annotation>
287     <xs:attribute name="id" type="xs:ID"/>
288     <xs:attribute name="class" type="xs:NMTOKENS"/>
289     <xs:attribute name="style" type="StyleSheet"/>
290     <xs:attribute name="title" type="Text"/>
291   </xs:attributeGroup>
292
293   <xs:attributeGroup name="i18n">
294     <xs:annotation>
295       <xs:documentation>
296       internationalization attributes
297       lang        language code (backwards compatible)
298       xml:lang    language code (as per XML 1.0 spec)
299       dir         direction for weak/neutral text
300       </xs:documentation>
301     </xs:annotation>
302     <xs:attribute name="lang" type="LanguageCode"/>
303     <xs:attribute ref="xml:lang"/>
304     <xs:attribute name="dir">
305       <xs:simpleType>
306         <xs:restriction base="xs:token">
307           <xs:enumeration value="ltr"/>
308           <xs:enumeration value="rtl"/>
309         </xs:restriction>
310       </xs:simpleType>
311     </xs:attribute>
312   </xs:attributeGroup>
313
314   <xs:attributeGroup name="events">
315     <xs:annotation>
316       <xs:documentation>
317       attributes for common UI events
318       onclick     a pointer button was clicked
319       ondblclick  a pointer button was double clicked
320       onmousedown a pointer button was pressed down
321       onmouseup   a pointer button was released
322       onmousemove a pointer was moved onto the element
323       onmouseout  a pointer was moved away from the element
324       onkeypress  a key was pressed and released
325       onkeydown   a key was pressed down
326       onkeyup     a key was released
327       </xs:documentation>
328     </xs:annotation>
329     <xs:attribute name="onclick" type="Script"/>
330     <xs:attribute name="ondblclick" type="Script"/>
331     <xs:attribute name="onmousedown" type="Script"/>
332     <xs:attribute name="onmouseup" type="Script"/>
333     <xs:attribute name="onmouseover" type="Script"/>
334     <xs:attribute name="onmousemove" type="Script"/>
335     <xs:attribute name="onmouseout" type="Script"/>
336     <xs:attribute name="onkeypress" type="Script"/>
337     <xs:attribute name="onkeydown" type="Script"/>
338     <xs:attribute name="onkeyup" type="Script"/>
339   </xs:attributeGroup>
340
341   <xs:attributeGroup name="focus">
342     <xs:annotation>
343       <xs:documentation>
344       attributes for elements that can get the focus
345       accesskey   accessibility key character
346       tabindex    position in tabbing order
347       onfocus     the element got the focus
348       onblur      the element lost the focus
349       </xs:documentation>
350     </xs:annotation>
351     <xs:attribute name="accesskey" type="Character"/>
352     <xs:attribute name="tabindex" type="tabindexNumber"/>
353     <xs:attribute name="onfocus" type="Script"/>
354     <xs:attribute name="onblur" type="Script"/>
355   </xs:attributeGroup>
356
357   <xs:attributeGroup name="attrs">
358     <xs:attributeGroup ref="coreattrs"/>
359     <xs:attributeGroup ref="i18n"/>
360     <xs:attributeGroup ref="events"/>
361   </xs:attributeGroup>
362
363   <xs:annotation>
364     <xs:documentation>
365     =================== Text Elements ====================================
366     </xs:documentation>
367   </xs:annotation>
368
369   <xs:group name="special.pre">
370     <xs:choice>
371       <xs:element ref="br"/>
372       <xs:element ref="span"/>
373       <xs:element ref="bdo"/>
374       <xs:element ref="map"/>
375     </xs:choice>
376   </xs:group>
377
378   <xs:group name="special">
379     <xs:choice>
380       <xs:group ref="special.pre"/>
381       <xs:element ref="object"/>
382       <xs:element ref="img"/>
383     </xs:choice>
384   </xs:group>
385
386   <xs:group name="fontstyle">
387     <xs:choice>
388       <xs:element ref="tt"/>
389       <xs:element ref="i"/>
390       <xs:element ref="b"/>
391       <xs:element ref="big"/>
392       <xs:element ref="small"/>
393     </xs:choice>
394   </xs:group>
395
396   <xs:group name="phrase">
397     <xs:choice>
398       <xs:element ref="em"/>
399       <xs:element ref="strong"/>
400       <xs:element ref="dfn"/>
401       <xs:element ref="code"/>
402       <xs:element ref="q"/>
403       <xs:element ref="samp"/>
404       <xs:element ref="kbd"/>
405       <xs:element ref="var"/>
406       <xs:element ref="cite"/>
407       <xs:element ref="abbr"/>
408       <xs:element ref="acronym"/>
409       <xs:element ref="sub"/>
410       <xs:element ref="sup"/>
411     </xs:choice>
412   </xs:group>
413
414   <xs:group name="inline.forms">
415     <xs:choice>
416       <xs:element ref="input"/>
417       <xs:element ref="select"/>
418       <xs:element ref="textarea"/>
419       <xs:element ref="label"/>
420       <xs:element ref="button"/>
421     </xs:choice>
422   </xs:group>
423
424   <xs:group name="misc.inline">
425     <xs:choice>
426       <xs:element ref="ins"/>
427       <xs:element ref="del"/>
428       <xs:element ref="script"/>
429     </xs:choice>
430   </xs:group>
431
432   <xs:group name="misc">
433     <xs:annotation>
434       <xs:documentation>
435       these can only occur at block level
436       </xs:documentation>
437     </xs:annotation>
438     <xs:choice>
439       <xs:element ref="noscript"/>
440       <xs:group ref="misc.inline"/>
441     </xs:choice>
442   </xs:group>
443
444   <xs:group name="inline">
445     <xs:choice>
446       <xs:element ref="a"/>
447       <xs:group ref="special"/>
448       <xs:group ref="fontstyle"/>
449       <xs:group ref="phrase"/>
450       <xs:group ref="inline.forms"/>
451     </xs:choice>
452   </xs:group>
453
454   <xs:complexType name="Inline" mixed="true">
455     <xs:annotation>
456       <xs:documentation>
457       "Inline" covers inline or "text-level" elements
458       </xs:documentation>
459     </xs:annotation>
460     <xs:choice minOccurs="0" maxOccurs="unbounded">
461       <xs:group ref="inline"/>
462       <xs:group ref="misc.inline"/>
463     </xs:choice>
464   </xs:complexType>
465
466   <xs:annotation>
467     <xs:documentation>
468     ================== Block level elements ==============================
469     </xs:documentation>
470   </xs:annotation>
471
472   <xs:group name="heading">
473     <xs:choice>
474       <xs:element ref="h1"/>
475       <xs:element ref="h2"/>
476       <xs:element ref="h3"/>
477       <xs:element ref="h4"/>
478       <xs:element ref="h5"/>
479       <xs:element ref="h6"/>
480     </xs:choice>
481   </xs:group>
482
483   <xs:group name="lists">
484     <xs:choice>
485       <xs:element ref="ul"/>
486       <xs:element ref="ol"/>
487       <xs:element ref="dl"/>
488     </xs:choice>
489   </xs:group>
490
491   <xs:group name="blocktext">
492     <xs:choice>
493       <xs:element ref="pre"/>
494       <xs:element ref="hr"/>
495       <xs:element ref="blockquote"/>
496       <xs:element ref="address"/>
497     </xs:choice>
498   </xs:group>
499
500   <xs:group name="block">
501     <xs:choice>
502       <xs:element ref="p"/>
503       <xs:group ref="heading"/>
504       <xs:element ref="div"/>
505       <xs:group ref="lists"/>
506       <xs:group ref="blocktext"/>
507       <xs:element ref="fieldset"/>
508       <xs:element ref="table"/>
509     </xs:choice>
510   </xs:group>
511
512   <xs:complexType name="Block">
513     <xs:choice minOccurs="0" maxOccurs="unbounded">
514       <xs:group ref="block"/>
515       <xs:element ref="form"/>
516       <xs:group ref="misc"/>
517     </xs:choice>
518   </xs:complexType>
519
520   <xs:complexType name="Flow" mixed="true">
521     <xs:annotation>
522       <xs:documentation>
523       "Flow" mixes block and inline and is used for list items etc.
524       </xs:documentation>
525     </xs:annotation>
526     <xs:choice minOccurs="0" maxOccurs="unbounded">
527       <xs:group ref="block"/>
528       <xs:element ref="form"/>
529       <xs:group ref="inline"/>
530       <xs:group ref="misc"/>
531     </xs:choice>
532   </xs:complexType>
533
534   <xs:annotation>
535     <xs:documentation>
536     ================== Content models for exclusions =====================
537     </xs:documentation>
538   </xs:annotation>
539
540   <xs:complexType name="a.content" mixed="true">
541     <xs:annotation>
542       <xs:documentation>
543       a elements use "Inline" excluding a
544       </xs:documentation>
545     </xs:annotation>
546     <xs:choice minOccurs="0" maxOccurs="unbounded">
547       <xs:group ref="special"/>
548       <xs:group ref="fontstyle"/>
549       <xs:group ref="phrase"/>
550       <xs:group ref="inline.forms"/>
551       <xs:group ref="misc.inline"/>
552     </xs:choice>
553   </xs:complexType>
554
555   <xs:complexType name="pre.content" mixed="true">
556     <xs:annotation>
557       <xs:documentation>
558       pre uses "Inline" excluding big, small, sup or sup
559       </xs:documentation>
560     </xs:annotation>
561     <xs:choice minOccurs="0" maxOccurs="unbounded">
562       <xs:element ref="a"/>
563       <xs:group ref="fontstyle"/>
564       <xs:group ref="phrase"/>
565       <xs:group ref="special.pre"/>
566       <xs:group ref="misc.inline"/>
567       <xs:group ref="inline.forms"/>
568     </xs:choice>
569   </xs:complexType>
570
571   <xs:complexType name="form.content">
572     <xs:annotation>
573       <xs:documentation>
574       form uses "Block" excluding form
575       </xs:documentation>
576     </xs:annotation>
577     <xs:choice minOccurs="0" maxOccurs="unbounded">
578       <xs:group ref="block"/>
579       <xs:group ref="misc"/>
580     </xs:choice>
581   </xs:complexType>
582
583   <xs:complexType name="button.content" mixed="true">
584     <xs:annotation>
585       <xs:documentation>
586       button uses "Flow" but excludes a, form and form controls
587       </xs:documentation>
588     </xs:annotation>
589     <xs:choice minOccurs="0" maxOccurs="unbounded">
590       <xs:element ref="p"/>
591       <xs:group ref="heading"/>
592       <xs:element ref="div"/>
593       <xs:group ref="lists"/>
594       <xs:group ref="blocktext"/>
595       <xs:element ref="table"/>
596       <xs:group ref="special"/>
597       <xs:group ref="fontstyle"/>
598       <xs:group ref="phrase"/>
599       <xs:group ref="misc"/>
600     </xs:choice>
601   </xs:complexType>
602
603   <xs:annotation>
604     <xs:documentation>
605     ================ Document Structure ==================================
606     </xs:documentation>
607   </xs:annotation>
608
609   <xs:element name="html">
610     <xs:complexType>
611       <xs:sequence>
612         <xs:element ref="head"/>
613         <xs:element ref="body"/>
614       </xs:sequence>
615       <xs:attributeGroup ref="i18n"/>
616       <xs:attribute name="id" type="xs:ID"/>
617     </xs:complexType>
618   </xs:element>
619
620   <xs:annotation>
621     <xs:documentation>
622     ================ Document Head =======================================
623     </xs:documentation>
624   </xs:annotation>
625
626   <xs:group name="head.misc">
627     <xs:sequence>
628       <xs:choice minOccurs="0" maxOccurs="unbounded">
629         <xs:element ref="script"/>
630         <xs:element ref="style"/>
631         <xs:element ref="meta"/>
632         <xs:element ref="link"/>
633         <xs:element ref="object"/>
634       </xs:choice>
635     </xs:sequence>
636   </xs:group>
637
638   <xs:element name="head">
639     <xs:annotation>
640       <xs:documentation>
641       content model is "head.misc" combined with a single
642       title and an optional base element in any order
643       </xs:documentation>
644     </xs:annotation>
645     <xs:complexType>
646       <xs:sequence>
647         <xs:group ref="head.misc"/>
648         <xs:choice>
649           <xs:sequence>
650             <xs:element ref="title"/>
651             <xs:group ref="head.misc"/>
652             <xs:sequence minOccurs="0">
653               <xs:element ref="base"/>
654               <xs:group ref="head.misc"/>
655             </xs:sequence>
656           </xs:sequence>
657           <xs:sequence>
658             <xs:element ref="base"/>
659             <xs:group ref="head.misc"/>
660             <xs:element ref="title"/>
661             <xs:group ref="head.misc"/>
662           </xs:sequence>
663         </xs:choice>
664       </xs:sequence>
665       <xs:attributeGroup ref="i18n"/>
666       <xs:attribute name="id" type="xs:ID"/>
667       <xs:attribute name="profile" type="URI"/>
668     </xs:complexType>
669   </xs:element>
670
671   <xs:element name="title">
672     <xs:annotation>
673       <xs:documentation>
674       The title element is not considered part of the flow of text.
675       It should be displayed, for example as the page header or
676       window title. Exactly one title is required per document.
677       </xs:documentation>
678     </xs:annotation>
679     <xs:complexType mixed="true">
680       <xs:attributeGroup ref="i18n"/>
681       <xs:attribute name="id" type="xs:ID"/>
682     </xs:complexType>
683   </xs:element>
684
685   <xs:element name="base">
686     <xs:annotation>
687       <xs:documentation>
688       document base URI
689       </xs:documentation>
690     </xs:annotation>
691     <xs:complexType>
692       <xs:attribute name="href" use="required" type="URI"/>
693       <xs:attribute name="id" type="xs:ID"/>
694     </xs:complexType>
695   </xs:element>
696
697   <xs:element name="meta">
698     <xs:annotation>
699       <xs:documentation>
700       generic metainformation
701       </xs:documentation>
702     </xs:annotation>
703     <xs:complexType>
704       <xs:attributeGroup ref="i18n"/>
705       <xs:attribute name="id" type="xs:ID"/>
706       <xs:attribute name="http-equiv"/>
707       <xs:attribute name="name"/>
708       <xs:attribute name="content" use="required"/>
709       <xs:attribute name="scheme"/>
710     </xs:complexType>
711   </xs:element>
712
713   <xs:element name="link">
714     <xs:annotation>
715       <xs:documentation>
716       Relationship values can be used in principle:
717
718       a) for document specific toolbars/menus when used
719          with the link element in document head e.g.
720            start, contents, previous, next, index, end, help
721       b) to link to a separate style sheet (rel="stylesheet")
722       c) to make a link to a script (rel="script")
723       d) by stylesheets to control how collections of
724          html nodes are rendered into printed documents
725       e) to make a link to a printable version of this document
726          e.g. a PostScript or PDF version (rel="alternate" media="print")
727       </xs:documentation>
728     </xs:annotation>
729     <xs:complexType>
730       <xs:attributeGroup ref="attrs"/>
731       <xs:attribute name="charset" type="Charset"/>
732       <xs:attribute name="href" type="URI"/>
733       <xs:attribute name="hreflang" type="LanguageCode"/>
734       <xs:attribute name="type" type="ContentType"/>
735       <xs:attribute name="rel" type="LinkTypes"/>
736       <xs:attribute name="rev" type="LinkTypes"/>
737       <xs:attribute name="media" type="MediaDesc"/>
738     </xs:complexType>
739   </xs:element>
740
741   <xs:element name="style">
742     <xs:annotation>
743       <xs:documentation>
744       style info, which may include CDATA sections
745       </xs:documentation>
746     </xs:annotation>
747     <xs:complexType mixed="true">
748       <xs:attributeGroup ref="i18n"/>
749       <xs:attribute name="id" type="xs:ID"/>
750       <xs:attribute name="type" use="required" type="ContentType"/>
751       <xs:attribute name="media" type="MediaDesc"/>
752       <xs:attribute name="title" type="Text"/>
753       <xs:attribute ref="xml:space" fixed="preserve"/>
754     </xs:complexType>
755   </xs:element>
756
757   <xs:element name="script">
758     <xs:annotation>
759       <xs:documentation>
760       script statements, which may include CDATA sections
761       </xs:documentation>
762     </xs:annotation>
763     <xs:complexType mixed="true">
764       <xs:attribute name="id" type="xs:ID"/>
765       <xs:attribute name="charset" type="Charset"/>
766       <xs:attribute name="type" use="required" type="ContentType"/>
767       <xs:attribute name="src" type="URI"/>
768       <xs:attribute name="defer">
769         <xs:simpleType>
770           <xs:restriction base="xs:token">
771             <xs:enumeration value="defer"/>
772           </xs:restriction>
773         </xs:simpleType>
774       </xs:attribute>
775       <xs:attribute ref="xml:space" fixed="preserve"/>
776     </xs:complexType>
777   </xs:element>
778
779   <xs:element name="noscript">
780     <xs:annotation>
781       <xs:documentation>
782       alternate content container for non script-based rendering
783       </xs:documentation>
784     </xs:annotation>
785     <xs:complexType>
786       <xs:complexContent>
787         <xs:extension base="Block">
788           <xs:attributeGroup ref="attrs"/>
789         </xs:extension>
790       </xs:complexContent>
791     </xs:complexType>
792   </xs:element>
793
794   <xs:annotation>
795     <xs:documentation>
796     =================== Document Body ====================================
797     </xs:documentation>
798   </xs:annotation>
799
800   <xs:element name="body">
801     <xs:complexType>
802       <xs:complexContent>
803         <xs:extension base="Block">
804           <xs:attributeGroup ref="attrs"/>
805           <xs:attribute name="onload" type="Script"/>
806           <xs:attribute name="onunload" type="Script"/>
807         </xs:extension>
808       </xs:complexContent>
809     </xs:complexType>
810   </xs:element>
811
812   <xs:element name="div">
813     <xs:annotation>
814       <xs:documentation>
815       generic language/style container      
816       </xs:documentation>
817     </xs:annotation>
818     <xs:complexType mixed="true">
819       <xs:complexContent>
820         <xs:extension base="Flow">
821           <xs:attributeGroup ref="attrs"/>
822         </xs:extension>
823       </xs:complexContent>
824     </xs:complexType>
825   </xs:element>
826
827   <xs:annotation>
828     <xs:documentation>
829     =================== Paragraphs =======================================
830     </xs:documentation>
831   </xs:annotation>
832
833   <xs:element name="p">
834     <xs:complexType mixed="true">
835       <xs:complexContent>
836         <xs:extension base="Inline">
837           <xs:attributeGroup ref="attrs"/>
838         </xs:extension>
839       </xs:complexContent>
840     </xs:complexType>
841   </xs:element>
842
843   <xs:annotation>
844     <xs:documentation>
845     =================== Headings =========================================
846
847     There are six levels of headings from h1 (the most important)
848     to h6 (the least important).
849     </xs:documentation>
850   </xs:annotation>
851
852   <xs:element name="h1">
853     <xs:complexType mixed="true">
854       <xs:complexContent>
855         <xs:extension base="Inline">
856           <xs:attributeGroup ref="attrs"/>
857         </xs:extension>
858       </xs:complexContent>
859     </xs:complexType>
860   </xs:element>
861
862   <xs:element name="h2">
863     <xs:complexType mixed="true">
864       <xs:complexContent>
865         <xs:extension base="Inline">
866           <xs:attributeGroup ref="attrs"/>
867         </xs:extension>
868       </xs:complexContent>
869     </xs:complexType>
870   </xs:element>
871
872   <xs:element name="h3">
873     <xs:complexType mixed="true">
874       <xs:complexContent>
875         <xs:extension base="Inline">
876           <xs:attributeGroup ref="attrs"/>
877         </xs:extension>
878       </xs:complexContent>
879     </xs:complexType>
880   </xs:element>
881
882   <xs:element name="h4">
883     <xs:complexType mixed="true">
884       <xs:complexContent>
885         <xs:extension base="Inline">
886           <xs:attributeGroup ref="attrs"/>
887         </xs:extension>
888       </xs:complexContent>
889     </xs:complexType>
890   </xs:element>
891
892   <xs:element name="h5">
893     <xs:complexType mixed="true">
894       <xs:complexContent>
895         <xs:extension base="Inline">
896           <xs:attributeGroup ref="attrs"/>
897         </xs:extension>
898       </xs:complexContent>
899     </xs:complexType>
900   </xs:element>
901
902   <xs:element name="h6">
903     <xs:complexType mixed="true">
904       <xs:complexContent>
905         <xs:extension base="Inline">
906           <xs:attributeGroup ref="attrs"/>
907         </xs:extension>
908       </xs:complexContent>
909     </xs:complexType>
910   </xs:element>
911
912   <xs:annotation>
913     <xs:documentation>
914     =================== Lists ============================================
915     </xs:documentation>
916   </xs:annotation>
917
918   <xs:element name="ul">
919     <xs:annotation>
920       <xs:documentation>
921       Unordered list
922       </xs:documentation>
923     </xs:annotation>
924     <xs:complexType>
925       <xs:sequence>
926         <xs:element maxOccurs="unbounded" ref="li"/>
927       </xs:sequence>
928       <xs:attributeGroup ref="attrs"/>
929     </xs:complexType>
930   </xs:element>
931
932   <xs:element name="ol">
933     <xs:annotation>
934       <xs:documentation>
935       Ordered (numbered) list
936       </xs:documentation>
937     </xs:annotation>
938     <xs:complexType>
939       <xs:sequence>
940         <xs:element maxOccurs="unbounded" ref="li"/>
941       </xs:sequence>
942       <xs:attributeGroup ref="attrs"/>
943     </xs:complexType>
944   </xs:element>
945
946   <xs:element name="li">
947     <xs:annotation>
948       <xs:documentation>
949       list item
950       </xs:documentation>
951     </xs:annotation>
952     <xs:complexType mixed="true">
953       <xs:complexContent>
954         <xs:extension base="Flow">
955           <xs:attributeGroup ref="attrs"/>
956         </xs:extension>
957       </xs:complexContent>
958     </xs:complexType>
959   </xs:element>
960
961   <xs:annotation>
962     <xs:documentation>
963     definition lists - dt for term, dd for its definition
964     </xs:documentation>
965   </xs:annotation>
966
967   <xs:element name="dl">
968     <xs:complexType>
969       <xs:choice maxOccurs="unbounded">
970         <xs:element ref="dt"/>
971         <xs:element ref="dd"/>
972       </xs:choice>
973       <xs:attributeGroup ref="attrs"/>
974     </xs:complexType>
975   </xs:element>
976
977   <xs:element name="dt">
978     <xs:complexType mixed="true">
979       <xs:complexContent>
980         <xs:extension base="Inline">
981           <xs:attributeGroup ref="attrs"/>
982         </xs:extension>
983       </xs:complexContent>
984     </xs:complexType>
985   </xs:element>
986
987   <xs:element name="dd">
988     <xs:complexType mixed="true">
989       <xs:complexContent>
990         <xs:extension base="Flow">
991           <xs:attributeGroup ref="attrs"/>
992         </xs:extension>
993       </xs:complexContent>
994     </xs:complexType>
995   </xs:element>
996
997   <xs:annotation>
998     <xs:documentation>
999     =================== Address ==========================================
1000     </xs:documentation>
1001   </xs:annotation>
1002
1003   <xs:element name="address">
1004     <xs:annotation>
1005       <xs:documentation>
1006       information on author
1007       </xs:documentation>
1008     </xs:annotation>
1009     <xs:complexType mixed="true">
1010       <xs:complexContent>
1011         <xs:extension base="Inline">
1012           <xs:attributeGroup ref="attrs"/>
1013         </xs:extension>
1014       </xs:complexContent>
1015     </xs:complexType>
1016   </xs:element>
1017
1018   <xs:annotation>
1019     <xs:documentation>
1020     =================== Horizontal Rule ==================================
1021     </xs:documentation>
1022   </xs:annotation>
1023
1024   <xs:element name="hr">
1025     <xs:complexType>
1026       <xs:attributeGroup ref="attrs"/>
1027     </xs:complexType>
1028   </xs:element>
1029
1030   <xs:annotation>
1031     <xs:documentation>
1032     =================== Preformatted Text ================================
1033     </xs:documentation>
1034   </xs:annotation>
1035
1036   <xs:element name="pre">
1037     <xs:annotation>
1038       <xs:documentation>
1039       content is "Inline" excluding "img|object|big|small|sub|sup"
1040       </xs:documentation>
1041     </xs:annotation>
1042     <xs:complexType mixed="true">
1043       <xs:complexContent>
1044         <xs:extension base="pre.content">
1045            <xs:attributeGroup ref="attrs"/>
1046            <xs:attribute ref="xml:space" fixed="preserve"/>
1047         </xs:extension>
1048       </xs:complexContent>
1049     </xs:complexType>
1050   </xs:element>
1051
1052   <xs:annotation>
1053     <xs:documentation>
1054     =================== Block-like Quotes ================================
1055     </xs:documentation>
1056   </xs:annotation>
1057
1058   <xs:element name="blockquote">
1059     <xs:complexType>
1060       <xs:complexContent>
1061         <xs:extension base="Block">
1062           <xs:attributeGroup ref="attrs"/>
1063           <xs:attribute name="cite" type="URI"/>
1064         </xs:extension>
1065       </xs:complexContent>
1066     </xs:complexType>
1067   </xs:element>
1068
1069   <xs:annotation>
1070     <xs:documentation>
1071     =================== Inserted/Deleted Text ============================
1072
1073     ins/del are allowed in block and inline content, but its
1074     inappropriate to include block content within an ins element
1075     occurring in inline content.
1076     </xs:documentation>
1077   </xs:annotation>
1078
1079   <xs:element name="ins">
1080     <xs:complexType mixed="true">
1081       <xs:complexContent>
1082         <xs:extension base="Flow">
1083           <xs:attributeGroup ref="attrs"/>
1084           <xs:attribute name="cite" type="URI"/>
1085           <xs:attribute name="datetime" type="Datetime"/>
1086         </xs:extension>
1087       </xs:complexContent>
1088     </xs:complexType>
1089   </xs:element>
1090
1091   <xs:element name="del">
1092     <xs:complexType mixed="true">
1093       <xs:complexContent>
1094         <xs:extension base="Flow">
1095           <xs:attributeGroup ref="attrs"/>
1096           <xs:attribute name="cite" type="URI"/>
1097           <xs:attribute name="datetime" type="Datetime"/>
1098         </xs:extension>
1099       </xs:complexContent>
1100     </xs:complexType>
1101   </xs:element>
1102
1103   <xs:annotation>
1104     <xs:documentation>
1105     ================== The Anchor Element ================================
1106     </xs:documentation>
1107   </xs:annotation>
1108
1109   <xs:element name="a">
1110     <xs:annotation>
1111       <xs:documentation>
1112       content is "Inline" except that anchors shouldn't be nested
1113       </xs:documentation>
1114     </xs:annotation>
1115     <xs:complexType mixed="true">
1116       <xs:complexContent>
1117         <xs:extension base="a.content">
1118           <xs:attributeGroup ref="attrs"/>
1119           <xs:attributeGroup ref="focus"/>
1120           <xs:attribute name="charset" type="Charset"/>
1121           <xs:attribute name="type" type="ContentType"/>
1122           <xs:attribute name="name" type="xs:NMTOKEN"/>
1123           <xs:attribute name="href" type="URI"/>
1124           <xs:attribute name="hreflang" type="LanguageCode"/>
1125           <xs:attribute name="rel" type="LinkTypes"/>
1126           <xs:attribute name="rev" type="LinkTypes"/>
1127           <xs:attribute name="shape" default="rect" type="Shape"/>
1128           <xs:attribute name="coords" type="Coords"/>
1129         </xs:extension>
1130       </xs:complexContent>
1131     </xs:complexType>
1132   </xs:element>
1133
1134   <xs:annotation>
1135     <xs:documentation>
1136     ===================== Inline Elements ================================
1137     </xs:documentation>
1138   </xs:annotation>
1139
1140   <xs:element name="span">
1141     <xs:annotation>
1142       <xs:documentation>
1143       generic language/style container
1144       </xs:documentation>
1145     </xs:annotation>
1146     <xs:complexType mixed="true">
1147       <xs:complexContent>
1148         <xs:extension base="Inline">
1149           <xs:attributeGroup ref="attrs"/>
1150         </xs:extension>
1151       </xs:complexContent>
1152     </xs:complexType>
1153   </xs:element>
1154
1155   <xs:element name="bdo">
1156     <xs:annotation>
1157       <xs:documentation>
1158       I18N BiDi over-ride
1159       </xs:documentation>
1160     </xs:annotation>
1161     <xs:complexType mixed="true">
1162       <xs:complexContent>
1163         <xs:extension base="Inline">
1164           <xs:attributeGroup ref="coreattrs"/>
1165           <xs:attributeGroup ref="events"/>
1166           <xs:attribute name="lang" type="LanguageCode"/>
1167           <xs:attribute ref="xml:lang"/>
1168           <xs:attribute name="dir" use="required">
1169             <xs:simpleType>
1170               <xs:restriction base="xs:token">
1171                 <xs:enumeration value="ltr"/>
1172                 <xs:enumeration value="rtl"/>
1173               </xs:restriction>
1174             </xs:simpleType>
1175           </xs:attribute>
1176         </xs:extension>
1177       </xs:complexContent>
1178     </xs:complexType>
1179   </xs:element>
1180
1181   <xs:element name="br">
1182     <xs:annotation>
1183       <xs:documentation>
1184       forced line break
1185       </xs:documentation>
1186     </xs:annotation>
1187     <xs:complexType>
1188       <xs:attributeGroup ref="coreattrs"/>
1189     </xs:complexType>
1190   </xs:element>
1191
1192   <xs:element name="em">
1193     <xs:annotation>
1194       <xs:documentation>
1195       emphasis
1196       </xs:documentation>
1197     </xs:annotation>
1198     <xs:complexType mixed="true">
1199       <xs:complexContent>
1200         <xs:extension base="Inline">
1201           <xs:attributeGroup ref="attrs"/>
1202         </xs:extension>
1203       </xs:complexContent>
1204     </xs:complexType>
1205   </xs:element>
1206
1207   <xs:element name="strong">
1208     <xs:annotation>
1209       <xs:documentation>
1210       strong emphasis
1211       </xs:documentation>
1212     </xs:annotation>
1213     <xs:complexType mixed="true">
1214       <xs:complexContent>
1215         <xs:extension base="Inline">
1216           <xs:attributeGroup ref="attrs"/>
1217         </xs:extension>
1218       </xs:complexContent>
1219     </xs:complexType>
1220   </xs:element>
1221
1222   <xs:element name="dfn">
1223     <xs:annotation>
1224       <xs:documentation>
1225       definitional
1226       </xs:documentation>
1227     </xs:annotation>
1228     <xs:complexType mixed="true">
1229       <xs:complexContent>
1230         <xs:extension base="Inline">
1231           <xs:attributeGroup ref="attrs"/>
1232         </xs:extension>
1233       </xs:complexContent>
1234     </xs:complexType>
1235   </xs:element>
1236
1237   <xs:element name="code">
1238     <xs:annotation>
1239       <xs:documentation>
1240       program code
1241       </xs:documentation>
1242     </xs:annotation>
1243     <xs:complexType mixed="true">
1244       <xs:complexContent>
1245         <xs:extension base="Inline">
1246           <xs:attributeGroup ref="attrs"/>
1247         </xs:extension>
1248       </xs:complexContent>
1249     </xs:complexType>
1250   </xs:element>
1251
1252   <xs:element name="samp">
1253     <xs:annotation>
1254       <xs:documentation>
1255       sample
1256       </xs:documentation>
1257     </xs:annotation>
1258     <xs:complexType mixed="true">
1259       <xs:complexContent>
1260         <xs:extension base="Inline">
1261           <xs:attributeGroup ref="attrs"/>
1262         </xs:extension>
1263       </xs:complexContent>
1264     </xs:complexType>
1265   </xs:element>
1266
1267   <xs:element name="kbd">
1268     <xs:annotation>
1269       <xs:documentation>
1270       something user would type
1271       </xs:documentation>
1272     </xs:annotation>
1273     <xs:complexType mixed="true">
1274       <xs:complexContent>
1275         <xs:extension base="Inline">
1276           <xs:attributeGroup ref="attrs"/>
1277         </xs:extension>
1278       </xs:complexContent>
1279     </xs:complexType>
1280   </xs:element>
1281
1282   <xs:element name="var">
1283     <xs:annotation>
1284       <xs:documentation>
1285       variable
1286       </xs:documentation>
1287     </xs:annotation>
1288     <xs:complexType mixed="true">
1289       <xs:complexContent>
1290         <xs:extension base="Inline">
1291           <xs:attributeGroup ref="attrs"/>
1292         </xs:extension>
1293       </xs:complexContent>
1294     </xs:complexType>
1295   </xs:element>
1296
1297   <xs:element name="cite">
1298     <xs:annotation>
1299       <xs:documentation>
1300       citation
1301       </xs:documentation>
1302     </xs:annotation>
1303     <xs:complexType mixed="true">
1304       <xs:complexContent>
1305         <xs:extension base="Inline">
1306           <xs:attributeGroup ref="attrs"/>
1307         </xs:extension>
1308       </xs:complexContent>
1309     </xs:complexType>
1310   </xs:element>
1311
1312   <xs:element name="abbr">
1313     <xs:annotation>
1314       <xs:documentation>
1315       abbreviation
1316       </xs:documentation>
1317     </xs:annotation>
1318     <xs:complexType mixed="true">
1319       <xs:complexContent>
1320         <xs:extension base="Inline">
1321           <xs:attributeGroup ref="attrs"/>
1322         </xs:extension>
1323       </xs:complexContent>
1324     </xs:complexType>
1325   </xs:element>
1326
1327   <xs:element name="acronym">
1328     <xs:annotation>
1329       <xs:documentation>
1330       acronym
1331       </xs:documentation>
1332     </xs:annotation>
1333     <xs:complexType mixed="true">
1334       <xs:complexContent>
1335         <xs:extension base="Inline">
1336           <xs:attributeGroup ref="attrs"/>
1337         </xs:extension>
1338       </xs:complexContent>
1339     </xs:complexType>
1340   </xs:element>
1341
1342   <xs:element name="q">
1343     <xs:annotation>
1344       <xs:documentation>
1345       inlined quote
1346       </xs:documentation>
1347     </xs:annotation>
1348     <xs:complexType mixed="true">
1349       <xs:complexContent>
1350         <xs:extension base="Inline">
1351           <xs:attributeGroup ref="attrs"/>
1352           <xs:attribute name="cite" type="URI"/>
1353         </xs:extension>
1354       </xs:complexContent>
1355     </xs:complexType>
1356   </xs:element>
1357
1358   <xs:element name="sub">
1359     <xs:annotation>
1360       <xs:documentation>
1361       subscript
1362       </xs:documentation>
1363     </xs:annotation>
1364     <xs:complexType mixed="true">
1365       <xs:complexContent>
1366         <xs:extension base="Inline">
1367           <xs:attributeGroup ref="attrs"/>
1368         </xs:extension>
1369       </xs:complexContent>
1370     </xs:complexType>
1371   </xs:element>
1372
1373   <xs:element name="sup">
1374     <xs:annotation>
1375       <xs:documentation>
1376       superscript
1377       </xs:documentation>
1378     </xs:annotation>
1379     <xs:complexType mixed="true">
1380       <xs:complexContent>
1381         <xs:extension base="Inline">
1382           <xs:attributeGroup ref="attrs"/>
1383         </xs:extension>
1384       </xs:complexContent>
1385     </xs:complexType>
1386   </xs:element>
1387
1388   <xs:element name="tt">
1389     <xs:annotation>
1390       <xs:documentation>
1391       fixed pitch font
1392       </xs:documentation>
1393     </xs:annotation>
1394     <xs:complexType mixed="true">
1395       <xs:complexContent>
1396         <xs:extension base="Inline">
1397           <xs:attributeGroup ref="attrs"/>
1398         </xs:extension>
1399       </xs:complexContent>
1400     </xs:complexType>
1401   </xs:element>
1402
1403   <xs:element name="i">
1404     <xs:annotation>
1405       <xs:documentation>
1406       italic font
1407       </xs:documentation>
1408     </xs:annotation>
1409     <xs:complexType mixed="true">
1410       <xs:complexContent>
1411         <xs:extension base="Inline">
1412           <xs:attributeGroup ref="attrs"/>
1413         </xs:extension>
1414       </xs:complexContent>
1415     </xs:complexType>
1416   </xs:element>
1417
1418   <xs:element name="b">
1419     <xs:annotation>
1420       <xs:documentation>
1421       bold font
1422       </xs:documentation>
1423     </xs:annotation>
1424     <xs:complexType mixed="true">
1425       <xs:complexContent>
1426         <xs:extension base="Inline">
1427           <xs:attributeGroup ref="attrs"/>
1428         </xs:extension>
1429       </xs:complexContent>
1430     </xs:complexType>
1431   </xs:element>
1432
1433   <xs:element name="big">
1434     <xs:annotation>
1435       <xs:documentation>
1436       bigger font
1437       </xs:documentation>
1438     </xs:annotation>
1439     <xs:complexType mixed="true">
1440       <xs:complexContent>
1441         <xs:extension base="Inline">
1442           <xs:attributeGroup ref="attrs"/>
1443         </xs:extension>
1444       </xs:complexContent>
1445     </xs:complexType>
1446   </xs:element>
1447
1448   <xs:element name="small">
1449     <xs:annotation>
1450       <xs:documentation>
1451       smaller font
1452       </xs:documentation>
1453     </xs:annotation>
1454     <xs:complexType mixed="true">
1455       <xs:complexContent>
1456         <xs:extension base="Inline">
1457           <xs:attributeGroup ref="attrs"/>
1458         </xs:extension>
1459       </xs:complexContent>
1460     </xs:complexType>
1461   </xs:element>
1462
1463   <xs:annotation>
1464     <xs:documentation>
1465     ==================== Object ======================================
1466
1467     object is used to embed objects as part of HTML pages.
1468     param elements should precede other content. Parameters
1469     can also be expressed as attribute/value pairs on the
1470     object element itself when brevity is desired.
1471     </xs:documentation>
1472   </xs:annotation>
1473
1474   <xs:element name="object">
1475     <xs:complexType mixed="true">
1476       <xs:choice minOccurs="0" maxOccurs="unbounded">
1477         <xs:element ref="param"/>
1478         <xs:group ref="block"/>
1479         <xs:element ref="form"/>
1480         <xs:group ref="inline"/>
1481         <xs:group ref="misc"/>
1482       </xs:choice>
1483       <xs:attributeGroup ref="attrs"/>
1484       <xs:attribute name="declare">
1485         <xs:simpleType>
1486           <xs:restriction base="xs:token">
1487             <xs:enumeration value="declare"/>
1488           </xs:restriction>
1489         </xs:simpleType>
1490       </xs:attribute>
1491       <xs:attribute name="classid" type="URI"/>
1492       <xs:attribute name="codebase" type="URI"/>
1493       <xs:attribute name="data" type="URI"/>
1494       <xs:attribute name="type" type="ContentType"/>
1495       <xs:attribute name="codetype" type="ContentType"/>
1496       <xs:attribute name="archive" type="UriList"/>
1497       <xs:attribute name="standby" type="Text"/>
1498       <xs:attribute name="height" type="Length"/>
1499       <xs:attribute name="width" type="Length"/>
1500       <xs:attribute name="usemap" type="URI"/>
1501       <xs:attribute name="name" type="xs:NMTOKEN"/>
1502       <xs:attribute name="tabindex" type="tabindexNumber"/>
1503     </xs:complexType>
1504   </xs:element>
1505
1506   <xs:element name="param">
1507     <xs:annotation>
1508       <xs:documentation>
1509       param is used to supply a named property value.
1510       In XML it would seem natural to follow RDF and support an
1511       abbreviated syntax where the param elements are replaced
1512       by attribute value pairs on the object start tag.
1513       </xs:documentation>
1514     </xs:annotation>
1515     <xs:complexType>
1516       <xs:attribute name="id" type="xs:ID"/>
1517       <xs:attribute name="name"/>
1518       <xs:attribute name="value"/>
1519       <xs:attribute name="valuetype" default="data">
1520         <xs:simpleType>
1521           <xs:restriction base="xs:token">
1522             <xs:enumeration value="data"/>
1523             <xs:enumeration value="ref"/>
1524             <xs:enumeration value="object"/>
1525           </xs:restriction>
1526         </xs:simpleType>
1527       </xs:attribute>
1528       <xs:attribute name="type" type="ContentType"/>
1529     </xs:complexType>
1530   </xs:element>
1531
1532   <xs:annotation>
1533     <xs:documentation>
1534     =================== Images ===========================================
1535
1536     To avoid accessibility problems for people who aren't
1537     able to see the image, you should provide a text
1538     description using the alt and longdesc attributes.
1539     In addition, avoid the use of server-side image maps.
1540     Note that in this DTD there is no name attribute. That
1541     is only available in the transitional and frameset DTD.
1542     </xs:documentation>
1543   </xs:annotation>
1544
1545   <xs:element name="img">
1546     <xs:complexType>
1547       <xs:attributeGroup ref="attrs"/>
1548       <xs:attribute name="src" use="required" type="URI"/>
1549       <xs:attribute name="alt" use="required" type="Text"/>
1550       <xs:attribute name="longdesc" type="URI"/>
1551       <xs:attribute name="height" type="Length"/>
1552       <xs:attribute name="width" type="Length"/>
1553       <xs:attribute name="usemap" type="URI">
1554         <xs:annotation>
1555           <xs:documentation>
1556           usemap points to a map element which may be in this document
1557           or an external document, although the latter is not widely supported
1558           </xs:documentation>
1559         </xs:annotation>
1560       </xs:attribute>
1561       <xs:attribute name="ismap">
1562         <xs:simpleType>
1563           <xs:restriction base="xs:token">
1564             <xs:enumeration value="ismap"/>
1565           </xs:restriction>
1566         </xs:simpleType>
1567       </xs:attribute>
1568     </xs:complexType>
1569   </xs:element>
1570
1571   <xs:annotation>
1572     <xs:documentation>
1573     ================== Client-side image maps ============================
1574
1575     These can be placed in the same document or grouped in a
1576     separate document although this isn't yet widely supported
1577     </xs:documentation>
1578   </xs:annotation>
1579
1580   <xs:element name="map">
1581     <xs:complexType>
1582       <xs:choice>
1583         <xs:choice maxOccurs="unbounded">
1584           <xs:group ref="block"/>
1585           <xs:element ref="form"/>
1586           <xs:group ref="misc"/>
1587         </xs:choice>
1588         <xs:element maxOccurs="unbounded" ref="area"/>
1589       </xs:choice>
1590       <xs:attributeGroup ref="i18n"/>
1591       <xs:attributeGroup ref="events"/>
1592       <xs:attribute name="id" use="required" type="xs:ID"/>
1593       <xs:attribute name="class"/>
1594       <xs:attribute name="style" type="StyleSheet"/>
1595       <xs:attribute name="title" type="Text"/>
1596       <xs:attribute name="name" type="xs:NMTOKEN"/>
1597     </xs:complexType>
1598   </xs:element>
1599
1600   <xs:element name="area">
1601     <xs:complexType>
1602         <xs:attributeGroup ref="attrs"/>
1603       <xs:attributeGroup ref="focus"/>
1604       <xs:attribute name="shape" default="rect" type="Shape"/>
1605       <xs:attribute name="coords" type="Coords"/>
1606       <xs:attribute name="href" type="URI"/>
1607       <xs:attribute name="nohref">
1608         <xs:simpleType>
1609           <xs:restriction base="xs:token">
1610             <xs:enumeration value="nohref"/>
1611           </xs:restriction>
1612         </xs:simpleType>
1613       </xs:attribute>
1614       <xs:attribute name="alt" use="required" type="Text"/>
1615     </xs:complexType>
1616   </xs:element>
1617
1618   <xs:annotation>
1619     <xs:documentation>
1620     ================ Forms ===============================================
1621     </xs:documentation>
1622   </xs:annotation>
1623
1624   <xs:element name="form">
1625     <xs:complexType>
1626       <xs:complexContent>
1627         <xs:extension base="form.content">
1628           <xs:attributeGroup ref="attrs"/>
1629           <xs:attribute name="action" use="required" type="URI"/>
1630           <xs:attribute name="method" default="get">
1631             <xs:simpleType>
1632               <xs:restriction base="xs:token">
1633                 <xs:enumeration value="get"/>
1634                 <xs:enumeration value="post"/>
1635               </xs:restriction>
1636             </xs:simpleType>
1637           </xs:attribute>
1638           <xs:attribute name="enctype" type="ContentType"
1639               default="application/x-www-form-urlencoded"/>
1640           <xs:attribute name="onsubmit" type="Script"/>
1641           <xs:attribute name="onreset" type="Script"/>
1642           <xs:attribute name="accept" type="ContentTypes"/>
1643           <xs:attribute name="accept-charset" type="Charsets"/>
1644         </xs:extension>
1645       </xs:complexContent>
1646     </xs:complexType>
1647   </xs:element>
1648
1649   <xs:element name="label">
1650     <xs:annotation>
1651       <xs:documentation>
1652       Each label must not contain more than ONE field
1653       Label elements shouldn't be nested.
1654       </xs:documentation>
1655     </xs:annotation>
1656     <xs:complexType mixed="true">
1657       <xs:complexContent>
1658         <xs:extension base="Inline">
1659           <xs:attributeGroup ref="attrs"/>
1660           <xs:attribute name="for" type="xs:IDREF"/>
1661           <xs:attribute name="accesskey" type="Character"/>
1662           <xs:attribute name="onfocus" type="Script"/>
1663           <xs:attribute name="onblur" type="Script"/>
1664         </xs:extension>
1665       </xs:complexContent>
1666     </xs:complexType>
1667   </xs:element>
1668
1669   <xs:simpleType name="InputType">
1670     <xs:restriction base="xs:token">
1671       <xs:enumeration value="text"/>
1672       <xs:enumeration value="password"/>
1673       <xs:enumeration value="checkbox"/>
1674       <xs:enumeration value="radio"/>
1675       <xs:enumeration value="submit"/>
1676       <xs:enumeration value="reset"/>
1677       <xs:enumeration value="file"/>
1678       <xs:enumeration value="hidden"/>
1679       <xs:enumeration value="image"/>
1680       <xs:enumeration value="button"/>
1681     </xs:restriction>
1682   </xs:simpleType>
1683
1684   <xs:element name="input">
1685     <xs:annotation>
1686       <xs:documentation>
1687       form control
1688       </xs:documentation>
1689     </xs:annotation>
1690     <xs:complexType>
1691       <xs:attributeGroup ref="attrs"/>
1692       <xs:attributeGroup ref="focus"/>
1693       <xs:attribute name="type" default="text" type="InputType"/>
1694       <xs:attribute name="name">
1695         <xs:annotation>
1696           <xs:documentation>
1697           the name attribute is required for all but submit &amp; reset
1698           </xs:documentation>
1699         </xs:annotation>
1700       </xs:attribute>
1701       <xs:attribute name="value"/>
1702       <xs:attribute name="checked">
1703         <xs:simpleType>
1704           <xs:restriction base="xs:token">
1705             <xs:enumeration value="checked"/>
1706           </xs:restriction>
1707         </xs:simpleType>
1708       </xs:attribute>
1709       <xs:attribute name="disabled">
1710         <xs:simpleType>
1711           <xs:restriction base="xs:token">
1712             <xs:enumeration value="disabled"/>
1713           </xs:restriction>
1714         </xs:simpleType>
1715       </xs:attribute>
1716       <xs:attribute name="readonly">
1717         <xs:simpleType>
1718           <xs:restriction base="xs:token">
1719             <xs:enumeration value="readonly"/>
1720           </xs:restriction>
1721         </xs:simpleType>
1722       </xs:attribute>
1723       <xs:attribute name="size"/>
1724       <xs:attribute name="maxlength" type="Number"/>
1725       <xs:attribute name="src" type="URI"/>
1726       <xs:attribute name="alt"/>
1727       <xs:attribute name="usemap" type="URI"/>
1728       <xs:attribute name="onselect" type="Script"/>
1729       <xs:attribute name="onchange" type="Script"/>
1730       <xs:attribute name="accept" type="ContentTypes"/>
1731     </xs:complexType>
1732   </xs:element>
1733
1734   <xs:element name="select">
1735     <xs:annotation>
1736       <xs:documentation>
1737       option selector
1738       </xs:documentation>
1739     </xs:annotation>
1740     <xs:complexType>
1741       <xs:choice maxOccurs="unbounded">
1742         <xs:element ref="optgroup"/>
1743         <xs:element ref="option"/>
1744       </xs:choice>
1745       <xs:attributeGroup ref="attrs"/>
1746       <xs:attribute name="name"/>
1747       <xs:attribute name="size" type="Number"/>
1748       <xs:attribute name="multiple">
1749         <xs:simpleType>
1750           <xs:restriction base="xs:token">
1751             <xs:enumeration value="multiple"/>
1752           </xs:restriction>
1753         </xs:simpleType>
1754       </xs:attribute>
1755       <xs:attribute name="disabled">
1756         <xs:simpleType>
1757           <xs:restriction base="xs:token">
1758             <xs:enumeration value="disabled"/>
1759           </xs:restriction>
1760         </xs:simpleType>
1761       </xs:attribute>
1762       <xs:attribute name="tabindex" type="tabindexNumber"/>
1763       <xs:attribute name="onfocus" type="Script"/>
1764       <xs:attribute name="onblur" type="Script"/>
1765       <xs:attribute name="onchange" type="Script"/>
1766     </xs:complexType>
1767   </xs:element>
1768
1769   <xs:element name="optgroup">
1770     <xs:annotation>
1771       <xs:documentation>
1772       option group
1773       </xs:documentation>
1774     </xs:annotation>
1775     <xs:complexType>
1776       <xs:sequence>
1777         <xs:element maxOccurs="unbounded" ref="option"/>
1778       </xs:sequence>
1779       <xs:attributeGroup ref="attrs"/>
1780       <xs:attribute name="disabled">
1781         <xs:simpleType>
1782           <xs:restriction base="xs:token">
1783             <xs:enumeration value="disabled"/>
1784           </xs:restriction>
1785         </xs:simpleType>
1786       </xs:attribute>
1787       <xs:attribute name="label" use="required" type="Text"/>
1788     </xs:complexType>
1789   </xs:element>
1790
1791   <xs:element name="option">
1792     <xs:annotation>
1793       <xs:documentation>
1794       selectable choice
1795       </xs:documentation>
1796     </xs:annotation>
1797     <xs:complexType mixed="true">
1798       <xs:attributeGroup ref="attrs"/>
1799       <xs:attribute name="selected">
1800         <xs:simpleType>
1801           <xs:restriction base="xs:token">
1802             <xs:enumeration value="selected"/>
1803           </xs:restriction>
1804         </xs:simpleType>
1805       </xs:attribute>
1806       <xs:attribute name="disabled">
1807         <xs:simpleType>
1808           <xs:restriction base="xs:token">
1809             <xs:enumeration value="disabled"/>
1810           </xs:restriction>
1811         </xs:simpleType>
1812       </xs:attribute>
1813       <xs:attribute name="label" type="Text"/>
1814       <xs:attribute name="value"/>
1815     </xs:complexType>
1816   </xs:element>
1817
1818   <xs:element name="textarea">
1819     <xs:annotation>
1820       <xs:documentation>
1821       multi-line text field
1822       </xs:documentation>
1823     </xs:annotation>
1824     <xs:complexType mixed="true">
1825       <xs:attributeGroup ref="attrs"/>
1826       <xs:attributeGroup ref="focus"/>
1827       <xs:attribute name="name"/>
1828       <xs:attribute name="rows" use="required" type="Number"/>
1829       <xs:attribute name="cols" use="required" type="Number"/>
1830       <xs:attribute name="disabled">
1831         <xs:simpleType>
1832           <xs:restriction base="xs:token">
1833             <xs:enumeration value="disabled"/>
1834           </xs:restriction>
1835         </xs:simpleType>
1836       </xs:attribute>
1837       <xs:attribute name="readonly">
1838         <xs:simpleType>
1839           <xs:restriction base="xs:token">
1840             <xs:enumeration value="readonly"/>
1841           </xs:restriction>
1842         </xs:simpleType>
1843       </xs:attribute>
1844       <xs:attribute name="onselect" type="Script"/>
1845       <xs:attribute name="onchange" type="Script"/>
1846     </xs:complexType>
1847   </xs:element>
1848
1849   <xs:element name="fieldset">
1850     <xs:annotation>
1851       <xs:documentation>
1852       The fieldset element is used to group form fields.
1853       Only one legend element should occur in the content
1854       and if present should only be preceded by whitespace.
1855
1856       NOTE: this content model is different from the XHTML 1.0 DTD,
1857       closer to the intended content model in HTML4 DTD
1858       </xs:documentation>
1859     </xs:annotation>
1860     <xs:complexType mixed="true">
1861       <xs:sequence>
1862         <xs:element ref="legend"/>
1863         <xs:choice minOccurs="0" maxOccurs="unbounded">
1864           <xs:group ref="block"/>
1865           <xs:element ref="form"/>
1866           <xs:group ref="inline"/>
1867           <xs:group ref="misc"/>
1868         </xs:choice>
1869       </xs:sequence>
1870       <xs:attributeGroup ref="attrs"/>
1871     </xs:complexType>
1872   </xs:element>
1873
1874   <xs:element name="legend">
1875     <xs:annotation>
1876       <xs:documentation>
1877       fieldset label
1878       </xs:documentation>
1879     </xs:annotation>
1880     <xs:complexType mixed="true">
1881       <xs:complexContent>
1882         <xs:extension base="Inline">
1883           <xs:attributeGroup ref="attrs"/>
1884           <xs:attribute name="accesskey" type="Character"/>
1885         </xs:extension>
1886       </xs:complexContent>
1887     </xs:complexType>
1888   </xs:element>
1889
1890   <xs:element name="button">
1891     <xs:annotation>
1892       <xs:documentation>
1893       Content is "Flow" excluding a, form and form controls
1894       </xs:documentation>
1895     </xs:annotation>
1896     <xs:complexType mixed="true">
1897       <xs:complexContent>
1898         <xs:extension base="button.content">
1899           <xs:attributeGroup ref="attrs"/>
1900           <xs:attributeGroup ref="focus"/>
1901           <xs:attribute name="name"/>
1902           <xs:attribute name="value"/>
1903           <xs:attribute name="type" default="submit">
1904             <xs:simpleType>
1905               <xs:restriction base="xs:token">
1906                 <xs:enumeration value="button"/>
1907                 <xs:enumeration value="submit"/>
1908                 <xs:enumeration value="reset"/>
1909               </xs:restriction>
1910             </xs:simpleType>
1911           </xs:attribute>
1912           <xs:attribute name="disabled">
1913             <xs:simpleType>
1914               <xs:restriction base="xs:token">
1915                 <xs:enumeration value="disabled"/>
1916               </xs:restriction>
1917             </xs:simpleType>
1918           </xs:attribute>
1919         </xs:extension>
1920       </xs:complexContent>
1921     </xs:complexType>
1922   </xs:element>
1923
1924   <xs:annotation>
1925     <xs:documentation>
1926     ======================= Tables =======================================
1927
1928     Derived from IETF HTML table standard, see [RFC1942]
1929     </xs:documentation>
1930   </xs:annotation>
1931
1932   <xs:simpleType name="TFrame">
1933     <xs:annotation>
1934       <xs:documentation>
1935       The border attribute sets the thickness of the frame around the
1936       table. The default units are screen pixels.
1937
1938       The frame attribute specifies which parts of the frame around
1939       the table should be rendered. The values are not the same as
1940       CALS to avoid a name clash with the valign attribute.
1941       </xs:documentation>
1942     </xs:annotation>
1943     <xs:restriction base="xs:token">
1944       <xs:enumeration value="void"/>
1945       <xs:enumeration value="above"/>
1946       <xs:enumeration value="below"/>
1947       <xs:enumeration value="hsides"/>
1948       <xs:enumeration value="lhs"/>
1949       <xs:enumeration value="rhs"/>
1950       <xs:enumeration value="vsides"/>
1951       <xs:enumeration value="box"/>
1952       <xs:enumeration value="border"/>
1953     </xs:restriction>
1954   </xs:simpleType>
1955
1956   <xs:simpleType name="TRules">
1957     <xs:annotation>
1958       <xs:documentation>
1959       The rules attribute defines which rules to draw between cells:
1960
1961       If rules is absent then assume:
1962           "none" if border is absent or border="0" otherwise "all"
1963       </xs:documentation>
1964     </xs:annotation>
1965     <xs:restriction base="xs:token">
1966       <xs:enumeration value="none"/>
1967       <xs:enumeration value="groups"/>
1968       <xs:enumeration value="rows"/>
1969       <xs:enumeration value="cols"/>
1970       <xs:enumeration value="all"/>
1971     </xs:restriction>
1972   </xs:simpleType>
1973
1974   <xs:attributeGroup name="cellhalign">
1975     <xs:annotation>
1976       <xs:documentation>
1977       horizontal alignment attributes for cell contents
1978
1979       char        alignment char, e.g. char=':'
1980       charoff     offset for alignment char
1981       </xs:documentation>
1982     </xs:annotation>
1983     <xs:attribute name="align">
1984       <xs:simpleType>
1985         <xs:restriction base="xs:token">
1986           <xs:enumeration value="left"/>
1987           <xs:enumeration value="center"/>
1988           <xs:enumeration value="right"/>
1989           <xs:enumeration value="justify"/>
1990           <xs:enumeration value="char"/>
1991         </xs:restriction>
1992       </xs:simpleType>
1993     </xs:attribute>
1994     <xs:attribute name="char" type="Character"/>
1995     <xs:attribute name="charoff" type="Length"/>
1996   </xs:attributeGroup>
1997
1998   <xs:attributeGroup name="cellvalign">
1999     <xs:annotation>
2000       <xs:documentation>
2001       vertical alignment attributes for cell contents
2002       </xs:documentation>
2003     </xs:annotation>
2004     <xs:attribute name="valign">
2005       <xs:simpleType>
2006         <xs:restriction base="xs:token">
2007           <xs:enumeration value="top"/>
2008           <xs:enumeration value="middle"/>
2009           <xs:enumeration value="bottom"/>
2010           <xs:enumeration value="baseline"/>
2011         </xs:restriction>
2012       </xs:simpleType>
2013     </xs:attribute>
2014   </xs:attributeGroup>
2015
2016   <xs:element name="table">
2017     <xs:complexType>
2018       <xs:sequence>
2019         <xs:element minOccurs="0" ref="caption"/>
2020         <xs:choice>
2021           <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
2022           <xs:element minOccurs="0" maxOccurs="unbounded" ref="colgroup"/>
2023         </xs:choice>
2024         <xs:element minOccurs="0" ref="thead"/>
2025         <xs:element minOccurs="0" ref="tfoot"/>
2026         <xs:choice>
2027           <xs:element maxOccurs="unbounded" ref="tbody"/>
2028           <xs:element maxOccurs="unbounded" ref="tr"/>
2029         </xs:choice>
2030       </xs:sequence>
2031       <xs:attributeGroup ref="attrs"/>
2032       <xs:attribute name="summary" type="Text"/>
2033       <xs:attribute name="width" type="Length"/>
2034       <xs:attribute name="border" type="Pixels"/>
2035       <xs:attribute name="frame" type="TFrame"/>
2036       <xs:attribute name="rules" type="TRules"/>
2037       <xs:attribute name="cellspacing" type="Length"/>
2038       <xs:attribute name="cellpadding" type="Length"/>
2039     </xs:complexType>
2040   </xs:element>
2041
2042   <xs:element name="caption">
2043     <xs:complexType mixed="true">
2044       <xs:complexContent>
2045         <xs:extension base="Inline">
2046           <xs:attributeGroup ref="attrs"/>
2047         </xs:extension>
2048       </xs:complexContent>
2049     </xs:complexType>
2050   </xs:element>
2051
2052   <xs:annotation>
2053     <xs:documentation>
2054     Use thead to duplicate headers when breaking table
2055     across page boundaries, or for static headers when
2056     tbody sections are rendered in scrolling panel.
2057
2058     Use tfoot to duplicate footers when breaking table
2059     across page boundaries, or for static footers when
2060     tbody sections are rendered in scrolling panel.
2061
2062     Use multiple tbody sections when rules are needed
2063     between groups of table rows.
2064     </xs:documentation>
2065   </xs:annotation>
2066
2067   <xs:element name="thead">
2068     <xs:complexType>
2069       <xs:sequence>
2070         <xs:element maxOccurs="unbounded" ref="tr"/>
2071       </xs:sequence>
2072       <xs:attributeGroup ref="attrs"/>
2073       <xs:attributeGroup ref="cellhalign"/>
2074       <xs:attributeGroup ref="cellvalign"/>
2075     </xs:complexType>
2076   </xs:element>
2077
2078   <xs:element name="tfoot">
2079     <xs:complexType>
2080       <xs:sequence>
2081         <xs:element maxOccurs="unbounded" ref="tr"/>
2082       </xs:sequence>
2083       <xs:attributeGroup ref="attrs"/>
2084       <xs:attributeGroup ref="cellhalign"/>
2085       <xs:attributeGroup ref="cellvalign"/>
2086     </xs:complexType>
2087   </xs:element>
2088
2089   <xs:element name="tbody">
2090     <xs:complexType>
2091       <xs:sequence>
2092         <xs:element maxOccurs="unbounded" ref="tr"/>
2093       </xs:sequence>
2094       <xs:attributeGroup ref="attrs"/>
2095       <xs:attributeGroup ref="cellhalign"/>
2096       <xs:attributeGroup ref="cellvalign"/>
2097     </xs:complexType>
2098   </xs:element>
2099
2100   <xs:element name="colgroup">
2101     <xs:annotation>
2102       <xs:documentation>
2103       colgroup groups a set of col elements. It allows you to group
2104       several semantically related columns together.
2105       </xs:documentation>
2106     </xs:annotation>
2107     <xs:complexType>
2108       <xs:sequence>
2109         <xs:element minOccurs="0" maxOccurs="unbounded" ref="col"/>
2110       </xs:sequence>
2111       <xs:attributeGroup ref="attrs"/>
2112       <xs:attribute name="span" default="1" type="Number"/>
2113       <xs:attribute name="width" type="MultiLength"/>
2114       <xs:attributeGroup ref="cellhalign"/>
2115       <xs:attributeGroup ref="cellvalign"/>
2116     </xs:complexType>
2117   </xs:element>
2118
2119   <xs:element name="col">
2120     <xs:annotation>
2121       <xs:documentation>
2122       col elements define the alignment properties for cells in
2123       one or more columns.
2124
2125       The width attribute specifies the width of the columns, e.g.
2126
2127           width=64        width in screen pixels
2128           width=0.5*      relative width of 0.5
2129
2130       The span attribute causes the attributes of one
2131       col element to apply to more than one column.
2132       </xs:documentation>
2133     </xs:annotation>
2134     <xs:complexType>
2135       <xs:attributeGroup ref="attrs"/>
2136       <xs:attribute name="span" default="1" type="Number"/>
2137       <xs:attribute name="width" type="MultiLength"/>
2138       <xs:attributeGroup ref="cellhalign"/>
2139       <xs:attributeGroup ref="cellvalign"/>
2140     </xs:complexType>
2141   </xs:element>
2142
2143   <xs:element name="tr">
2144     <xs:complexType>
2145       <xs:choice maxOccurs="unbounded">
2146         <xs:element ref="th"/>
2147         <xs:element ref="td"/>
2148       </xs:choice>
2149       <xs:attributeGroup ref="attrs"/>
2150       <xs:attributeGroup ref="cellhalign"/>
2151       <xs:attributeGroup ref="cellvalign"/>
2152     </xs:complexType>
2153   </xs:element>
2154
2155   <xs:simpleType name="Scope">
2156     <xs:annotation>
2157       <xs:documentation>
2158       Scope is simpler than headers attribute for common tables
2159       </xs:documentation>
2160     </xs:annotation>
2161     <xs:restriction base="xs:token">
2162       <xs:enumeration value="row"/>
2163       <xs:enumeration value="col"/>
2164       <xs:enumeration value="rowgroup"/>
2165       <xs:enumeration value="colgroup"/>
2166     </xs:restriction>
2167   </xs:simpleType>
2168
2169   <xs:annotation>
2170     <xs:documentation>
2171     th is for headers, td for data and for cells acting as both
2172     </xs:documentation>
2173   </xs:annotation>
2174
2175   <xs:element name="th">
2176     <xs:complexType mixed="true">
2177       <xs:complexContent>
2178         <xs:extension base="Flow">
2179           <xs:attributeGroup ref="attrs"/>
2180           <xs:attribute name="abbr" type="Text"/>
2181           <xs:attribute name="axis"/>
2182           <xs:attribute name="headers" type="xs:IDREFS"/>
2183           <xs:attribute name="scope" type="Scope"/>
2184           <xs:attribute name="rowspan" default="1" type="Number"/>
2185           <xs:attribute name="colspan" default="1" type="Number"/>
2186           <xs:attributeGroup ref="cellhalign"/>
2187           <xs:attributeGroup ref="cellvalign"/>
2188         </xs:extension>
2189       </xs:complexContent>
2190     </xs:complexType>
2191   </xs:element>
2192
2193   <xs:element name="td">
2194     <xs:complexType mixed="true">
2195       <xs:complexContent>
2196         <xs:extension base="Flow">
2197           <xs:attributeGroup ref="attrs"/>
2198           <xs:attribute name="abbr" type="Text"/>
2199           <xs:attribute name="axis"/>
2200           <xs:attribute name="headers" type="xs:IDREFS"/>
2201           <xs:attribute name="scope" type="Scope"/>
2202           <xs:attribute name="rowspan" default="1" type="Number"/>
2203           <xs:attribute name="colspan" default="1" type="Number"/>
2204           <xs:attributeGroup ref="cellhalign"/>
2205           <xs:attributeGroup ref="cellvalign"/>
2206         </xs:extension>
2207       </xs:complexContent>
2208     </xs:complexType>
2209   </xs:element>
2210
2211 </xs:schema>