1 <!-- ....................................................................... --> |
|
2 <!-- XHTML 1.1 Document Model Module ...................................... --> |
|
3 <!-- file: xhtml11-model-1.mod |
|
4 |
|
5 This is XHTML 1.1, a reformulation of HTML as a modular XML application. |
|
6 Copyright 1998-2001 W3C (MIT, INRIA, Keio), All Rights Reserved. |
|
7 Revision: $Id: xhtml11-model-1.mod,v 1.1 2004-02-23 16:11:21 ylafon Exp $ SMI |
|
8 |
|
9 This DTD module is identified by the PUBLIC and SYSTEM identifiers: |
|
10 |
|
11 PUBLIC "-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN" |
|
12 SYSTEM "http://www.w3.org/TR/xhtml11/DTD/xhtml11-model-1.mod" |
|
13 |
|
14 Revisions: |
|
15 (none) |
|
16 ....................................................................... --> |
|
17 |
|
18 <!-- XHTML 1.1 Document Model |
|
19 |
|
20 This module describes the groupings of elements that make up |
|
21 common content models for XHTML elements. |
|
22 |
|
23 XHTML has three basic content models: |
|
24 |
|
25 %Inline.mix; character-level elements |
|
26 %Block.mix; block-like elements, eg., paragraphs and lists |
|
27 %Flow.mix; any block or inline elements |
|
28 |
|
29 Any parameter entities declared in this module may be used |
|
30 to create element content models, but the above three are |
|
31 considered 'global' (insofar as that term applies here). |
|
32 |
|
33 The reserved word '#PCDATA' (indicating a text string) is now |
|
34 included explicitly with each element declaration that is |
|
35 declared as mixed content, as XML requires that this token |
|
36 occur first in a content model specification. |
|
37 --> |
|
38 <!-- Extending the Model |
|
39 |
|
40 While in some cases this module may need to be rewritten to |
|
41 accommodate changes to the document model, minor extensions |
|
42 may be accomplished by redeclaring any of the three *.extra; |
|
43 parameter entities to contain extension element types as follows: |
|
44 |
|
45 %Misc.extra; whose parent may be any block or |
|
46 inline element. |
|
47 |
|
48 %Inline.extra; whose parent may be any inline element. |
|
49 |
|
50 %Block.extra; whose parent may be any block element. |
|
51 |
|
52 If used, these parameter entities must be an OR-separated |
|
53 list beginning with an OR separator ("|"), eg., "| a | b | c" |
|
54 |
|
55 All block and inline *.class parameter entities not part |
|
56 of the *struct.class classes begin with "| " to allow for |
|
57 exclusion from mixes. |
|
58 --> |
|
59 |
|
60 <!-- .............. Optional Elements in head .................. --> |
|
61 |
|
62 <!ENTITY % HeadOpts.mix |
|
63 "( %script.qname; | %style.qname; | %meta.qname; |
|
64 | %link.qname; | %object.qname; )*" |
|
65 > |
|
66 |
|
67 <!-- ................. Miscellaneous Elements .................. --> |
|
68 |
|
69 <!-- ins and del are used to denote editing changes |
|
70 --> |
|
71 <!ENTITY % Edit.class "| %ins.qname; | %del.qname;" > |
|
72 |
|
73 <!-- script and noscript are used to contain scripts |
|
74 and alternative content |
|
75 --> |
|
76 <!ENTITY % Script.class "| %script.qname; | %noscript.qname;" > |
|
77 |
|
78 <!ENTITY % Misc.extra "" > |
|
79 |
|
80 <!-- These elements are neither block nor inline, and can |
|
81 essentially be used anywhere in the document body. |
|
82 --> |
|
83 <!ENTITY % Misc.class |
|
84 "%Edit.class; |
|
85 %Script.class; |
|
86 %Misc.extra;" |
|
87 > |
|
88 |
|
89 <!-- .................... Inline Elements ...................... --> |
|
90 |
|
91 <!ENTITY % InlStruct.class "%br.qname; | %span.qname;" > |
|
92 |
|
93 <!ENTITY % InlPhras.class |
|
94 "| %em.qname; | %strong.qname; | %dfn.qname; | %code.qname; |
|
95 | %samp.qname; | %kbd.qname; | %var.qname; | %cite.qname; |
|
96 | %abbr.qname; | %acronym.qname; | %q.qname;" > |
|
97 |
|
98 <!ENTITY % InlPres.class |
|
99 "| %tt.qname; | %i.qname; | %b.qname; | %big.qname; |
|
100 | %small.qname; | %sub.qname; | %sup.qname;" > |
|
101 |
|
102 <!ENTITY % I18n.class "| %bdo.qname;" > |
|
103 |
|
104 <!ENTITY % Anchor.class "| %a.qname;" > |
|
105 |
|
106 <!ENTITY % InlSpecial.class |
|
107 "| %img.qname; | %map.qname; |
|
108 | %object.qname;" > |
|
109 |
|
110 <!ENTITY % InlForm.class |
|
111 "| %input.qname; | %select.qname; | %textarea.qname; |
|
112 | %label.qname; | %button.qname;" > |
|
113 |
|
114 <!ENTITY % Inline.extra "" > |
|
115 |
|
116 <!ENTITY % Ruby.class "| %ruby.qname;" > |
|
117 |
|
118 <!-- %Inline.class; includes all inline elements, |
|
119 used as a component in mixes |
|
120 --> |
|
121 <!ENTITY % Inline.class |
|
122 "%InlStruct.class; |
|
123 %InlPhras.class; |
|
124 %InlPres.class; |
|
125 %I18n.class; |
|
126 %Anchor.class; |
|
127 %InlSpecial.class; |
|
128 %InlForm.class; |
|
129 %Ruby.class; |
|
130 %Inline.extra;" |
|
131 > |
|
132 |
|
133 <!-- %InlNoRuby.class; includes all inline elements |
|
134 except ruby, used as a component in mixes |
|
135 --> |
|
136 <!ENTITY % InlNoRuby.class |
|
137 "%InlStruct.class; |
|
138 %InlPhras.class; |
|
139 %InlPres.class; |
|
140 %I18n.class; |
|
141 %Anchor.class; |
|
142 %InlSpecial.class; |
|
143 %InlForm.class; |
|
144 %Inline.extra;" |
|
145 > |
|
146 |
|
147 <!-- %NoRuby.content; includes all inlines except ruby |
|
148 --> |
|
149 <!ENTITY % NoRuby.content |
|
150 "( #PCDATA |
|
151 | %InlNoRuby.class; |
|
152 %Misc.class; )*" |
|
153 > |
|
154 |
|
155 <!-- %InlNoAnchor.class; includes all non-anchor inlines, |
|
156 used as a component in mixes |
|
157 --> |
|
158 <!ENTITY % InlNoAnchor.class |
|
159 "%InlStruct.class; |
|
160 %InlPhras.class; |
|
161 %InlPres.class; |
|
162 %I18n.class; |
|
163 %InlSpecial.class; |
|
164 %InlForm.class; |
|
165 %Ruby.class; |
|
166 %Inline.extra;" |
|
167 > |
|
168 |
|
169 <!-- %InlNoAnchor.mix; includes all non-anchor inlines |
|
170 --> |
|
171 <!ENTITY % InlNoAnchor.mix |
|
172 "%InlNoAnchor.class; |
|
173 %Misc.class;" |
|
174 > |
|
175 |
|
176 <!-- %Inline.mix; includes all inline elements, including %Misc.class; |
|
177 --> |
|
178 <!ENTITY % Inline.mix |
|
179 "%Inline.class; |
|
180 %Misc.class;" |
|
181 > |
|
182 |
|
183 <!-- ..................... Block Elements ...................... --> |
|
184 |
|
185 <!-- In the HTML 4.0 DTD, heading and list elements were included |
|
186 in the %block; parameter entity. The %Heading.class; and |
|
187 %List.class; parameter entities must now be included explicitly |
|
188 on element declarations where desired. |
|
189 --> |
|
190 |
|
191 <!ENTITY % Heading.class |
|
192 "%h1.qname; | %h2.qname; | %h3.qname; |
|
193 | %h4.qname; | %h5.qname; | %h6.qname;" > |
|
194 |
|
195 <!ENTITY % List.class "%ul.qname; | %ol.qname; | %dl.qname;" > |
|
196 |
|
197 <!ENTITY % Table.class "| %table.qname;" > |
|
198 |
|
199 <!ENTITY % Form.class "| %form.qname;" > |
|
200 |
|
201 <!ENTITY % Fieldset.class "| %fieldset.qname;" > |
|
202 |
|
203 <!ENTITY % BlkStruct.class "%p.qname; | %div.qname;" > |
|
204 |
|
205 <!ENTITY % BlkPhras.class |
|
206 "| %pre.qname; | %blockquote.qname; | %address.qname;" > |
|
207 |
|
208 <!ENTITY % BlkPres.class "| %hr.qname;" > |
|
209 |
|
210 <!ENTITY % BlkSpecial.class |
|
211 "%Table.class; |
|
212 %Form.class; |
|
213 %Fieldset.class;" |
|
214 > |
|
215 |
|
216 <!ENTITY % Block.extra "" > |
|
217 |
|
218 <!-- %Block.class; includes all block elements, |
|
219 used as an component in mixes |
|
220 --> |
|
221 <!ENTITY % Block.class |
|
222 "%BlkStruct.class; |
|
223 %BlkPhras.class; |
|
224 %BlkPres.class; |
|
225 %BlkSpecial.class; |
|
226 %Block.extra;" |
|
227 > |
|
228 |
|
229 <!-- %Block.mix; includes all block elements plus %Misc.class; |
|
230 --> |
|
231 <!ENTITY % Block.mix |
|
232 "%Heading.class; |
|
233 | %List.class; |
|
234 | %Block.class; |
|
235 %Misc.class;" |
|
236 > |
|
237 |
|
238 <!-- ................ All Content Elements .................. --> |
|
239 |
|
240 <!-- %Flow.mix; includes all text content, block and inline |
|
241 --> |
|
242 <!ENTITY % Flow.mix |
|
243 "%Heading.class; |
|
244 | %List.class; |
|
245 | %Block.class; |
|
246 | %Inline.class; |
|
247 %Misc.class;" |
|
248 > |
|
249 |
|
250 <!-- end of xhtml11-model-1.mod --> |
|