blob: 969e21f08e071fbd56c7c28017fd93acc68e47ce [file] [log] [blame]
Marc Kupietz0014c5c2024-09-30 09:12:33 +02001<!-- ....................................................................... -->
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-2008 W3C (MIT, ERCIM, Keio), All Rights Reserved.
7 Revision: $Id: xhtml11-model-1.mod,v 1.1 2010/11/24 20:56:19 bertails 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/MarkUp/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 -->