Project

Profile

Help

How to connect?
Download (78.9 KB) Statistics
| Branch: | Tag: | Revision:

he / latest10 / hej / net / sf / saxon / data / w3c / xmlspec / xmlspec.dtd @ 02f8308b

1
<!-- ............................................................... -->
2
<!-- XML specification DTD ......................................... -->
3
<!-- ............................................................... -->
4

    
5
<!-- $Id: xmlspec.dtd,v 1.20 2005/10/13 15:30:39 NormanWalsh Exp $ -->
6

    
7
<!--
8
TYPICAL INVOCATION:
9
#  <!DOCTYPE spec PUBLIC
10
#       "-//W3C//DTD Specification V2.10//EN"
11
#       "http://www.w3.org/2002/xmlspec/dtd/2.10/xmlspec.dtd">
12

    
13
PURPOSE:
14
  This XML DTD is for W3C specifications and other technical reports.
15
  It is based in part on the TEI Lite and Sweb DTDs.
16

    
17
COPYRIGHT:
18

    
19
  Copyright (C) 2000, 2001, 2002, 2003 Sun Microsystems, Inc. All Rights Reserved.
20
  This document is governed by the W3C Software License[3] as
21
  described in the FAQ[4].
22

    
23
    [1] http://www.w3.org/TR/xslt
24
    [2] http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm
25
    [3] http://www.w3.org/Consortium/Legal/copyright-software-19980720
26
    [4] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
27

    
28
DEPENDENCIES:
29
  None.
30

    
31
CHANGE HISTORY:
32
  The list of historical changes is at the end of the DTD. For recent changes,
33
  see the CVS log.
34

    
35
  For all details, see the design report at:
36

    
37
  <http://www.w3.org/XML/1998/06/xmlspec-report-v21.htm>
38

    
39
  This report is now out-of-date, but no more recent report has been prepared.
40

    
41
#2003-06-25: nwalsh: Added translationloc, preverrataloc, rfc2119
42

    
43
#2003-05-28: nwalsh: Added errataloc, fixed IE bug. Added @num to prod.
44

    
45
             Published V2.4
46

    
47
#2003-03-12: nwalsh: Added local.* PEs to a number of additional
48
             places to make customization layers easier.
49

    
50
             Published V2.3
51

    
52
#2002-09-04: nwalsh: Added 'phrase' to title, subtitle, version,
53
             w3c-designation, w3c-doctype, day, month, year, name,
54
             affiliation, email, language, role, lhs, rhs, com,
55
             typename, date, loc, nt, sub, sup, term, termref,
56
             titleref, xnt, xspecref, xtermref
57

    
58
             This is *solely* to support automated diffing. Users
59
             are explicitly forbidden from using this as an escape
60
             hatch to get extra markup in these contexts.
61

    
62
#2001-10-08: nwalsh: Added local.arg.att and local.proto.att
63

    
64
#2002-08-14: nwalsh: Published V2.2
65

    
66
  Added marked sections around element and attlist declarations and
67
  added the altlocs element
68

    
69
MAINTAINERS:
70
  Norman Walsh
71
  Sun Microsystems, Inc.
72
  Norman.Walsh@Sun.COM
73
  voice: +1 413 256 6985
74
  fax:   +1 413 256 6985
75

    
76
  Eve Maler
77
  Sun Microsystems, Inc.
78
  elm@east.sun.com
79
  voice: +1 781 442 3190
80
  fax:   +1 781 442 1437
81
-->
82

    
83
<!-- ............................................................... -->
84
<!-- Entities for characters and symbols ........................... -->
85
<!-- ............................................................... -->
86

    
87
<!--
88
#1998-03-10: maler: Added &ldquo; and &rdquo;.
89
#                   Used 8879:1986-compatible decimal character
90
#                   references.
91
#                   Merged charent.mod file back into main file.
92
#1998-05-14: maler: Fixed ldquo and rdquo.  Gave mdash a real number.
93
#1998-12-03: maler: Escaped the leading ampersands.
94
-->
95

    
96
<!ENTITY lt     "&#38;#60;">
97
<!ENTITY gt     "&#62;">
98
<!ENTITY amp    "&#38;#38;">
99
<!ENTITY apos   "&#39;">
100
<!ENTITY quot   "&#34;">
101
<!ENTITY nbsp   "&#160;">
102
<!ENTITY mdash  "&#38;#x2014;">
103
<!ENTITY ldquo  "&#38;#x201C;">
104
<!ENTITY rdquo  "&#38;#x201D;">
105

    
106
<!-- ............................................................... -->
107
<!-- Entities for classes of standalone elements ................... -->
108
<!-- ............................................................... -->
109

    
110
<!--
111
#1997-10-16: maler: Added table to %illus.class;.
112
#1997-11-28: maler: Added htable to %illus.class;.
113
#1997-12-29: maler: IGNOREd table.
114
#1998-03-10: maler: Removed SGML Open-specific %illus.class;.
115
#                   Added "local" entities for customization.
116
#1998-05-14: maler: Added issue to %note.class;.
117
#                   Removed %[local.]statusp.class;.
118
#1998-05-21: maler: Added constraintnote to %note.class;.
119
#1998-08-22: maler: Changed htable to table in %illus.class;.
120
#                   Added definitions to %illus.class;.
121
#2000-03-07: maler: Added proto and example to %illus.class;.
122
-->
123

    
124
<!ENTITY % local.p.class        " ">
125
<!ENTITY % p.class              "p
126
                                %local.p.class;">
127

    
128
<!ENTITY % local.list.class     " ">
129
<!ENTITY % list.class           "ulist|olist|slist|glist
130
                                %local.list.class;">
131

    
132
<!ENTITY % local.speclist.class " ">
133
<!ENTITY % speclist.class       "orglist|blist
134
                                %local.speclist.class;">
135

    
136
<!ENTITY % local.note.class     " ">
137
<!ENTITY % note.class           "note|issue|wfcnote|vcnote
138
                                |constraintnote %local.note.class;">
139

    
140
<!ENTITY % local.illus.class    " ">
141
<!ENTITY % illus.class          "eg|graphic|scrap|table|definitions
142
                                |proto|example
143
                                %local.illus.class;">
144

    
145
<!-- ............................................................... -->
146
<!-- Entities for classes of phrase-level elements ................. -->
147
<!-- ............................................................... -->
148

    
149
<!--
150
#1997-12-29: maler: Added xspecref to %ref.class;.
151
#1998-03-10: maler: Added %ednote.class;.
152
#                   Added "local" entities for customization.
153
#2000-03-07: maler: Added function, var, el, att, and attval to
154
#                   %tech.class;.
155
#                   Added sub, sup, and phrase to %emph.class;.
156
-->
157

    
158
<!ENTITY % local.annot.class    " ">
159
<!ENTITY % annot.class          "footnote
160
                                %local.annot.class;">
161

    
162
<!ENTITY % local.termdef.class  " ">
163
<!ENTITY % termdef.class        "termdef|term
164
                                %local.termdef.class;">
165

    
166
<!ENTITY % local.emph.class     " ">
167
<!ENTITY % emph.class           "emph|phrase|rfc2119|quote|sub|sup
168
                                %local.emph.class;">
169

    
170
<!ENTITY % local.ref.class      " ">
171
<!ENTITY % ref.class            "bibref|specref|termref|titleref
172
                                |xspecref|xtermref
173
                                %local.ref.class;">
174

    
175
<!ENTITY % local.loc.class      " ">
176
<!ENTITY % loc.class            "loc
177
                                %local.loc.class;">
178

    
179
<!ENTITY % local.tech.class     " ">
180
<!ENTITY % tech.class           "kw|nt|xnt|code|function|var
181
                                |el|att|attval
182
                                %local.tech.class;">
183

    
184
<!ENTITY % local.ednote.class   " ">
185
<!ENTITY % ednote.class         "ednote
186
                                %local.ednote.class;">
187

    
188
<!-- ............................................................... -->
189
<!-- Entities for mixtures of standalone elements .................. -->
190
<!-- ............................................................... -->
191

    
192
<!--
193
#1997-09-30: maler: Created %p.mix; to eliminate p from self.
194
#1997-09-30: maler: Added %speclist.class; to %obj.mix; and %p.mix;.
195
#1997-09-30: maler: Added %note.class; to %obj.mix; and %p.mix;.
196
#1997-10-16: maler: Created %entry.mix;.  Note that some elements
197
#                   left out here are still allowed in termdef,
198
#                   which entry can contain through %p.pcd.mix;.
199
#1997-11-28: maler: Added %p.class; to %statusobj.mix;.
200
#1998-03-10: maler: Added %ednote.class; to all mixtures, except
201
#                   %p.mix; and %statusobj.mix;, because paragraphs
202
#                   and status paragraphs will contain ednote
203
#                   through %p.pcd.mix;.
204
#1998-03-23: maler: Added %termdef.mix; (broken out from
205
#                    %termdef.pcd.mix;).
206
#1998-05-14: maler: Removed %statusobj.mix; and all mentions of
207
#                   %statusp.mix;.
208
-->
209

    
210
<!ENTITY % local.div.mix " "> <!-- compensate for IE bug; suggested by ht -->
211
<!ENTITY % div.mix
212
        "%p.class;|%list.class;|%speclist.class;|%note.class;
213
        |%illus.class;|%ednote.class;%local.div.mix;">
214

    
215
<!ENTITY % local.obj.mix " "> <!-- compensate for IE bug; suggested by ht -->
216
<!ENTITY % obj.mix
217
        "%p.class;|%list.class;|%speclist.class;|%note.class;
218
        |%illus.class;|%ednote.class;%local.obj.mix;">
219

    
220
<!ENTITY % local.p.mix " "> <!-- compensate for IE bug; suggested by ht -->
221
<!ENTITY % p.mix
222
        "%list.class;|%speclist.class;|%note.class;|%illus.class;%local.p.mix;">
223

    
224
<!ENTITY % local.entry.mix " "> <!-- compensate for IE bug; suggested by ht -->
225
<!ENTITY % entry.mix
226
        "%list.class;|note|eg|graphic|%ednote.class;%local.entry.mix;">
227

    
228
<!ENTITY % local.hdr.mix " "> <!-- compensate for IE bug; suggested by ht -->
229
<!ENTITY % hdr.mix
230
        "%p.class;|%list.class;|%ednote.class;%local.hdr.mix;">
231

    
232
<!ENTITY % local.termdef.mix " "> <!-- compensate for IE bug; suggested by ht -->
233
<!ENTITY % termdef.mix
234
        "%note.class;|%illus.class;%local.termdef.mix;">
235

    
236
<!-- ............................................................... -->
237
<!-- Entities for mixtures of #PCDATA and phrase-level elements .... -->
238
<!-- ............................................................... -->
239

    
240
<!--    Note that %termdef.pcd.mix contains %note.class;
241
        and %illus.class;, considered standalone elements. -->
242

    
243
<!--
244
#1997-09-30: maler: Added scrap and %note.class; to %termdef.pcd.mix;.
245
#1997-11-28: maler: Added %loc.class; to %p.pcd.mix;.
246
#1998-03-10: maler: Added %ednote.class; to all mixtures.
247
#1998-03-23: maler: Moved some %termdef.pcd.mix; stuff out to
248
#                   %termdef.mix;.
249
#1998-05-14: maler: Removed %statusp.pcd.mix;.
250
#1998-05-21: maler: Added constraint element to %eg.pcd.mix;.
251
#1999-07-02: maler: Added %loc.class; to %head.pcd.mix;,
252
#                   %label.pcd.mix;, %eg.pcd.mix;, %termdef.pcd.mix;,
253
#                   %tech.pcd.mix; (net: all PCD mixes have it).
254
#                   Removed unused %loc.pcd.mix;.
255
-->
256

    
257
<!ENTITY % local.p.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
258
<!ENTITY % p.pcd.mix
259
        "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
260
        |%ref.class;|%tech.class;|%loc.class;|%ednote.class;%local.p.pcd.mix;">
261

    
262
<!ENTITY % local.head.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
263
<!ENTITY % head.pcd.mix
264
        "#PCDATA|%annot.class;|%emph.class;|%tech.class;
265
        |%loc.class;|%ednote.class;%local.head.pcd.mix;">
266

    
267
<!ENTITY % local.label.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
268
<!ENTITY % label.pcd.mix
269
        "#PCDATA|%annot.class;|%termdef.class;|%emph.class;
270
        |%tech.class;|%loc.class;|%ednote.class;%local.label.pcd.mix;">
271

    
272
<!ENTITY % local.eg.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
273
<!ENTITY % eg.pcd.mix
274
        "#PCDATA|%annot.class;|%emph.class;|%loc.class;
275
        |%ednote.class;|constraint %local.eg.pcd.mix;">
276

    
277
<!ENTITY % local.termdef.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
278
<!ENTITY % termdef.pcd.mix
279
        "#PCDATA|term|%emph.class;|%ref.class;|%tech.class;
280
        |%loc.class;|%ednote.class;%local.termdef.pcd.mix;">
281

    
282
<!ENTITY % local.bibl.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
283
<!ENTITY % bibl.pcd.mix
284
        "#PCDATA|%emph.class;|%ref.class;|%loc.class;|%ednote.class;%local.bibl.pcd.mix;">
285

    
286
<!ENTITY % local.tech.pcd.mix " "> <!-- compensate for IE bug; suggested by ht -->
287
<!ENTITY % tech.pcd.mix
288
        "#PCDATA|%loc.class;|%ednote.class;|phrase|rfc2119 %local.tech.pcd.mix;">
289

    
290
<!-- ............................................................... -->
291
<!-- Entities for customizable content models ...................... -->
292
<!-- ............................................................... -->
293

    
294
<!--
295
#1998-03-10: maler: Added customization entities.
296
#1998-05-14: maler: Allowed prevlocs and latestloc in either order.
297
#1999-07-02: maler: Made version optional; added copyright element.
298
#2000-03-07: maler: Allowed status and abstract in opposite order.
299
-->
300

    
301
<!ENTITY % spec.mdl
302
        "header, front?, body, back?">
303

    
304
<!ENTITY % header.mdl
305
        "title, subtitle?, version?, w3c-designation, w3c-doctype,
306
        pubdate, notice*, publoc, altlocs?, ((prevlocs, latestloc?) |
307
        (latestloc, prevlocs?))?, authlist, errataloc?, preverrataloc?,
308
        translationloc?, copyright?,
309
        ((status, abstract) | (abstract, status)), pubstmt?,
310
        sourcedesc?, langusage, revisiondesc">
311

    
312
<!ENTITY % pubdate.mdl
313
        "day?, month, year">
314

    
315
<!-- ............................................................... -->
316
<!-- Entities for common attributes ................................ -->
317
<!-- ............................................................... -->
318

    
319
<!--
320
#2000-03-07: maler: Added %argtypes;.
321
-->
322

    
323
<!--    argtypes:
324
        Values for function prototype argument datatypes. -->
325
<!ENTITY % argtypes
326
        '(boolean
327
         |expression
328
         |location-set
329
         |node-set
330
         |number
331
         |object
332
         |point
333
         |range
334
         |string)'>
335

    
336
<!--    key attribute:
337
        Optionally provides a sorting or indexing key, for cases when
338
        the element content is inappropriate for this purpose. -->
339
<!ENTITY % key.att
340
        'key                    CDATA           #IMPLIED'>
341

    
342
<!--    def attribute:
343
        Points to the element where the relevant definition can be
344
        found, using the IDREF mechanism.  %def.att; is for optional
345
        def attributes, and %def-req.att; is for required def
346
        attributes. -->
347
<!ENTITY % def.att
348
        'def                    IDREF           #IMPLIED'>
349
<!ENTITY % def-req.att
350
        'def                    IDREF           #REQUIRED'>
351

    
352
<!--    ref attribute:
353
        Points to the element where more information can be found,
354
        using the IDREF mechanism.  %ref.att; is for optional
355
        ref attributes, and %ref-req.att; is for required ref
356
        attributes. -->
357
<!ENTITY % ref.att
358
        'ref                    IDREF           #IMPLIED'>
359
<!ENTITY % ref-req.att
360
        'ref                    IDREF           #REQUIRED'>
361

    
362
<!--
363
#1998-03-23: maler: Added show and actuate attributes to href.
364
#                   Added semi-common xml:space attribute.
365
#1998-08-22: maler: Used new xlink:form and #IMPLIED features.
366
#1999-07-02: maler: Reorganized XLink-related entities completely;
367
#                   added xmlns:xlink attribute to the mix.
368
#2000-03-07: maler: Updated XLink usage to February 2000 draft,
369
#                   except that href still has no namespace prefix.
370
-->
371

    
372
<!--    xmlns:xlink and xlink:type attributes:
373
        xmlns:xlink declares the association of the xlink prefix
374
        with the namespace created by the XLink specification.
375
        xlink:type identifies an element as an XLink "simple" linking
376
        element. -->
377
<!ENTITY % simple-xlink.att
378
        'xmlns:xlink            CDATA   #FIXED
379
                                        "http://www.w3.org/1999/xlink"
380
        xlink:type              CDATA   #FIXED "simple" '>
381

    
382
<!--    href attributes:
383
        The href attribute locates the remote-resource half of a
384
        simple link; the element on which the href appears is the
385
        local-resource half.  Some elements are usable links only if
386
        the author chooses to supply a functional href.  The attribute
387
        name should really be xlink:href, but is kept without the
388
        prefix for now in order to be backwards-compatible. -->
389

    
390
<!ENTITY % href.att
391
        'href                   CDATA           #IMPLIED '>
392
<!ENTITY % href-req.att
393
        'href                   CDATA           #REQUIRED '>
394

    
395
<!--    xlink:show and xlink:actuate attributes:
396
        These attributes offer instructions to the display engine
397
        about how to handle traversal to resource indicated by an
398
        href locator. -->
399
<!ENTITY % auto-embed.att
400
        'xlink:show             CDATA           #FIXED "embed"
401
        xlink:actuate           CDATA           #FIXED "onLoad" '>
402
<!ENTITY % user-replace.att
403
        'xlink:show             CDATA           #FIXED "replace"
404
        xlink:actuate           CDATA           #FIXED "onRequest" '>
405
<!ENTITY % user-new.att
406
        'xlink:show             CDATA           #FIXED "new"
407
        xlink:actuate           CDATA           #FIXED "onRequest" '>
408

    
409
<!--    xml:space attribute:
410
        Indicates that the element contains whitespace that the
411
        formatter or other application should retain, as appropriate
412
        to its function. -->
413
<!ENTITY % xmlspace.att
414
        'xml:space              (default
415
                                |preserve)      #FIXED "preserve" '>
416

    
417
<!--
418
#2000-03-07: maler: Added common diff attribute.  Made %role.att;.
419
-->
420

    
421
<!--    diff attribute:
422
        Indicates in what way the element has changed.  When a value
423
        is not provided, that subelement should inherit a value from
424
        its parent.  If the root element has no value supplied,
425
        assume "off". -->
426
<!ENTITY % diff.att
427
        'diff                   (chg
428
                                |add
429
                                |del
430
                                |off)           #IMPLIED'>
431

    
432
<!--    role attribute:
433
        Extends the useful life of the DTD by allowing authors to
434
        make a subtype of any element.  No default. -->
435
<!ENTITY % role.att
436
        'role                   NMTOKEN         #IMPLIED'>
437

    
438
<!--    Common attributes:
439
        Every element has an ID attribute for links, a role
440
        attribute, and a diff attribute. %common.att; is for
441
        common attributes where the ID is optional, and
442
        %common-idreq.att; is for common attributes where the
443
        ID is required. -->
444

    
445
<!ENTITY % local.common.att " ">
446
<!ENTITY % common.att
447
        'id                     ID              #IMPLIED
448
        %role.att;
449
        %diff.att;
450
        %local.common.att;'>
451

    
452
<!ENTITY % local.common-idreq.att " ">
453
<!ENTITY % common-idreq.att
454
        'id                     ID              #REQUIRED
455
        %role.att;
456
        %diff.att;
457
        %local.common-idreq.att;'>
458

    
459
<!-- ............................................................... -->
460
<!-- Common elements ............................................... -->
461
<!-- ............................................................... -->
462

    
463
<!--    head: Title on divisions, productions, and the like -->
464
<!ENTITY % head.element "INCLUDE">
465
<![%head.element;[
466
<!ELEMENT head (%head.pcd.mix;)*>
467
]]>
468
<!ENTITY % head.attlist "INCLUDE">
469
<![%head.attlist;[
470
<!ATTLIST head %common.att;>
471
]]>
472

    
473
<!-- ............................................................... -->
474
<!-- Major specification structure ................................. -->
475
<!-- ............................................................... -->
476

    
477
<!--
478
#1998-03-10: maler: Made spec content model easily customizable.
479
#1999-07-02: maler: Added doctype atts and status att.
480
#2000-03-07: maler: Added cr, issues, and dispcmts to w3c-doctype.
481
-->
482

    
483
<!ENTITY % spec.element "INCLUDE">
484
<![%spec.element;[
485
<!ELEMENT spec (%spec.mdl;)>
486
]]>
487
<!--    w3c-doctype attributes:
488
        Indicates the type of document, so that the appropriate
489
        stylesheet or workflow routing can be applied.  Should
490
        *not* generate any text (such as the "REC-" or "NOTE-"
491
        prefix on the W3C designation content).  No default.  If
492
        w3c-doctype is "other", other-doctype should be filled in.
493

    
494
        status attribute:
495
        Indicates the stage of review of the document.  May affect
496
        the stylesheet's treatment of ednotes (e.g., whether to
497
        output them).  No default. -->
498

    
499
<!ENTITY % local.spec.att " ">
500
<!ENTITY % spec.attlist "INCLUDE">
501
<![%spec.attlist;[
502
<!ATTLIST spec
503
        %common.att;
504
        %local.spec.att;
505
        w3c-doctype     (cr
506
                        |dispcmts
507
                        |issues
508
                        |wgnote
509
                        |memsub
510
                        |teamsub
511
                        |note
512
                        |other
513
                        |pr
514
                        |per
515
                        |rec
516
                        |wd
517
                        |review)                #IMPLIED
518
        other-doctype   CDATA                   #IMPLIED
519
        status          (int-review
520
                        |ext-review
521
                        |final)                 #IMPLIED
522
>
523
]]>
524

    
525
<!ENTITY % front.element "INCLUDE">
526
<![%front.element;[
527
<!ELEMENT front (div1+)>
528
]]>
529
<!ENTITY % front.attlist "INCLUDE">
530
<![%front.attlist;[
531
<!ATTLIST front %common.att;>
532
]]>
533

    
534
<!ENTITY % body.element "INCLUDE">
535
<![%body.element;[
536
<!ELEMENT body (div1+)>
537
]]>
538
<!ENTITY % body.attlist "INCLUDE">
539
<![%body.attlist;[
540
<!ATTLIST body %common.att;>
541
]]>
542

    
543
<!--
544
#1997-09-30: maler: Added inform-div1 to back content.
545
-->
546

    
547
<!ENTITY % back.element "INCLUDE">
548
<![%back.element;[
549
<!ELEMENT back ((div1+, inform-div1*) | inform-div1+)>
550
]]>
551
<!ENTITY % back.attlist "INCLUDE">
552
<![%back.attlist;[
553
<!ATTLIST back %common.att;>
554
]]>
555

    
556
<!ENTITY % div1.element "INCLUDE">
557
<![%div1.element;[
558
<!ELEMENT div1 (head, (%div.mix;)*, div2*)>
559
]]>
560
<!ENTITY % div1.attlist "INCLUDE">
561
<![%div1.attlist;[
562
<!ATTLIST div1 %common.att;>
563
]]>
564

    
565
<!--
566
#1997-09-30: maler: Added inform-div1 declarations.
567
#2000-03-07: maler: Added div5 level.
568
-->
569

    
570
<!--    inform-div1: Non-normative division in back matter -->
571
<!ENTITY % inform-div1.element "INCLUDE">
572
<![%inform-div1.element;[
573
<!ELEMENT inform-div1 (head, (%div.mix;)*, div2*)>
574
]]>
575
<!ENTITY % inform-div1.attlist "INCLUDE">
576
<![%inform-div1.attlist;[
577
<!ATTLIST inform-div1 %common.att;>
578
]]>
579

    
580
<!ENTITY % div2.element "INCLUDE">
581
<![%div2.element;[
582
<!ELEMENT div2 (head, (%div.mix;)*, div3*)>
583
]]>
584
<!ENTITY % div2.attlist "INCLUDE">
585
<![%div2.attlist;[
586
<!ATTLIST div2 %common.att;>
587
]]>
588

    
589
<!ENTITY % div3.element "INCLUDE">
590
<![%div3.element;[
591
<!ELEMENT div3 (head, (%div.mix;)*, div4*)>
592
]]>
593
<!ENTITY % div3.attlist "INCLUDE">
594
<![%div3.attlist;[
595
<!ATTLIST div3 %common.att;>
596
]]>
597

    
598
<!ENTITY % div4.element "INCLUDE">
599
<![%div4.element;[
600
<!ELEMENT div4 (head, (%div.mix;)*, div5*)>
601
]]>
602
<!ENTITY % div4.attlist "INCLUDE">
603
<![%div4.attlist;[
604
<!ATTLIST div4 %common.att;>
605
]]>
606

    
607
<!ENTITY % div5.element "INCLUDE">
608
<![%div5.element;[
609
<!ELEMENT div5 (head, (%div.mix;)*)>
610
]]>
611
<!ENTITY % div5.attlist "INCLUDE">
612
<![%div5.attlist;[
613
<!ATTLIST div5 %common.att;>
614
]]>
615

    
616
<!-- ............................................................... -->
617
<!-- Specification header .......................................... -->
618
<!-- ............................................................... -->
619

    
620
<!--
621
#1998-03-10: maler: Made header content model easily customizable.
622
-->
623

    
624
<!ENTITY % header.element "INCLUDE">
625
<![%header.element;[
626
<!ELEMENT header (%header.mdl;)>
627
]]>
628
<!ENTITY % header.attlist "INCLUDE">
629
<![%header.attlist;[
630
<!ATTLIST header %common.att;>
631
]]>
632

    
633
<!--    Example of title: "Extensible Cheese Language (XCL)" -->
634
<!ENTITY % title.element "INCLUDE">
635
<![%title.element;[
636
<!ELEMENT title (#PCDATA|phrase)*>
637
]]>
638
<!ENTITY % title.attlist "INCLUDE">
639
<![%title.attlist;[
640
<!ATTLIST title %common.att;>
641
]]>
642

    
643
<!--    Example of subtitle: "A Cheesy Specification" -->
644
<!ENTITY % subtitle.element "INCLUDE">
645
<![%subtitle.element;[
646
<!ELEMENT subtitle (#PCDATA|phrase)*>
647
]]>
648
<!ENTITY % subtitle.attlist "INCLUDE">
649
<![%subtitle.attlist;[
650
<!ATTLIST subtitle %common.att;>
651
]]>
652

    
653
<!--    Example of version: "Version 666.0" -->
654
<!ENTITY % version.element "INCLUDE">
655
<![%version.element;[
656
<!ELEMENT version (#PCDATA|phrase)*>
657
]]>
658
<!ENTITY % version.attlist "INCLUDE">
659
<![%version.attlist;[
660
<!ATTLIST version %common.att;>
661
]]>
662

    
663
<!--    Example of w3c-designation: "WD-xcl-19991231" -->
664
<!ENTITY % w3c-designation.element "INCLUDE">
665
<![%w3c-designation.element;[
666
<!ELEMENT w3c-designation (#PCDATA|phrase)*>
667
]]>
668
<!ENTITY % w3c-designation.attlist "INCLUDE">
669
<![%w3c-designation.attlist;[
670
<!ATTLIST w3c-designation %common.att;>
671
]]>
672

    
673
<!--    Example of w3c-doctype: "W3C Working Draft" -->
674
<!ENTITY % w3c-doctype.element "INCLUDE">
675
<![%w3c-doctype.element;[
676
<!ELEMENT w3c-doctype (#PCDATA|phrase)*>
677
]]>
678
<!ENTITY % w3c-doctype.attlist "INCLUDE">
679
<![%w3c-doctype.attlist;[
680
<!ATTLIST w3c-doctype %common.att;>
681
]]>
682

    
683
<!--
684
#1998-03-10: maler: Made pubdate content model easily customizable.
685
-->
686

    
687
<!ENTITY % pubdate.element "INCLUDE">
688
<![%pubdate.element;[
689
<!ELEMENT pubdate (%pubdate.mdl;)>
690
]]>
691
<!ENTITY % pubdate.attlist "INCLUDE">
692
<![%pubdate.attlist;[
693
<!ATTLIST pubdate %common.att;>
694
]]>
695

    
696
<!ENTITY % day.element "INCLUDE">
697
<![%day.element;[
698
<!ELEMENT day (#PCDATA|phrase)*>
699
]]>
700
<!ENTITY % day.attlist "INCLUDE">
701
<![%day.attlist;[
702
<!ATTLIST day %common.att;>
703
]]>
704

    
705
<!ENTITY % month.element "INCLUDE">
706
<![%month.element;[
707
<!ELEMENT month (#PCDATA|phrase)*>
708
]]>
709
<!ENTITY % month.attlist "INCLUDE">
710
<![%month.attlist;[
711
<!ATTLIST month %common.att;>
712
]]>
713

    
714
<!ENTITY % year.element "INCLUDE">
715
<![%year.element;[
716
<!ELEMENT year (#PCDATA|phrase)*>
717
]]>
718
<!ENTITY % year.attlist "INCLUDE">
719
<![%year.attlist;[
720
<!ATTLIST year %common.att;>
721
]]>
722

    
723
<!--
724
#1999-07-02: maler: Declared copyright element.
725
-->
726

    
727
<!ENTITY % copyright.element "INCLUDE">
728
<![%copyright.element;[
729
<!ELEMENT copyright (%hdr.mix;)+>
730
]]>
731
<!ENTITY % copyright.attlist "INCLUDE">
732
<![%copyright.attlist;[
733
<!ATTLIST copyright %common.att;>
734
]]>
735

    
736
<!--    Example of notice: "This draft is for public comment..." -->
737
<!ENTITY % notice.element "INCLUDE">
738
<![%notice.element;[
739
<!ELEMENT notice (%hdr.mix;)+>
740
]]>
741
<!ENTITY % notice.attlist "INCLUDE">
742
<![%notice.attlist;[
743
<!ATTLIST notice %common.att;>
744
]]>
745

    
746
<!--
747
#2000-03-07: maler: Broadened models of *loc to %p.pcd.mix;.
748
-->
749

    
750
<!ENTITY % publoc.element "INCLUDE">
751
<![%publoc.element;[
752
<!ELEMENT publoc (%p.pcd.mix;)*>
753
]]>
754
<!ENTITY % publoc.attlist "INCLUDE">
755
<![%publoc.attlist;[
756
<!ATTLIST publoc %common.att;>
757
]]>
758

    
759
<!--
760
#2002-08-15: nwalsh: Added altlocs element.
761
  The semantics of the altlocs are equivalent to the Dublin Core relation element
762
  with type="hasVersion". Each of the loc elements inside altlocs should identify
763
  an alternate version of the resource described by the document, for example
764
  HTML, XML, and PDF forms.
765
-->
766
<!ENTITY % altlocs.element "INCLUDE">
767
<![%altlocs.element;[
768
<!ELEMENT altlocs (loc+)>
769
]]>
770
<!ENTITY % altlocs.attlist "INCLUDE">
771
<![%altlocs.attlist;[
772
<!ATTLIST altlocs %common.att;>
773
]]>
774

    
775
<!ENTITY % prevlocs.element "INCLUDE">
776
<![%prevlocs.element;[
777
<!ELEMENT prevlocs (%p.pcd.mix;)*>
778
]]>
779
<!ENTITY % prevlocs.attlist "INCLUDE">
780
<![%prevlocs.attlist;[
781
<!ATTLIST prevlocs %common.att;>
782
]]>
783

    
784
<!--
785
#2005-10-13: nwalsh: restrict latestloc content model.
786
  New pubrules allows for multiple latestlocs. For some reason, this element
787
  used to allow PCDATA. Now it allows only loc elements. If this causes
788
  trouble, tell Norm.
789
-->
790
<!ENTITY % latestloc.element "INCLUDE">
791
<![%latestloc.element;[
792
<!ELEMENT latestloc (loc+)>
793
]]>
794
<!ENTITY % latestloc.attlist "INCLUDE">
795
<![%latestloc.attlist;[
796
<!ATTLIST latestloc %common.att;>
797
]]>
798

    
799
<!ENTITY % errataloc.element "INCLUDE">
800
<![%errataloc.element;[
801
<!ELEMENT errataloc EMPTY>
802
]]>
803
<!ENTITY % errataloc.attlist "INCLUDE">
804
<![%errataloc.attlist;[
805
<!ATTLIST errataloc
806
	%common.att;
807
        %simple-xlink.att;
808
	%href-req.att;
809
>
810
]]>
811

    
812
<!ENTITY % preverrataloc.element "INCLUDE">
813
<![%preverrataloc.element;[
814
<!ELEMENT preverrataloc EMPTY>
815
]]>
816
<!ENTITY % preverrataloc.attlist "INCLUDE">
817
<![%preverrataloc.attlist;[
818
<!ATTLIST preverrataloc
819
	%common.att;
820
        %simple-xlink.att;
821
	%href-req.att;
822
>
823
]]>
824

    
825
<!ENTITY % translationloc.element "INCLUDE">
826
<![%translationloc.element;[
827
<!ELEMENT translationloc EMPTY>
828
]]>
829
<!ENTITY % translationloc.attlist "INCLUDE">
830
<![%translationloc.attlist;[
831
<!ATTLIST translationloc
832
	%common.att;
833
        %simple-xlink.att;
834
	%href-req.att;
835
>
836
]]>
837

    
838
<!--      loc (defined in "Phrase-level elements" below) -->
839

    
840
<!ENTITY % authlist.element "INCLUDE">
841
<![%authlist.element;[
842
<!ELEMENT authlist (author+)>
843
]]>
844
<!ENTITY % authlist.attlist "INCLUDE">
845
<![%authlist.attlist;[
846
<!ATTLIST authlist %common.att;>
847
]]>
848

    
849
<!--
850
#1997-09-30: maler: Made affiliation optional.
851
#1998-03-10: maler: Made email optional.
852
-->
853

    
854
<!ENTITY % author.element "INCLUDE">
855
<![%author.element;[
856
<!ELEMENT author (name, affiliation?, email?)>
857
]]>
858
<!ENTITY % author.attlist "INCLUDE">
859
<![%author.attlist;[
860
<!ATTLIST author %common.att;>
861
]]>
862

    
863
<!ENTITY % name.element "INCLUDE">
864
<![%name.element;[
865
<!ELEMENT name (#PCDATA|phrase)*>
866
]]>
867
<!ENTITY % name.attlist "INCLUDE">
868
<![%name.attlist;[
869
<!ATTLIST name
870
        %common.att;
871
        %key.att;>
872
]]>
873

    
874
<!ENTITY % affiliation.element "INCLUDE">
875
<![%affiliation.element;[
876
<!ELEMENT affiliation (#PCDATA|phrase)*>
877
]]>
878
<!ENTITY % affiliation.attlist "INCLUDE">
879
<![%affiliation.attlist;[
880
<!ATTLIST affiliation %common.att;>
881
]]>
882

    
883
<!--
884
#1999-07-02: maler: Added show/actuate attributes and default values.
885
-->
886

    
887

    
888
<!ENTITY % email.element "INCLUDE">
889
<![%email.element;[
890
<!ELEMENT email (#PCDATA|phrase)*>
891
]]>
892
<!--    href attribute:
893
        email functions as a hypertext reference through this
894
        required attribute.  Typically the reference would use
895
        the mailto: scheme.  E.g.:
896

    
897
<email href="mailto:elm@arbortext.com">elm@arbortext.com</email>
898
        -->
899

    
900
<!ENTITY % email.attlist "INCLUDE">
901
<![%email.attlist;[
902
<!ATTLIST email
903
        %common.att;
904
        %simple-xlink.att;
905
        %href-req.att;
906
        %user-new.att;>
907
]]>
908

    
909
<!--
910
#1998-05-15: maler: Changed status content from %statusobj.mix;
911
#                   to plain %obj.mix;.  statusp is obsolete.
912
-->
913

    
914
<!ENTITY % status.element "INCLUDE">
915
<![%status.element;[
916
<!ELEMENT status (%obj.mix;)+>
917
]]>
918
<!ENTITY % status.attlist "INCLUDE">
919
<![%status.attlist;[
920
<!ATTLIST status %common.att;>
921
]]>
922

    
923
<!ENTITY % abstract.element "INCLUDE">
924
<![%abstract.element;[
925
<!ELEMENT abstract (%hdr.mix;)*>
926
]]>
927
<!ENTITY % abstract.attlist "INCLUDE">
928
<![%abstract.attlist;[
929
<!ATTLIST abstract %common.att;>
930
]]>
931

    
932
<!ENTITY % pubstmt.element "INCLUDE">
933
<![%pubstmt.element;[
934
<!ELEMENT pubstmt (%hdr.mix;)+>
935
]]>
936
<!ENTITY % pubstmt.attlist "INCLUDE">
937
<![%pubstmt.attlist;[
938
<!ATTLIST pubstmt %common.att;>
939
]]>
940

    
941
<!ENTITY % sourcedesc.element "INCLUDE">
942
<![%sourcedesc.element;[
943
<!ELEMENT sourcedesc (%hdr.mix;)+>
944
]]>
945
<!ENTITY % sourcedesc.attlist "INCLUDE">
946
<![%sourcedesc.attlist;[
947
<!ATTLIST sourcedesc %common.att;>
948
]]>
949

    
950
<!ENTITY % langusage.element "INCLUDE">
951
<![%langusage.element;[
952
<!ELEMENT langusage (language+)>
953
]]>
954
<!ENTITY % langusage.attlist "INCLUDE">
955
<![%langusage.attlist;[
956
<!ATTLIST langusage %common.att;>
957
]]>
958

    
959
<!ENTITY % language.element "INCLUDE">
960
<![%language.element;[
961
<!ELEMENT language (#PCDATA|phrase)*>
962
]]>
963
<!ENTITY % language.attlist "INCLUDE">
964
<![%language.attlist;[
965
<!ATTLIST language %common.att;>
966
]]>
967

    
968
<!ENTITY % revisiondesc.element "INCLUDE">
969
<![%revisiondesc.element;[
970
<!ELEMENT revisiondesc (%hdr.mix;)+>
971
]]>
972
<!ENTITY % revisiondesc.attlist "INCLUDE">
973
<![%revisiondesc.attlist;[
974
<!ATTLIST revisiondesc %common.att;>
975
]]>
976

    
977
<!-- ............................................................... -->
978
<!-- Paragraph ..................................................... -->
979
<!-- ............................................................... -->
980

    
981
<!--
982
#1997-09-30: maler: Changed from %obj.mix; to %p.mix;.
983
#1997-12-29: maler: Changed order of %p.mix; and %p.pcd.mix;
984
#                   references.
985
#1997-12-29: maler: Changed order of %statusobj.mix; and
986
#                   %statusp.pcd.mix; references.
987
#1998-05-14: maler: Removed statusp declarations.
988
-->
989

    
990
<!ENTITY % p.element "INCLUDE">
991
<![%p.element;[
992
<!ELEMENT p (%p.pcd.mix;|%p.mix;)*>
993
]]>
994
<!ENTITY % p.attlist "INCLUDE">
995
<![%p.attlist;[
996
<!ATTLIST p %common.att;>
997
]]>
998

    
999
<!-- ............................................................... -->
1000
<!-- Regular lists ................................................. -->
1001
<!-- ............................................................... -->
1002

    
1003
<!--    ulist: Unordered list, typically bulleted. -->
1004
<!ENTITY % ulist.element "INCLUDE">
1005
<![%ulist.element;[
1006
<!ELEMENT ulist (item+)>
1007
]]>
1008
<!--    spacing attribute:
1009
        Use "normal" to get normal vertical spacing for items;
1010
        use "compact" to get less spacing.  The default is dependent
1011
        on the stylesheet. -->
1012
<!ENTITY % ulist.attlist "INCLUDE">
1013
<![%ulist.attlist;[
1014
<!ATTLIST ulist
1015
        %common.att;
1016
        spacing         (normal|compact)        #IMPLIED>
1017
]]>
1018

    
1019
<!--    olist: Ordered list, typically numbered. -->
1020
<!ENTITY % olist.element "INCLUDE">
1021
<![%olist.element;[
1022
<!ELEMENT olist (item+)>
1023
]]>
1024
<!--    spacing attribute:
1025
        Use "normal" to get normal vertical spacing for items;
1026
        use "compact" to get less spacing.  The default is dependent
1027
        on the stylesheet. -->
1028
<!ENTITY % olist.attlist "INCLUDE">
1029
<![%olist.attlist;[
1030
<!ATTLIST olist
1031
        %common.att;
1032
        spacing         (normal|compact)        #IMPLIED>
1033
]]>
1034

    
1035
<!ENTITY % item.element "INCLUDE">
1036
<![%item.element;[
1037
<!ELEMENT item (%obj.mix;)+>
1038
]]>
1039
<!ENTITY % item.attlist "INCLUDE">
1040
<![%item.attlist;[
1041
<!ATTLIST item %common.att;>
1042
]]>
1043

    
1044
<!--    slist: Simple list, typically with no mark. -->
1045
<!ENTITY % slist.element "INCLUDE">
1046
<![%slist.element;[
1047
<!ELEMENT slist (sitem+)>
1048
]]>
1049
<!ENTITY % slist.attlist "INCLUDE">
1050
<![%slist.attlist;[
1051
<!ATTLIST slist %common.att;>
1052
]]>
1053

    
1054
<!ENTITY % sitem.element "INCLUDE">
1055
<![%sitem.element;[
1056
<!ELEMENT sitem (%p.pcd.mix;)*>
1057
]]>
1058
<!ENTITY % sitem.attlist "INCLUDE">
1059
<![%sitem.attlist;[
1060
<!ATTLIST sitem %common.att;>
1061
]]>
1062

    
1063
<!--    glist: Glossary list, typically two-column. -->
1064
<!ENTITY % glist.element "INCLUDE">
1065
<![%glist.element;[
1066
<!ELEMENT glist (gitem+)>
1067
]]>
1068
<!ENTITY % glist.attlist "INCLUDE">
1069
<![%glist.attlist;[
1070
<!ATTLIST glist %common.att;>
1071
]]>
1072

    
1073
<!ENTITY % gitem.element "INCLUDE">
1074
<![%gitem.element;[
1075
<!ELEMENT gitem (label, def)>
1076
]]>
1077
<!ENTITY % gitem.attlist "INCLUDE">
1078
<![%gitem.attlist;[
1079
<!ATTLIST gitem %common.att;>
1080
]]>
1081

    
1082
<!ENTITY % label.element "INCLUDE">
1083
<![%label.element;[
1084
<!ELEMENT label (%label.pcd.mix;)*>
1085
]]>
1086
<!ENTITY % label.attlist "INCLUDE">
1087
<![%label.attlist;[
1088
<!ATTLIST label %common.att;>
1089
]]>
1090

    
1091
<!ENTITY % def.element "INCLUDE">
1092
<![%def.element;[
1093
<!ELEMENT def (%obj.mix;)*>
1094
]]>
1095
<!ENTITY % def.attlist "INCLUDE">
1096
<![%def.attlist;[
1097
<!ATTLIST def %common.att;>
1098
]]>
1099

    
1100
<!-- ............................................................... -->
1101
<!-- Special lists ................................................. -->
1102
<!-- ............................................................... -->
1103

    
1104
<!--    blist: Bibliography list. -->
1105
<!ENTITY % blist.element "INCLUDE">
1106
<![%blist.element;[
1107
<!ELEMENT blist (bibl+)>
1108
]]>
1109
<!ENTITY % blist.attlist "INCLUDE">
1110
<![%blist.attlist;[
1111
<!ATTLIST blist %common.att;>
1112
]]>
1113

    
1114
<!--
1115
#1999-07-02: maler: Added show/actuate attributes and default values.
1116
-->
1117

    
1118
<!ENTITY % bibl.element "INCLUDE">
1119
<![%bibl.element;[
1120
<!ELEMENT bibl (%bibl.pcd.mix;)*>
1121
]]>
1122
<!--    href attribute:
1123
        bibl optionally functions as a hypertext reference to the
1124
        referred-to resource through this attribute.  E.g.:
1125

    
1126
        <bibl href="http://www.my.com/doc.htm">My Document</bibl>
1127
        -->
1128
<!ENTITY % bibl.attlist "INCLUDE">
1129
<![%bibl.attlist;[
1130
<!ATTLIST bibl
1131
        %common.att;
1132
        %simple-xlink.att;
1133
        %href.att;
1134
        %user-replace.att;
1135
        %key.att;>
1136
]]>
1137

    
1138
<!--    orglist: Organization member list. -->
1139
<!ENTITY % orglist.element "INCLUDE">
1140
<![%orglist.element;[
1141
<!ELEMENT orglist (member+)>
1142
]]>
1143
<!ENTITY % orglist.attlist "INCLUDE">
1144
<![%orglist.attlist;[
1145
<!ATTLIST orglist %common.att;>
1146
]]>
1147

    
1148
<!--
1149
#1997-09-30: maler: Added optional affiliation.
1150
-->
1151

    
1152
<!ENTITY % member.element "INCLUDE">
1153
<![%member.element;[
1154
<!ELEMENT member (name, affiliation?, role?)>
1155
]]>
1156
<!ENTITY % member.attlist "INCLUDE">
1157
<![%member.attlist;[
1158
<!ATTLIST member %common.att;>
1159
]]>
1160

    
1161
<!--      name (defined in "Specification header" above) -->
1162
<!--      affiliation (defined in "Specification header" above) -->
1163

    
1164
<!ENTITY % role.element "INCLUDE">
1165
<![%role.element;[
1166
<!ELEMENT role (#PCDATA|phrase)*>
1167
]]>
1168
<!ENTITY % role.attlist "INCLUDE">
1169
<![%role.attlist;[
1170
<!ATTLIST role %common.att;>
1171
]]>
1172

    
1173
<!-- ............................................................... -->
1174
<!-- Notes ......................................................... -->
1175
<!-- ............................................................... -->
1176

    
1177
<!ENTITY % note.element "INCLUDE">
1178
<![%note.element;[
1179
<!ELEMENT note (%obj.mix;)+>
1180
]]>
1181
<!ENTITY % note.attlist "INCLUDE">
1182
<![%note.attlist;[
1183
<!ATTLIST note %common.att;>
1184
]]>
1185

    
1186
<!--
1187
#1998-05-14: maler: Declared issue element.
1188
#2000-03-07: maler: Added head, source, resolution, and status.
1189
-->
1190

    
1191
<!ENTITY % issue.element "INCLUDE">
1192
<![%issue.element;[
1193
<!ELEMENT issue (head?, source*, (%obj.mix;)+, resolution?)>
1194
]]>
1195
<!--    status attribute:
1196
        Indicates whether the issue is open or closed.  Note that
1197
        the lack of a resolution element does not necessarily mean
1198
        that the issue is still open. -->
1199
<!ENTITY % issue.attlist "INCLUDE">
1200
<![%issue.attlist;[
1201
<!ATTLIST issue
1202
        id              ID              #REQUIRED
1203
        %role.att;
1204
        %diff.att;
1205
        status          (open
1206
                        |closed)        "open"
1207
>
1208
]]>
1209

    
1210
<!ENTITY % source.element "INCLUDE">
1211
<![%source.element;[
1212
<!ELEMENT source (%p.pcd.mix;)*>
1213
]]>
1214
<!ENTITY % source.attlist "INCLUDE">
1215
<![%source.attlist;[
1216
<!ATTLIST source
1217
        %common.att;>
1218
]]>
1219

    
1220
<!ENTITY % resolution.element "INCLUDE">
1221
<![%resolution.element;[
1222
<!ELEMENT resolution (%obj.mix;)+>
1223
]]>
1224
<!ENTITY % resolution.attlist "INCLUDE">
1225
<![%resolution.attlist;[
1226
<!ATTLIST resolution %common.att;>
1227
]]>
1228

    
1229
<!--    wfcnote: Well-formedness constraint note. -->
1230
<!ENTITY % wfcnote.element "INCLUDE">
1231
<![%wfcnote.element;[
1232
<!ELEMENT wfcnote (head, (%obj.mix;)+)>
1233
]]>
1234
<!--    ID attribute:
1235
        wfcnote must have an ID so that it can be pointed to
1236
        from a wfc element in a production. -->
1237
<!ENTITY % wfcnote.attlist "INCLUDE">
1238
<![%wfcnote.attlist;[
1239
<!ATTLIST wfcnote
1240
        %common-idreq.att;>
1241
]]>
1242

    
1243
<!--    vcnote: Validity constraint note. -->
1244
<!ENTITY % vcnote.element "INCLUDE">
1245
<![%vcnote.element;[
1246
<!ELEMENT vcnote (head, (%obj.mix;)+)>
1247
]]>
1248
<!--    ID attribute:
1249
        vcnote must have an ID so that it can be pointed to
1250
        from a vc element in a production. -->
1251
<!ENTITY % vcnote.attlist "INCLUDE">
1252
<![%vcnote.attlist;[
1253
<!ATTLIST vcnote
1254
        %common-idreq.att;>
1255
]]>
1256

    
1257
<!--
1258
#1998-05-21: maler: Declared generic constraintnote element.
1259
-->
1260

    
1261
<!--    constraintnote: Generic constraint note. -->
1262
<!ENTITY % constraintnote.element "INCLUDE">
1263
<![%constraintnote.element;[
1264
<!ELEMENT constraintnote (head, (%obj.mix;)+)>
1265
]]>
1266
<!--    ID attribute:
1267
        constraintnote must have an ID so that it can be
1268
        pointed to from a constraint element in a production. -->
1269
<!--    type attribute:
1270
        constraintnote must have a type value keyword so that
1271
        it can be correctly characterized in the specification. -->
1272
<!ENTITY % constraintnote.attlist "INCLUDE">
1273
<![%constraintnote.attlist;[
1274
<!ATTLIST constraintnote
1275
        %common-idreq.att;
1276
        type            NMTOKEN         #REQUIRED>
1277
]]>
1278

    
1279
<!-- ............................................................... -->
1280
<!-- Basic display elements ........................................ -->
1281
<!-- ............................................................... -->
1282

    
1283
<!--
1284
#1998-03-23: maler: Added xml:space attribute.
1285
-->
1286

    
1287
<!--    eg: Example element, with whitespace respected. -->
1288
<!ENTITY % eg.element "INCLUDE">
1289
<![%eg.element;[
1290
<!ELEMENT eg (%eg.pcd.mix;)*>
1291
]]>
1292
<!ENTITY % eg.attlist "INCLUDE">
1293
<![%eg.attlist;[
1294
<!ATTLIST eg
1295
        %common.att;
1296
        %xmlspace.att;>
1297
]]>
1298

    
1299
<!--
1300
#2000-03-07: maler: Removed the xml:attributes attribute.
1301
#                   Added %local.graphic.att;.
1302
-->
1303

    
1304
<!--    graphic: Displayed graphic.  Graphic data should be
1305
        displayed at the point where it is referenced.  Not
1306
        actually conforming to XLink right now. -->
1307
<!ENTITY % graphic.element "INCLUDE">
1308
<![%graphic.element;[
1309
<!ELEMENT graphic EMPTY>
1310
]]>
1311
<!--    source attribute:
1312
        The graphic data must reside at the location pointed to. -->
1313
<!ENTITY % local.graphic.att " ">
1314
<!ENTITY % graphic.attlist "INCLUDE">
1315
<![%graphic.attlist;[
1316
<!ATTLIST graphic
1317
        %common.att;
1318
        %simple-xlink.att;
1319
        source                  CDATA           #REQUIRED
1320
        %auto-embed.att;
1321
        alt                     CDATA           #IMPLIED
1322
        %local.graphic.att;>
1323
]]>
1324

    
1325
<!--
1326
#2000-03-07: maler: Added proto element structure.
1327
-->
1328

    
1329
<!--    proto: Function prototype, in the XPath/XPointer style. -->
1330
<!ENTITY % proto.element "INCLUDE">
1331
<![%proto.element;[
1332
<!ELEMENT proto (arg*)>
1333
]]>
1334

    
1335
<!ENTITY % local.proto.att " ">
1336
<!ENTITY % proto.attlist "INCLUDE">
1337
<![%proto.attlist;[
1338
<!ATTLIST proto
1339
        %common.att;
1340
	%local.proto.att;
1341
        name            NMTOKEN         #REQUIRED
1342
        return-type     %argtypes;      #REQUIRED
1343
>
1344
]]>
1345

    
1346
<!ENTITY % local.arg.att " ">
1347
<!ENTITY % arg.element "INCLUDE">
1348
<![%arg.element;[
1349
<!ELEMENT arg EMPTY>
1350
]]>
1351
<!ENTITY % arg.attlist "INCLUDE">
1352
<![%arg.attlist;[
1353
<!ATTLIST arg
1354
        %common.att;
1355
	%local.arg.att;
1356
        type            %argtypes;      #REQUIRED
1357
        occur           (opt|req)       #IMPLIED
1358
>
1359
]]>
1360

    
1361
<!--
1362
#2000-03-07: maler: Added example element.
1363
-->
1364

    
1365
<!ENTITY % example.element "INCLUDE">
1366
<![%example.element;[
1367
<!ELEMENT example (head?, (%obj.mix;)+)>
1368
]]>
1369
<!ENTITY % example.attlist "INCLUDE">
1370
<![%example.attlist;[
1371
<!ATTLIST example %common.att;>
1372
]]>
1373

    
1374
<!-- ............................................................... -->
1375
<!-- EBNF .......................................................... -->
1376
<!-- ............................................................... -->
1377

    
1378
<!--
1379
#1997-11-28: maler: Added prodgroup to scrap and defined it.
1380
#1998-05-21: maler: Added constraint to prod.
1381
#1999-07-02: maler: Added prodrecap to scrap; broadened scrap model.
1382
#                   Added headstyle attribute to scrap.
1383
-->
1384

    
1385
<!--    scrap: Collection of EBNF language productions. -->
1386
<!ENTITY % scrap.element "INCLUDE">
1387
<![%scrap.element;[
1388
<!ELEMENT scrap (head, (prodgroup | prod | bnf | prodrecap)+)>
1389
]]>
1390
<!--    lang attribute:
1391
        The scrap can link to a description of the language used,
1392
        found in a language element in the header.
1393
        headstyle attribute:
1394
        Allows a scrap title to be suppressed from output.  To be
1395
        used only when a scrap title directly next to a section
1396
        title is distracting or repetetive. -->
1397
<!ENTITY % scrap.attlist "INCLUDE">
1398
<![%scrap.attlist;[
1399
<!ATTLIST scrap
1400
        %common.att;
1401
        lang            IDREF           #IMPLIED
1402
        headstyle       (show|suppress) "show"
1403
>
1404
]]>
1405

    
1406
<!--    prodgroup: Sub-collection of productions, needed for
1407
        formatting reasons. -->
1408
<!ENTITY % prodgroup.element "INCLUDE">
1409
<![%prodgroup.element;[
1410
<!ELEMENT prodgroup (prod+)>
1411
]]>
1412
<!--    pcw<n> attributes:
1413
        Presentational attributes to control the width
1414
        of the "pseudo-table" columns used to output
1415
        groups of productions. -->
1416
<!ENTITY % prodgroup.attlist "INCLUDE">
1417
<![%prodgroup.attlist;[
1418
<!ATTLIST prodgroup
1419
        %common.att;
1420
        pcw1            CDATA           #IMPLIED
1421
        pcw2            CDATA           #IMPLIED
1422
        pcw3            CDATA           #IMPLIED
1423
        pcw4            CDATA           #IMPLIED
1424
        pcw5            CDATA           #IMPLIED
1425
>
1426
]]>
1427

    
1428
<!--    prod: EBNF language production. -->
1429
<!ENTITY % prod.element "INCLUDE">
1430
<![%prod.element;[
1431
<!ELEMENT prod (lhs, (rhs, (com|wfc|vc|constraint)*)+)>
1432
]]>
1433
<!--    ID attribute:
1434
        The production must have an ID so that cross-references
1435
        (specref) and mentions of nonterminals (nt) can link to
1436
        it. -->
1437
<!ENTITY % prod.attlist "INCLUDE">
1438
<![%prod.attlist;[
1439
<!ATTLIST prod
1440
        %common-idreq.att;
1441
	num	CDATA	#IMPLIED>
1442
]]>
1443

    
1444
<!--    lhs: Left-hand side of production. -->
1445
<!ENTITY % lhs.element "INCLUDE">
1446
<![%lhs.element;[
1447
<!ELEMENT lhs (#PCDATA|phrase)*>
1448
]]>
1449
<!ENTITY % lhs.attlist "INCLUDE">
1450
<![%lhs.attlist;[
1451
<!ATTLIST lhs %common.att;>
1452
]]>
1453

    
1454
<!--    rhs: Right-hand side of production; may have many
1455
        "right-hand sides," one to a line. -->
1456
<!ENTITY % rhs.element "INCLUDE">
1457
<![%rhs.element;[
1458
<!ELEMENT rhs (#PCDATA|phrase|nt|xnt|com)*>
1459
]]>
1460
<!ENTITY % rhs.attlist "INCLUDE">
1461
<![%rhs.attlist;[
1462
<!ATTLIST rhs %common.att;>
1463
]]>
1464

    
1465
<!--      nt and xnt (defined in "Phrase-level elements" below) -->
1466

    
1467
<!--
1468
#1997-11-28: maler: Added loc and bibref to com content.
1469
-->
1470

    
1471
<!--    com: Production comment. -->
1472
<!ENTITY % com.element "INCLUDE">
1473
<![%com.element;[
1474
<!ELEMENT com (#PCDATA|phrase|loc|bibref)*>
1475
]]>
1476
<!ENTITY % com.attlist "INCLUDE">
1477
<![%com.attlist;[
1478
<!ATTLIST com %common.att;>
1479
]]>
1480

    
1481
<!--    wfc: Reference to a well-formedness constraint; should
1482
        generate the head of the wfcnote pointed to. -->
1483
<!ENTITY % wfc.element "INCLUDE">
1484
<![%wfc.element;[
1485
<!ELEMENT wfc EMPTY>
1486
]]>
1487
<!--    def attribute:
1488
        Each well formedness tagline in a production must link to the
1489
        wfcnote that defines it. -->
1490
<!ENTITY % wfc.attlist "INCLUDE">
1491
<![%wfc.attlist;[
1492
<!ATTLIST wfc
1493
        %def-req.att;
1494
        %common.att;>
1495
]]>
1496

    
1497
<!--    vc: Reference to a validity constraint; should generate
1498
        the head of the vcnote pointed to. -->
1499
<!ENTITY % vc.element "INCLUDE">
1500
<![%vc.element;[
1501
<!ELEMENT vc EMPTY>
1502
]]>
1503
<!--    def attribute:
1504
        Each validity tagline in a production must link to the vcnote
1505
        that defines it. -->
1506
<!ENTITY % vc.attlist "INCLUDE">
1507
<![%vc.attlist;[
1508
<!ATTLIST vc
1509
        %def-req.att;
1510
        %common.att;>
1511
]]>
1512

    
1513
<!--
1514
#1998-05-21: maler: Declared generic constraint element.
1515
-->
1516

    
1517
<!--    constraint: Reference to a generic constraint; should
1518
        generate the head of the constraintnote pointed to. -->
1519
<!ENTITY % constraint.element "INCLUDE">
1520
<![%constraint.element;[
1521
<!ELEMENT constraint EMPTY>
1522
]]>
1523
<!--    def attribute:
1524
        Each constraint tagline in a production must link to the
1525
        constraint note that defines it. -->
1526
<!ENTITY % constraint.attlist "INCLUDE">
1527
<![%constraint.attlist;[
1528
<!ATTLIST constraint
1529
        %def-req.att;
1530
        %common.att;>
1531
]]>
1532

    
1533
<!--
1534
#1998-03-23: maler: Added xml:space attribute.
1535
-->
1536

    
1537
<!--    bnf: Un-marked-up EBNF production, with whitespace
1538
        respected. -->
1539
<!ENTITY % bnf.element "INCLUDE">
1540
<![%bnf.element;[
1541
<!ELEMENT bnf (%eg.pcd.mix;)*>
1542
]]>
1543
<!ENTITY % bnf.attlist "INCLUDE">
1544
<![%bnf.attlist;[
1545
<!ATTLIST bnf
1546
        %common.att;
1547
        %xmlspace.att;>
1548
]]>
1549

    
1550
<!--
1551
#1999-07-02: maler: Declared prodrecap.
1552
-->
1553

    
1554
<!--    prodrecap: Reference to production or bnf that appears
1555
        in its "normative" form elsewhere in the spec; should
1556
        generate a copy of the original production, without
1557
        a production number next to it. -->
1558
<!ENTITY % prodrecap.element "INCLUDE">
1559
<![%prodrecap.element;[
1560
<!ELEMENT prodrecap EMPTY>
1561
]]>
1562
<!ENTITY % prodrecap.attlist "INCLUDE">
1563
<![%prodrecap.attlist;[
1564
<!ATTLIST prodrecap
1565
        %common.att;
1566
        %ref-req.att;>
1567
]]>
1568

    
1569
<!-- ............................................................... -->
1570
<!-- Table ......................................................... -->
1571
<!-- ............................................................... -->
1572

    
1573
<!--
1574
#1997-10-16: maler: Added table mechanism.
1575
#1997-11-28: maler: Added non-null system ID to entity declaration.
1576
#                   Added HTML table module.
1577
#1997-12-29: maler: IGNOREd SGML Open table model.
1578
#1998-03-10: maler: Removed SGML Open table model.
1579
#                   Merged html-tbl.mod file into main file.
1580
#                   Added %common.att; to all HTML table elements.
1581
#1998-05-14: maler: Replaced table model with full HTML 4.0 model.
1582
#                   Removed htable in favor of table.
1583
#                   Removed htbody in favor of tbody.
1584
-->
1585

    
1586
<!ENTITY % cellhalign.att
1587
        'align          (left|center
1588
                        |right|justify
1589
                        |char)          #IMPLIED
1590
        char            CDATA           #IMPLIED
1591
        charoff         CDATA           #IMPLIED'>
1592

    
1593
<!ENTITY % cellvalign.att
1594
        'valign         (top|middle
1595
                        |bottom
1596
                        |baseline)      #IMPLIED'>
1597

    
1598
<!ENTITY % thtd.att
1599
        'abbr           CDATA           #IMPLIED
1600
        axis            CDATA           #IMPLIED
1601
        headers         IDREFS          #IMPLIED
1602
        scope           (row
1603
                        |col
1604
                        |rowgroup
1605
                        |colgroup)      #IMPLIED
1606
        rowspan         NMTOKEN         "1"
1607
        colspan         NMTOKEN         "1"'>
1608

    
1609
<!ENTITY % width.att
1610
        'width          CDATA           #IMPLIED'>
1611

    
1612
<!ENTITY % span.att
1613
        'span           NMTOKEN         "1"'>
1614

    
1615
<!--    table: HTML-based geometric table model. -->
1616
<!ENTITY % table.element "INCLUDE">
1617
<![%table.element;[
1618
<!ELEMENT table
1619
        (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
1620
]]>
1621
<!ENTITY % table.attlist "INCLUDE">
1622
<![%table.attlist;[
1623
<!ATTLIST table
1624
        %common.att;
1625
        %width.att;
1626
        summary         CDATA           #IMPLIED
1627
        border          CDATA           #IMPLIED
1628
        frame           (void|above
1629
                        |below|hsides
1630
                        |lhs|rhs
1631
                        |vsides|box
1632
                        |border)        #IMPLIED
1633
        rules           (none|groups
1634
                        |rows|cols
1635
                        |all)           #IMPLIED
1636
        cellspacing     CDATA           #IMPLIED
1637
        cellpadding     CDATA           #IMPLIED>
1638
]]>
1639

    
1640
<!ENTITY % caption.element "INCLUDE">
1641
<![%caption.element;[
1642
<!ELEMENT caption (%p.pcd.mix;)*>
1643
]]>
1644
<!ENTITY % caption.attlist "INCLUDE">
1645
<![%caption.attlist;[
1646
<!ATTLIST caption %common.att;>
1647
]]>
1648

    
1649
<!ENTITY % col.element "INCLUDE">
1650
<![%col.element;[
1651
<!ELEMENT col EMPTY>
1652
]]>
1653
<!ENTITY % col.attlist "INCLUDE">
1654
<![%col.attlist;[
1655
<!ATTLIST col
1656
        %common.att;
1657
        %span.att;
1658
        %width.att;
1659
        %cellhalign.att;
1660
        %cellvalign.att;>
1661
]]>
1662

    
1663
<!ENTITY % colgroup.element "INCLUDE">
1664
<![%colgroup.element;[
1665
<!ELEMENT colgroup (col)*>
1666
]]>
1667
<!ENTITY % colgroup.attlist "INCLUDE">
1668
<![%colgroup.attlist;[
1669
<!ATTLIST colgroup
1670
        %common.att;
1671
        %span.att;
1672
        %width.att;
1673
        %cellhalign.att;
1674
        %cellvalign.att;>
1675
]]>
1676

    
1677
<!ENTITY % thead.element "INCLUDE">
1678
<![%thead.element;[
1679
<!ELEMENT thead (tr)+>
1680
]]>
1681
<!ENTITY % thead.attlist "INCLUDE">
1682
<![%thead.attlist;[
1683
<!ATTLIST thead
1684
        %common.att;
1685
        %cellhalign.att;
1686
        %cellvalign.att;>
1687
]]>
1688

    
1689
<!ENTITY % tfoot.element "INCLUDE">
1690
<![%tfoot.element;[
1691
<!ELEMENT tfoot (tr)+>
1692
]]>
1693
<!ENTITY % tfoot.attlist "INCLUDE">
1694
<![%tfoot.attlist;[
1695
<!ATTLIST tfoot
1696
        %common.att;
1697
        %cellhalign.att;
1698
        %cellvalign.att;>
1699
]]>
1700

    
1701
<!ENTITY % tbody.element "INCLUDE">
1702
<![%tbody.element;[
1703
<!ELEMENT tbody (tr)+>
1704
]]>
1705
<!ENTITY % tbody.attlist "INCLUDE">
1706
<![%tbody.attlist;[
1707
<!ATTLIST tbody
1708
        %common.att;
1709
        %cellhalign.att;
1710
        %cellvalign.att;>
1711
]]>
1712

    
1713
<!ENTITY % tr.element "INCLUDE">
1714
<![%tr.element;[
1715
<!ELEMENT tr (th|td)+>
1716
]]>
1717
<!ENTITY % tr.attlist "INCLUDE">
1718
<![%tr.attlist;[
1719
<!ATTLIST tr
1720
        %common.att;
1721
        %cellhalign.att;
1722
        %cellvalign.att;>
1723
]]>
1724

    
1725
<!ENTITY % th.element "INCLUDE">
1726
<![%th.element;[
1727
<!ELEMENT th (%p.pcd.mix;|%p.mix;)*>
1728
]]>
1729
<!ENTITY % th.attlist "INCLUDE">
1730
<![%th.attlist;[
1731
<!ATTLIST th
1732
        %common.att;
1733
        %thtd.att;
1734
        %cellhalign.att;
1735
        %cellvalign.att;>
1736
]]>
1737

    
1738
<!ENTITY % td.element "INCLUDE">
1739
<![%td.element;[
1740
<!ELEMENT td (%p.pcd.mix;|%p.mix;)*>
1741
]]>
1742
<!ENTITY % td.attlist "INCLUDE">
1743
<![%td.attlist;[
1744
<!ATTLIST td
1745
        %common.att;
1746
        %thtd.att;
1747
        %cellhalign.att;
1748
        %cellvalign.att;>
1749
]]>
1750

    
1751
<!-- ............................................................... -->
1752
<!-- IDL structures for DOM specifications ......................... -->
1753
<!-- ............................................................... -->
1754

    
1755
<!-- ............................................................... -->
1756
<!-- Specialized entities for classes .............................. -->
1757

    
1758
<!ENTITY % idl-desc.class
1759
        "p|note">
1760

    
1761
<!ENTITY % idl-tdef.class
1762
        "typedef|constant|exception|reference|group">
1763

    
1764
<!ENTITY % idl-mod.class
1765
        "module|interface">
1766

    
1767
<!ENTITY % idl-struct.class
1768
        "struct|enum|sequence|union|typename">
1769

    
1770
<!ENTITY % idl-meth.class
1771
        "method|attribute">
1772

    
1773
<!-- ............................................................... -->
1774
<!-- Specialized entities for mixtures ............................. -->
1775

    
1776
<!--    Quick reference to content model mixtures:
1777

    
1778
                        desc tdef mod struct meth
1779
group                     x    x   x    x      x
1780
definitions, module       x    x   x
1781
interface                 x    x               x
1782
typedef, case, component                x
1783
-->
1784

    
1785
<!ENTITY % idl-grp.mix
1786
        "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;
1787
        |%idl-struct.class;|%idl-meth.class;">
1788

    
1789
<!ENTITY % idl-defn.mix
1790
        "%idl-desc.class;|%idl-tdef.class;|%idl-mod.class;">
1791

    
1792
<!ENTITY % idl-intfc.mix
1793
        "%idl-desc.class;|%idl-tdef.class;|%idl-meth.class;">
1794

    
1795
<!ENTITY % idl-type.mix
1796
        "%idl-struct.class;">
1797

    
1798
<!-- ............................................................... -->
1799
<!-- Specialized entities for common attributes .................... -->
1800

    
1801
<!--    name attribute:
1802
        Provides a name.  Required. -->
1803
<!ENTITY % idl-name.att
1804
        'name                   CDATA           #REQUIRED'>
1805

    
1806
<!--    type attribute:
1807
        Provides a type.  Required. -->
1808
<!ENTITY % idl-type.att
1809
        'type                   CDATA           #REQUIRED'>
1810

    
1811
<!-- ............................................................... -->
1812
<!-- Common IDL element ............................................ -->
1813

    
1814
<!ENTITY % descr.element "INCLUDE">
1815
<![%descr.element;[
1816
<!ELEMENT descr ((%obj.mix;)*)>
1817
]]>
1818
<!ENTITY % descr.attlist "INCLUDE">
1819
<![%descr.attlist;[
1820
<!ATTLIST descr %common.att;>
1821
]]>
1822

    
1823
<!-- ............................................................... -->
1824
<!-- IDL definition elements ....................................... -->
1825

    
1826
<!--    definitions: Top-level element for definitions. -->
1827
<!ENTITY % definitions.element "INCLUDE">
1828
<![%definitions.element;[
1829
<!ELEMENT definitions (%idl-defn.mix;)+>
1830
]]>
1831
<!ENTITY % definitions.attlist "INCLUDE">
1832
<![%definitions.attlist;[
1833
<!ATTLIST definitions %common.att;>
1834
]]>
1835

    
1836
<!--    group: Element used to group a set of definitions. -->
1837

    
1838
<!ENTITY % group.element "INCLUDE">
1839
<![%group.element;[
1840
<!ELEMENT group (descr, (%idl-grp.mix;)*)>
1841
]]>
1842
<!ENTITY % group.attlist "INCLUDE">
1843
<![%group.attlist;[
1844
<!ATTLIST group
1845
        %common.att;
1846
        %idl-name.att;>
1847
]]>
1848

    
1849
<!--    interface: Definition of an interface. -->
1850
<!ENTITY % interface.element "INCLUDE">
1851
<![%interface.element;[
1852
<!ELEMENT interface (descr, (%idl-intfc.mix;)*)>
1853
]]>
1854
<!ENTITY % interface.attlist "INCLUDE">
1855
<![%interface.attlist;[
1856
<!ATTLIST interface
1857
        %common.att;
1858
        %idl-name.att;
1859
        inherits        CDATA           #IMPLIED>
1860
]]>
1861

    
1862
<!--    module: Definition of a module. -->
1863
<!ENTITY % module.element "INCLUDE">
1864
<![%module.element;[
1865
<!ELEMENT module (descr, (%idl-defn.mix;)*)>
1866
]]>
1867
<!ENTITY % module.attlist "INCLUDE">
1868
<![%module.attlist;[
1869
<!ATTLIST module
1870
        %common.att;
1871
        %idl-name.att;>
1872
]]>
1873

    
1874
<!--    reference: Reference to some other declaration. -->
1875
<!ENTITY % reference.element "INCLUDE">
1876
<![%reference.element;[
1877
<!ELEMENT reference EMPTY>
1878
]]>
1879
<!ENTITY % reference.attlist "INCLUDE">
1880
<![%reference.attlist;[
1881
<!ATTLIST reference
1882
        %common.att;
1883
        declaration     IDREF           #REQUIRED>
1884
]]>
1885

    
1886
<!--    typedef: Definition of a named type. -->
1887
<!ENTITY % typedef.element "INCLUDE">
1888
<![%typedef.element;[
1889
<!ELEMENT typedef (descr, (%idl-type.mix;))>
1890
]]>
1891
<!ENTITY % typedef.attlist "INCLUDE">
1892
<![%typedef.attlist;[
1893
<!ATTLIST typedef
1894
        %common.att;
1895
        %idl-name.att;
1896
        array.size      NMTOKEN         #IMPLIED>
1897
]]>
1898

    
1899
<!--    struct: Declaration of a struct type. -->
1900
<!ENTITY % struct.element "INCLUDE">
1901
<![%struct.element;[
1902
<!ELEMENT struct (descr, component+)>
1903
]]>
1904
<!ENTITY % struct.attlist "INCLUDE">
1905
<![%struct.attlist;[
1906
<!ATTLIST struct
1907
        %common.att;
1908
        %idl-name.att;>
1909
]]>
1910

    
1911
<!--    component: Declaration of a structural member. -->
1912
<!ENTITY % component.element "INCLUDE">
1913
<![%component.element;[
1914
<!ELEMENT component (%idl-type.mix;)>
1915
]]>
1916
<!ENTITY % component.attlist "INCLUDE">
1917
<![%component.attlist;[
1918
<!ATTLIST component
1919
        %common.att;
1920
        %idl-name.att;>
1921
]]>
1922

    
1923
<!--    union: Declaration of a union type. -->
1924
<!ENTITY % union.element "INCLUDE">
1925
<![%union.element;[
1926
<!ELEMENT union (descr, case+)>
1927
]]>
1928
<!ENTITY % union.attlist "INCLUDE">
1929
<![%union.attlist;[
1930
<!ATTLIST union
1931
        %common.att;
1932
        %idl-name.att;
1933
        switch.type     CDATA           #REQUIRED>
1934
]]>
1935

    
1936
<!ENTITY % case.element "INCLUDE">
1937
<![%case.element;[
1938
<!ELEMENT case (descr, (%idl-type.mix;))>
1939
]]>
1940
<!ENTITY % case.attlist "INCLUDE">
1941
<![%case.attlist;[
1942
<!ATTLIST case
1943
        %common.att;
1944
        labels          CDATA           #REQUIRED>
1945
]]>
1946

    
1947
<!--    enum: Declaration of an enum type. -->
1948
<!ENTITY % enum.element "INCLUDE">
1949
<![%enum.element;[
1950
<!ELEMENT enum (descr, enumerator+)>
1951
]]>
1952
<!ENTITY % enum.attlist "INCLUDE">
1953
<![%enum.attlist;[
1954
<!ATTLIST enum
1955
        %common.att;
1956
        %idl-name.att;>
1957
]]>
1958

    
1959
<!ENTITY % enumerator.element "INCLUDE">
1960
<![%enumerator.element;[
1961
<!ELEMENT enumerator (descr)>
1962
]]>
1963
<!ENTITY % enumerator.attlist "INCLUDE">
1964
<![%enumerator.attlist;[
1965
<!ATTLIST enumerator
1966
        %common.att;
1967
        %idl-name.att;>
1968
]]>
1969

    
1970
<!--    sequence: Declaration of a sequence type (not named). -->
1971
<!ENTITY % sequence.element "INCLUDE">
1972
<![%sequence.element;[
1973
<!ELEMENT sequence (sequence*)>
1974
]]>
1975
<!ENTITY % sequence.attlist "INCLUDE">
1976
<![%sequence.attlist;[
1977
<!ATTLIST sequence
1978
        %common.att;
1979
        %idl-type.att;
1980
        size            NMTOKEN         #IMPLIED>
1981
]]>
1982

    
1983
<!--    constant: Declaration of a named constant. -->
1984
<!ENTITY % constant.element "INCLUDE">
1985
<![%constant.element;[
1986
<!ELEMENT constant (descr)>
1987
]]>
1988
<!ENTITY % constant.attlist "INCLUDE">
1989
<![%constant.attlist;[
1990
<!ATTLIST constant
1991
        %common.att;
1992
        %idl-name.att;
1993
        %idl-type.att;
1994
        value           CDATA           #REQUIRED>
1995
]]>
1996

    
1997
<!--    exception: Declaration of an exception. -->
1998
<!ENTITY % exception.element "INCLUDE">
1999
<![%exception.element;[
2000
<!ELEMENT exception (descr, component*)>
2001
]]>
2002
<!ENTITY % exception.attlist "INCLUDE">
2003
<![%exception.attlist;[
2004
<!ATTLIST exception
2005
        %common.att;
2006
        %idl-name.att;>
2007
]]>
2008
<!-- component (defined under struct, above)-->
2009

    
2010
<!--    attribute: Declaration of an attribute (data member). -->
2011
<!ENTITY % attribute.element "INCLUDE">
2012
<![%attribute.element;[
2013
<!ELEMENT attribute (descr)>
2014
]]>
2015
<!ENTITY % attribute.attlist "INCLUDE">
2016
<![%attribute.attlist;[
2017
<!ATTLIST attribute
2018
        %common.att;
2019
        %idl-name.att;
2020
        %idl-type.att;
2021
        readonly        (yes
2022
                        |no)            "no">
2023
]]>
2024

    
2025
<!--    method: Declaration of a method. -->
2026
<!ENTITY % method.element "INCLUDE">
2027
<![%method.element;[
2028
<!ELEMENT method (descr, parameters, returns, raises)>
2029
]]>
2030
<!ENTITY % method.attlist "INCLUDE">
2031
<![%method.attlist;[
2032
<!ATTLIST method
2033
        %common.att;
2034
        %idl-name.att;>
2035
]]>
2036

    
2037
<!ENTITY % parameters.element "INCLUDE">
2038
<![%parameters.element;[
2039
<!ELEMENT parameters (param*)>
2040
]]>
2041
<!ENTITY % parameters.attlist "INCLUDE">
2042
<![%parameters.attlist;[
2043
<!ATTLIST parameters %common.att;>
2044
]]>
2045

    
2046
<!ENTITY % param.element "INCLUDE">
2047
<![%param.element;[
2048
<!ELEMENT param (descr)>
2049
]]>
2050
<!ENTITY % param.attlist "INCLUDE">
2051
<![%param.attlist;[
2052
<!ATTLIST param
2053
        %common.att;
2054
        %idl-name.att;
2055
        %idl-type.att;
2056
        attr            (in
2057
                        |out
2058
                        |inout)         "inout">
2059
]]>
2060

    
2061
<!ENTITY % returns.element "INCLUDE">
2062
<![%returns.element;[
2063
<!ELEMENT returns (descr)>
2064
]]>
2065
<!ENTITY % returns.attlist "INCLUDE">
2066
<![%returns.attlist;[
2067
<!ATTLIST returns
2068
        %common.att;
2069
        %idl-type.att;>
2070
]]>
2071

    
2072
<!ENTITY % raises.element "INCLUDE">
2073
<![%raises.element;[
2074
<!ELEMENT raises (exception*)>
2075
]]>
2076
<!-- exception (defined under constant, above)-->
2077

    
2078
<!ENTITY % typename.element "INCLUDE">
2079
<![%typename.element;[
2080
<!ELEMENT typename (#PCDATA|phrase)*>
2081
]]>
2082
<!ENTITY % typename.attlist "INCLUDE">
2083
<![%typename.attlist;[
2084
<!ATTLIST typename %common.att;>
2085
]]>
2086

    
2087
<!-- ............................................................... -->
2088
<!-- Phrase-level elements ......................................... -->
2089
<!-- ............................................................... -->
2090

    
2091
<!--
2092
#2000-03-07: maler: Added att and attval elements.
2093
-->
2094

    
2095
<!--    att: Attribute name. -->
2096
<!ENTITY % att.element "INCLUDE">
2097
<![%att.element;[
2098
<!ELEMENT att (%tech.pcd.mix;)*>
2099
]]>
2100
<!ENTITY % att.attlist "INCLUDE">
2101
<![%att.attlist;[
2102
<!ATTLIST att %common.att;>
2103
]]>
2104

    
2105
<!--    attval: Attribute value. -->
2106
<!ENTITY % attval.element "INCLUDE">
2107
<![%attval.element;[
2108
<!ELEMENT attval (%tech.pcd.mix;)*>
2109
]]>
2110
<!ENTITY % attval.attlist "INCLUDE">
2111
<![%attval.attlist;[
2112
<!ATTLIST attval %common.att;>
2113
]]>
2114

    
2115
<!--    bibref: Reference to a bibliography list entry; should
2116
        generate, in square brackets, "key" on bibl. -->
2117
<!ENTITY % bibref.element "INCLUDE">
2118
<![%bibref.element;[
2119
<!ELEMENT bibref EMPTY>
2120
]]>
2121
<!--    ref attribute:
2122
        A bibliography reference must link to the bibl element that
2123
        describes the resource. -->
2124
<!ENTITY % bibref.attlist "INCLUDE">
2125
<![%bibref.attlist;[
2126
<!ATTLIST bibref
2127
        %common.att;
2128
        %ref-req.att;>
2129
]]>
2130

    
2131
<!ENTITY % code.element "INCLUDE">
2132
<![%code.element;[
2133
<!ELEMENT code (%tech.pcd.mix;)*>
2134
]]>
2135
<!ENTITY % code.attlist "INCLUDE">
2136
<![%code.attlist;[
2137
<!ATTLIST code %common.att;>
2138
]]>
2139

    
2140
<!--
2141
#1998-03-10: maler: Declared ednote and related elements.
2142
#1999-07-02: maler: Changed edtext content from #PCDATA to %p.pcd.mix;.
2143
-->
2144

    
2145
<!--    ednote: Editorial note for communication among editors. -->
2146
<!ENTITY % ednote.element "INCLUDE">
2147
<![%ednote.element;[
2148
<!ELEMENT ednote (name?, date?, edtext)>
2149
]]>
2150
<!ENTITY % ednote.attlist "INCLUDE">
2151
<![%ednote.attlist;[
2152
<!ATTLIST ednote %common.att;>
2153
]]>
2154

    
2155
<!ENTITY % date.element "INCLUDE">
2156
<![%date.element;[
2157
<!ELEMENT date (#PCDATA|phrase)*>
2158
]]>
2159
<!ENTITY % date.attlist "INCLUDE">
2160
<![%date.attlist;[
2161
<!ATTLIST date %common.att;>
2162
]]>
2163

    
2164
<!ENTITY % edtext.element "INCLUDE">
2165
<![%edtext.element;[
2166
<!ELEMENT edtext (%p.pcd.mix;)*>
2167
]]>
2168
<!ENTITY % edtext.attlist "INCLUDE">
2169
<![%edtext.attlist;[
2170
<!ATTLIST edtext %common.att;>
2171
]]>
2172

    
2173
<!--
2174
#2000-03-07: maler: Added el element.
2175
-->
2176

    
2177
<!--    el: Element type name (GI). -->
2178
<!ENTITY % el.element "INCLUDE">
2179
<![%el.element;[
2180
<!ELEMENT el (%tech.pcd.mix;)*>
2181
]]>
2182
<!ENTITY % el.attlist "INCLUDE">
2183
<![%el.attlist;[
2184
<!ATTLIST el %common.att;>
2185
]]>
2186

    
2187
<!--
2188
#2000-03-07: maler: Expanded emph to %p.pcd.mix;.
2189
-->
2190

    
2191
<!ENTITY % emph.element "INCLUDE">
2192
<![%emph.element;[
2193
<!ELEMENT emph (%p.pcd.mix;)*>
2194
]]>
2195
<!ENTITY % emph.attlist "INCLUDE">
2196
<![%emph.attlist;[
2197
<!ATTLIST emph %common.att;>
2198
]]>
2199

    
2200
<!--    footnote: Both footnote content and call to footnote. -->
2201
<!ENTITY % footnote.element "INCLUDE">
2202
<![%footnote.element;[
2203
<!ELEMENT footnote (%obj.mix;)+>
2204
]]>
2205
<!ENTITY % footnote.attlist "INCLUDE">
2206
<![%footnote.attlist;[
2207
<!ATTLIST footnote %common.att;>
2208
]]>
2209

    
2210
<!--
2211
#2000-03-07: maler: Added function and gave it content of
2212
#                   %tech.pcd.mix; instead of XPath's #PCDATA.
2213
-->
2214

    
2215
<!ENTITY % function.element "INCLUDE">
2216
<![%function.element;[
2217
<!ELEMENT function (%tech.pcd.mix;)*>
2218
]]>
2219
<!ENTITY % function.attlist "INCLUDE">
2220
<![%function.attlist;[
2221
<!ATTLIST function %common.att;>
2222
]]>
2223

    
2224
<!ENTITY % kw.element "INCLUDE">
2225
<![%kw.element;[
2226
<!ELEMENT kw (%tech.pcd.mix;)*>
2227
]]>
2228
<!ENTITY % kw.attlist "INCLUDE">
2229
<![%kw.attlist;[
2230
<!ATTLIST kw %common.att;>
2231
]]>
2232

    
2233
<!--
2234
#1999-07-02: maler: Added show/actuate attributes and default values.
2235
-->
2236

    
2237
<!--    loc: Generic link to a Web resource, similar to HTML's A. -->
2238
<!ENTITY % loc.element "INCLUDE">
2239
<![%loc.element;[
2240
<!ELEMENT loc (#PCDATA|phrase)*>
2241
]]>
2242
<!--    href attribute:
2243
        The purpose of a loc element is to function as a A-like
2244
        hypertext link to a resource.  (Ideally, the content of loc
2245
        will also mention the URI of the resource, so that readers of
2246
        the printed version will be able to locate the resource.) E.g.:
2247

    
2248
<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc>
2249
        -->
2250
<!ENTITY % loc.attlist "INCLUDE">
2251
<![%loc.attlist;[
2252
<!ATTLIST loc
2253
        %common.att;
2254
        %simple-xlink.att;
2255
        %href-req.att;
2256
        %user-replace.att;>
2257
]]>
2258

    
2259
<!--    nt: Mention of a nonterminal in text, along with a link to
2260
        the production in the current document that defines it. -->
2261
<!ENTITY % nt.element "INCLUDE">
2262
<![%nt.element;[
2263
<!ELEMENT nt (#PCDATA|phrase)*>
2264
]]>
2265
<!--    def attribute:
2266
        The nonterminal must link to the production that defines
2267
        it. -->
2268
<!ENTITY % nt.attlist "INCLUDE">
2269
<![%nt.attlist;[
2270
<!ATTLIST nt
2271
        %common.att;
2272
        %def-req.att;>
2273
]]>
2274

    
2275
<!--
2276
#2000-03-07: maler: Declared phrase.
2277
-->
2278

    
2279
<!--    phrase: "Attribute hanger" for small bits of (e.g.) differenced
2280
        text in a paragraph or similar, when another element isn't handy.
2281
        Beware that its content model may allow more nested elements than
2282
        would normally be allowed in some contexts. -->
2283
<!ENTITY % phrase.element "INCLUDE">
2284
<![%phrase.element;[
2285
<!ELEMENT phrase (%p.pcd.mix;)*>
2286
]]>
2287
<!ENTITY % phrase.attlist "INCLUDE">
2288
<![%phrase.attlist;[
2289
<!ATTLIST phrase %common.att;>
2290
]]>
2291

    
2292
<!--
2293
#2003-06-25: nwalsh: RFC2119 elements
2294
-->
2295

    
2296
<!ENTITY % rfc2119.element "INCLUDE">
2297
<![%rfc2119.element;[
2298
<!ELEMENT rfc2119 (#PCDATA|phrase)*>
2299
]]>
2300
<!ENTITY % rfc2119.attlist "INCLUDE">
2301
<![%rfc2119.attlist;[
2302
<!ATTLIST rfc2119 %common.att;>
2303
]]>
2304

    
2305
<!--
2306
#1998-03-10: maler: Declared quote.
2307
-->
2308

    
2309
<!--    quote: Scare quotes and other purely presentational quotes. -->
2310
<!ENTITY % quote.element "INCLUDE">
2311
<![%quote.element;[
2312
<!ELEMENT quote (%p.pcd.mix;)*>
2313
]]>
2314
<!ENTITY % quote.attlist "INCLUDE">
2315
<![%quote.attlist;[
2316
<!ATTLIST quote %common.att;>
2317
]]>
2318

    
2319
<!--    specref: Reference to a div, olist item, prod, or issue
2320
        in the current document; should generate italic "[n.n],
2321
        Section Title" for div, "n" for numbered item, "[n]" for
2322
        production, or "Issue id" for issue. -->
2323
<!ENTITY % specref.element "INCLUDE">
2324
<![%specref.element;[
2325
<!ELEMENT specref EMPTY>
2326
]]>
2327
<!--    ref attribute:
2328
        The purpose of a specref element is to link to a div, item
2329
        in an olist, or production in the current spec. -->
2330
<!ENTITY % specref.attlist "INCLUDE">
2331
<![%specref.attlist;[
2332
<!ATTLIST specref
2333
        %common.att;
2334
        %ref-req.att;>
2335
]]>
2336

    
2337
<!--
2338
#2000-03-07: maler: Added sub and sup.
2339
-->
2340

    
2341
<!--    sub: Subscript. -->
2342
<!ENTITY % sub.element "INCLUDE">
2343
<![%sub.element;[
2344
<!ELEMENT sub (#PCDATA|phrase)*>
2345
]]>
2346
<!ENTITY % sub.attlist "INCLUDE">
2347
<![%sub.attlist;[
2348
<!ATTLIST sub %common.att;>
2349
]]>
2350

    
2351
<!--    sup: Superscript. -->
2352
<!ENTITY % sup.element "INCLUDE">
2353
<![%sup.element;[
2354
<!ELEMENT sup (#PCDATA|phrase)*>
2355
]]>
2356
<!ENTITY % sup.attlist "INCLUDE">
2357
<![%sup.attlist;[
2358
<!ATTLIST sup %common.att;>
2359
]]>
2360

    
2361
<!--    term: The term in text that is being defined in text. -->
2362
<!ENTITY % term.element "INCLUDE">
2363
<![%term.element;[
2364
<!ELEMENT term (#PCDATA|phrase)*>
2365
]]>
2366
<!ENTITY % term.attlist "INCLUDE">
2367
<![%term.attlist;[
2368
<!ATTLIST term %common.att;>
2369
]]>
2370

    
2371
<!--    termdef: Definition of a term in text. -->
2372
<!ENTITY % termdef.element "INCLUDE">
2373
<![%termdef.element;[
2374
<!ELEMENT termdef (%termdef.pcd.mix;|%termdef.mix;)*>
2375
]]>
2376
<!--    ID attribute:
2377
        A term definition must have an ID so that it can be linked
2378
        to from termref elements. -->
2379
<!--    term attribute:
2380
        The canonical form of the term or phrase being defined must
2381
        appear in this attribute, even if the term or phrase also
2382
        appears in the element content in identical form (e.g., in
2383
        the term element). -->
2384
<!ENTITY % termdef.attlist "INCLUDE">
2385
<![%termdef.attlist;[
2386
<!ATTLIST termdef
2387
        %common-idreq.att;
2388
        term            CDATA           #REQUIRED>
2389
]]>
2390

    
2391
<!--    termref: Mention of a term, along with a link to the
2392
        definition in the current document. -->
2393
<!ENTITY % termref.element "INCLUDE">
2394
<![%termref.element;[
2395
<!ELEMENT termref (#PCDATA|phrase)*>
2396
]]>
2397
<!--    ref attribute:
2398
        A term reference must link to the termdef element that
2399
        defines the term. -->
2400
<!ENTITY % termref.attlist "INCLUDE">
2401
<![%termref.attlist;[
2402
<!ATTLIST termref
2403
        %common.att;
2404
        %def-req.att;>
2405
]]>
2406

    
2407
<!--
2408
#1999-07-02: maler: Added show/actuate attributes and default values.
2409
-->
2410

    
2411
<!--    titleref: Citation of another document, which can also
2412
        link to that document if it is a Web resource. -->
2413
<!ENTITY % titleref.element "INCLUDE">
2414
<![%titleref.element;[
2415
<!ELEMENT titleref (#PCDATA|phrase)*>
2416
]]>
2417
<!--    href attribute:
2418
        A title reference can optionally function as a hypertext
2419
        link to the resource with this title.  E.g.:
2420

    
2421
<loc href="http://www.my.com/doc.htm">http://www.my.com/doc.htm</loc>
2422
        -->
2423

    
2424
<!ENTITY % titleref.attlist "INCLUDE">
2425
<![%titleref.attlist;[
2426
<!ATTLIST titleref
2427
        %common.att;
2428
        %simple-xlink.att;
2429
        %href.att;
2430
        %user-new.att;>
2431
]]>
2432

    
2433
<!--
2434
#2000-03-07: maler: Added var.
2435
-->
2436

    
2437
<!--    var: String standing for a variable value that the user
2438
        or system will supply.  For example: "For each node
2439
        <var>x</var> in this node-set..." -->
2440
<!ENTITY % var.element "INCLUDE">
2441
<![%var.element;[
2442
<!ELEMENT var (%tech.pcd.mix;)*>
2443
]]>
2444
<!ENTITY % var.attlist "INCLUDE">
2445
<![%var.attlist;[
2446
<!ATTLIST var %common.att;>
2447
]]>
2448

    
2449
<!--
2450
#1999-07-02: maler: Added show/actuate attributes and default values.
2451
-->
2452

    
2453
<!--    xnt: Mention of a nonterminal in text, along with a link to
2454
        the production in another document that defines it. -->
2455
<!ENTITY % xnt.element "INCLUDE">
2456
<![%xnt.element;[
2457
<!ELEMENT xnt (#PCDATA|phrase)*>
2458
]]>
2459
<!--    href attribute:
2460
        The nonterminal must hyperlink to a resource that serves
2461
        to define it (e.g., a production in a related XML
2462
        specification).  E.g.:
2463

    
2464
<xnt href="http://www.w3.org/TR/spec.htm#prod3">Name</xnt>
2465
        -->
2466

    
2467
<!ENTITY % xnt.attlist "INCLUDE">
2468
<![%xnt.attlist;[
2469
<!ATTLIST xnt
2470
        %common.att;
2471
        %simple-xlink.att;
2472
        %href-req.att;
2473
        %user-new.att;>
2474
]]>
2475

    
2476
<!--
2477
#1997-12-29: maler: Declared xspecref.
2478
#1999-07-02: maler: Added show/actuate attributes and default values.
2479
-->
2480

    
2481
<!--    xspecref: Reference to a div, olist item, prod, or issue
2482
        in a related specification document; should generate
2483
        no special text. -->
2484
<!ENTITY % xspecref.element "INCLUDE">
2485
<![%xspecref.element;[
2486
<!ELEMENT xspecref (#PCDATA|phrase)*>
2487
]]>
2488
<!--    href attribute:
2489
        The spec reference must hyperlink to the resource to
2490
        cross-refer to (e.g., a section in a related XML
2491
        specification).  E.g.:
2492

    
2493
<xspecref href="http://www.w3.org/TR/spec.htm#sec2">
2494
the section on constraints</xspecref>
2495
        -->
2496

    
2497
<!ENTITY % xspecref.attlist "INCLUDE">
2498
<![%xspecref.attlist;[
2499
<!ATTLIST xspecref
2500
        %common.att;
2501
        %simple-xlink.att;
2502
        %href-req.att;
2503
        %user-new.att;>
2504
]]>
2505

    
2506
<!--
2507
#1999-07-02: maler: Added show/actuate attributes and default values.
2508
-->
2509

    
2510
<!--    termref: Mention of a term, along with a link to the
2511
        definition in a related document. -->
2512
<!ENTITY % xtermref.element "INCLUDE">
2513
<![%xtermref.element;[
2514
<!ELEMENT xtermref (#PCDATA|phrase)*>
2515
]]>
2516
<!--    href attribute:
2517
        The term reference must hyperlink to the resource that
2518
        serves to define the term (e.g., a term definition in
2519
        a related XML specification).  E.g.:
2520

    
2521
<xtermref href="http://www.w3.org/TR/spec.htm#term5">
2522
entity
2523
</xtermref>
2524
        -->
2525

    
2526
<!ENTITY % xtermref.attlist "INCLUDE">
2527
<![%xtermref.attlist;[
2528
<!ATTLIST xtermref
2529
        %common.att;
2530
        %simple-xlink.att;
2531
        %href-req.att;
2532
        %user-new.att;>
2533
]]>
2534

    
2535
<!-- ............................................................... -->
2536
<!-- Unused elements for ADEPT ..................................... -->
2537
<!-- ............................................................... -->
2538

    
2539
<!--
2540
#1997-09-30: maler: Added unusued elements.
2541
#1997-10-14: maler: Fixed div to move nested div to the mixture.
2542
#1998-05-14: maler: Added key-term, htable, and htbody.
2543
#1998-11-30: maler: Added para, listitem, itemizedlist, and orderedlist.
2544
-->
2545

    
2546
<!--    The following elements are purposely declared but never
2547
        referenced.  Declaring them allows them to be pasted from
2548
        an HTML document, an earlier version of an XMLspec document,
2549
        or a DocBook document into a document using this DTD in ADEPT.
2550
        The ATD Context Transformation mechanism will try to convert
2551
        them to the appropriate element for this DTD.  While this
2552
        conversion will not work for all fragments, it does allow many
2553
        cases to work reasonably well. -->
2554

    
2555
<!ENTITY % div.element "INCLUDE">
2556
<![%div.element;[
2557
<!ELEMENT div
2558
        (head?, (%div.mix;|ul|ol|h1|h2|h3|h4|h5|h6|div)*)>
2559
]]>
2560
<!ENTITY % h1.element "INCLUDE">
2561
<![%h1.element;[
2562
<!ELEMENT h1 (%head.pcd.mix;|em|a)*>
2563
]]>
2564
<!ENTITY % h2.element "INCLUDE">
2565
<![%h2.element;[
2566
<!ELEMENT h2 (%head.pcd.mix;|em|a)*>
2567
]]>
2568
<!ENTITY % h3.element "INCLUDE">
2569
<![%h3.element;[
2570
<!ELEMENT h3 (%head.pcd.mix;|em|a)*>
2571
]]>
2572
<!ENTITY % h4.element "INCLUDE">
2573
<![%h4.element;[
2574
<!ELEMENT h4 (%head.pcd.mix;|em|a)*>
2575
]]>
2576
<!ENTITY % h5.element "INCLUDE">
2577
<![%h5.element;[
2578
<!ELEMENT h5 (%head.pcd.mix;|em|a)*>
2579
]]>
2580
<!ENTITY % h6.element "INCLUDE">
2581
<![%h6.element;[
2582
<!ELEMENT h6 (%head.pcd.mix;|em|a)*>
2583
]]>
2584
<!ENTITY % pre.element "INCLUDE">
2585
<![%pre.element;[
2586
<!ELEMENT pre (%eg.pcd.mix;|em)*>
2587
]]>
2588
<!ENTITY % ul.element "INCLUDE">
2589
<![%ul.element;[
2590
<!ELEMENT ul (item|li)*>
2591
]]>
2592
<!ENTITY % ol.element "INCLUDE">
2593
<![%ol.element;[
2594
<!ELEMENT ol (item|li)*>
2595
]]>
2596
<!ENTITY % li.element "INCLUDE">
2597
<![%li.element;[
2598
<!ELEMENT li (#PCDATA|%obj.mix;)*>
2599
]]>
2600
<!ENTITY % em.element "INCLUDE">
2601
<![%em.element;[
2602
<!ELEMENT em (#PCDATA)*>
2603
]]>
2604
<!ENTITY % a.element "INCLUDE">
2605
<![%a.element;[
2606
<!ELEMENT a (#PCDATA)*>
2607
]]>
2608

    
2609
<!ENTITY % key-term.element "INCLUDE">
2610
<![%key-term.element;[
2611
<!ELEMENT key-term (#PCDATA)*>
2612
]]>
2613
<!ENTITY % htable.element "INCLUDE">
2614
<![%htable.element;[
2615
<!ELEMENT htable
2616
        (caption?, (col*|colgroup*), thead?, tfoot?, tbody+)>
2617
]]>
2618
<!ENTITY % htbody.element "INCLUDE">
2619
<![%htbody.element;[
2620
<!ELEMENT htbody (tr)+>
2621
]]>
2622
<!ENTITY % statusp.element "INCLUDE">
2623
<![%statusp.element;[
2624
<!ELEMENT statusp (%p.pcd.mix;|%p.mix;)*>
2625
]]>
2626

    
2627
<!ENTITY % itemizedlist.element "INCLUDE">
2628
<![%itemizedlist.element;[
2629
<!ELEMENT itemizedlist (listitem*)>
2630
]]>
2631
<!ENTITY % orderedlist.element "INCLUDE">
2632
<![%orderedlist.element;[
2633
<!ELEMENT orderedlist (listitem*)>
2634
]]>
2635
<!ENTITY % listitem.element "INCLUDE">
2636
<![%listitem.element;[
2637
<!ELEMENT listitem (para*)>
2638
]]>
2639
<!ENTITY % para.element "INCLUDE">
2640
<![%para.element;[
2641
<!ELEMENT para (#PCDATA)*>
2642
]]>
2643

    
2644
<!-- ............................................................... -->
2645
<!-- Change history ................................................ -->
2646
<!-- ............................................................... -->
2647

    
2648
<!--
2649
#This revision history is no longer being maintained. See the CVS log
2650
#for detailed revisions history.
2651
#####################################################################
2652
#1997-08-18: maler
2653
#- Did a major revision.
2654
#1997-09-10: maler
2655
#- Updated FPI.
2656
#- Removed namekey element and put key attribute on name element.
2657
#- Made statusp element and supporting entities.
2658
#- Added slist element with sitem+ content.
2659
#- Required head on scrap and added new bnf subelement.
2660
#- Added an xnt element and allowed it and nt in regular text and rhs.
2661
#- Removed the ntref element.
2662
#- Added back the com element to the content of rhs.
2663
#- Added a key attribute to bibl.
2664
#- Removed the ident element.
2665
#- Added a term element to be used inside termdef.
2666
#- Added an xtermref element parallel to termref.
2667
#- Beefed up DTD comments.
2668
#1997-09-12: maler
2669
#- Allowed term element in general text.
2670
#- Changed bibref to EMPTY.
2671
#- Added ref.class to termdef.pcd.mix.
2672
#1997-09-14: maler
2673
#- Changed main attribute of xtermref from def to href.
2674
#- Added termdef.class to label contents.
2675
#1997-09-30: maler
2676
#- Added character entity module and added new entities.
2677
#- Removed p from appearing directly in self; created %p.mix;.
2678
#- Added inform-div (non-normative division) element.
2679
#- Fixed xtermref comment to mention href, not ref.
2680
#- Extended orglist model to allow optional affiliation.
2681
#- Modified author to make affiliation optional.
2682
#- Added %speclist.class; and %note.class; to %obj.mix; and %p.mix;.
2683
#- Added %note.class; and %illus.class; to %termdef.pcd.mix;.
2684
#- Added unused HTML elements.
2685
#- Put empty system ID next to public ID in entity declarations.
2686
#1997-10-14: maler
2687
#- Fixed "unused" div content model to move nested div to mixture.
2688
#1997-10-16: maler
2689
#- Added SGML Open Exchange tables.
2690
#1997-11-28: maler
2691
#- Added support for prodgroup and its attributes.
2692
#- Added support for HTML tables.
2693
#- Added loc and bibref to content of com.
2694
#- Added loc to general p content models.
2695
#- Allowed p as alternative to statusp in status.
2696
#- Added non-null system IDs to external parameter entity declarations.
2697
#- (Modified the SGML Open table module to make it XML-compliant.)
2698
#- (Modified the character entity module.)
2699
#1997-12-29: maler
2700
#- Moved #PCDATA occurrences to come before GIs in content models.
2701
#- Removed use of the SGML Open table module.
2702
#- Added xspecref element.
2703
#- Ensured that all FPIs contain 4-digit year.
2704
#- (Modified the character entity module.)
2705
#1998-03-10: maler
2706
#- Merged the character entity and table modules into the main file.
2707
#- Added ldquo and rdquo entities.
2708
#- Added common attributes to prodgroup.
2709
#- Made the email element in header optional.
2710
#- Removed reference to the SGML Open table model.
2711
#- Added ednote element.
2712
#- Added quote element.
2713
#- Updated XLink usage to reflect 3 March 1998 WD.
2714
#- Added "local" entities to the class entities for customization.
2715
#- Parameterized several content models to allow for customization.
2716
#1998-03-23: maler
2717
#- Cleaned up some comments and removed some others.
2718
#- Added xml:space semi-common attribute to eg and bnf elements.
2719
#- Added show and embed attributes on all the uses of href.
2720
#- Added %common.att; to all HTML table elements.
2721
#- Added a real URI to the "typical invocation" comment.
2722
#1998-05-14: maler
2723
#- Fixed mdash, ldquo, and rdquo character entities.
2724
#- Switched to the full HTML 4.0 table model.
2725
#- Removed htable/htbody elements and replaced them with table/tbody.
2726
#- Added issue element to %note.class; and declared it.
2727
#- Allowed prevlocs and latestloc in either order.
2728
#- Added key-term, htable, htbody, and statusp as unused elements.
2729
#- Removed real statusp element in favor of plain p.
2730
#1998-05-21: maler
2731
#- Declared generic constraint and constraintnote elements.
2732
#- Added constraintnote to %note.class;.
2733
#- Added constraint to %eg.pcd.mix; and prod content model.
2734
#1998-08-22: maler
2735
#- Fixed %illus.class; to mention table instead of htable.
2736
#- Added definitions to %illus.class; for DOM model.
2737
#- Added DOM definitions element and its substructure.
2738
#- Updated XLink usage in %href.att; to use xlink:form and #IMPLIED.
2739
#- Added clarifying comments to href-using elements.
2740
#1998-11-30: maler
2741
#- Added new unused elements to support DocBook translation.
2742
#- Updated maler phone numbers.
2743
#1998-12-3: maler
2744
#- Fixed character entities with respect to escaping of ampersands.
2745
#- Added many more explanatory comments.
2746
#1999-07-02: maler
2747
#- Added %loc.class; to all PCD mixes that didn't already have it.
2748
#- Removed unused %loc.pcd.mix;.
2749
#- Made version in spec header optional.
2750
#- Added three new attributes to spec.
2751
#- Broadened content of edtext.
2752
#- Added optional copyright element to header.
2753
#- Reorganized XLink-related parameter entities; added xmlns:xlink.
2754
#- Changed edtext content from #PCDATA to %p.pcd.mix;.
2755
#- Added show/actuate atts and default values to all href elements.
2756
#- Changed versioning scheme from 8-digit dates to version numbers.
2757
#- Added w3c-doctype, other-doctype, status atts to spec element.
2758
#- Added prodrecap element inside scrap.
2759
#- Added headstyle attribute to scrap.
2760
#2000-03-07: maler
2761
#- Added proto element, its arg subelement, and the %argtypes; entity.
2762
#- Added function, var, sub, sup, phrase, el, att, attval elements.
2763
#- Expanded emph to %p.pcd.mix;.
2764
#- Allowed status and abstract to appear in the opposite order.
2765
#- Updated XLink usage to the latest WD, except for href and source.
2766
#- Removed the xml:attributes attribute from graphic.
2767
#- Added %local.graphic.att; to graphic.
2768
#- Added common diff attribute.
2769
#- Added div5 element.
2770
#- Broadened content models of publoc, prevlocs, and latestloc.
2771
#- Added head, source, resolution, and status attribute to issue.
2772
#- Added cr, issues, and dispcmts to w3c-doctype attribute on spec.
2773
#- Added example element.
2774
-->
2775

    
2776
<!-- ............................................................... -->
2777
<!-- End of XML specification DTD .................................. -->
2778
<!-- ............................................................... -->
    (1-1/1)