xref: /trunk/main/MathMLDTD/math.dtd (revision cdf0e10c)
1<!-- Copyright 1997-1999  World Wide Web Consortium,    -->
2<!-- (Massachusetts Institute of Technology,            -->
3<!--  Institut National de Recherche en Informatique et en Automatique, -->
4<!--  Keio University). All Rights Reserved.            -->
5<!-- http://www.w3.org/Consortium/Legal/                -->
6
7<!-- Modified DTD for MathML 1.01                       -->
8<!--                                                    -->
9<!-- Original DTD:                                      -->
10<!--    http://www.w3.org/1999/07/REC-MathML-19990707/mmlents.zip  -->
11<!--                                                    -->
12<!-- modified 20. June 2001:                            -->
13<!-- 1) added "math:" namespace prefix                  -->
14<!-- 2) removed entity include files                    -->
15<!-- 3) added copyright notice above to comply with     -->
16<!--    W3C IPR Software Notice                         -->
17<!-- 4) added this comment block                        -->
18<!-- Modifications are intended to ease validation      -->
19<!-- of MathML files written by StarMath 6.0            -->
20
21
22<!-- Content model for content and presentation        -->
23<!--  and browser interface tags in MathML              -->
24<!-- initial draft 9.May.1997          syntax = XML     -->
25<!-- author = s.buswell sb@stilo.demon.co.uk            -->
26<!--                                                    -->
27<!-- revised 14.May.1997 by Robert Miner                -->
28<!-- revised 29.June.1997 and 2.July.1997 by s.buswell  -->
29<!--                                                    -->
30<!-- revised 15.December.1997  by s.buswell             -->
31<!-- revised 8.February.1998   by s.buswell             -->
32<!-- revised 4.april.1998      by s.buswell             -->
33<!-- 21.February.1999 entities and small revisions by d.carlisle    -->
34<!--                                                    -->
35<!-- W3C Recommendation      7 April 1998                               -->
36<!-- *************************************************  -->
37
38<!-- general attribute definitions for class & style & id & other -->
39<!-- : attributes shared by all mathml elements        -->
40
41<!ENTITY % att-globalatts      'math:class CDATA #IMPLIED
42                                 math:style CDATA #IMPLIED
43                                 math:id    ID    #IMPLIED
44                                 math:other CDATA #IMPLIED'  >
45
46<!-- *************************************************  -->
47<!-- Presentation element set                           -->
48
49<!-- presentation attribute definitions -->
50
51<!ENTITY % att-fontsize        'math:fontsize CDATA #IMPLIED'             >
52<!ENTITY % att-fontweight      'math:fontweight (normal | bold) #IMPLIED'  >
53<!ENTITY % att-fontstyle       'math:fontstyle (normal | italic) #IMPLIED' >
54<!ENTITY % att-fontfamily      'math:fontfamily CDATA   #IMPLIED'         >
55<!ENTITY % att-color           'math:color CDATA   #IMPLIED'              >
56
57<!ENTITY % att-fontinfo      '%att-fontsize;
58                             %att-fontweight;
59                             %att-fontstyle;
60                             %att-fontfamily;
61                             %att-color;'  >
62
63<!ENTITY % att-form        'math:form (prefix | infix | postfix) #IMPLIED' >
64<!ENTITY % att-fence       'math:fence (true | false ) #IMPLIED'    >
65<!ENTITY % att-separator   'math:separator (true | false ) #IMPLIED'    >
66<!ENTITY % att-lspace      'math:lspace CDATA  #IMPLIED'       >
67<!ENTITY % att-rspace      'math:rspace CDATA  #IMPLIED'       >
68<!ENTITY % att-stretchy    'math:stretchy (true | false ) #IMPLIED'     >
69<!ENTITY % att-symmetric   'math:symmetric (true | false ) #IMPLIED'    >
70<!ENTITY % att-maxsize     'math:maxsize CDATA #IMPLIED'       >
71<!ENTITY % att-minsize     'math:minsize CDATA #IMPLIED'       >
72<!ENTITY % att-largeop           'math:largeop (true | false ) #IMPLIED' >
73<!ENTITY % att-movablelimits     'math:movablelimits (true | false )
74#IMPLIED' >
75<!ENTITY % att-accent               'math:accent (true | false)  #IMPLIED'>
76
77<!ENTITY % att-opinfo '%att-form;
78                        %att-fence;
79                        %att-separator;
80                        %att-lspace;
81                        %att-rspace;
82                        %att-stretchy;
83                        %att-symmetric;
84                        %att-maxsize;
85                        %att-minsize;
86                        %att-largeop;
87                        %att-movablelimits;
88                        %att-accent;'         >
89
90<!ENTITY % att-width             'math:width CDATA #IMPLIED'   >
91<!ENTITY % att-height            'math:height CDATA #IMPLIED' >
92<!ENTITY % att-depth             'math:depth CDATA #IMPLIED'   >
93
94<!ENTITY % att-sizeinfo          '%att-width;
95                                  %att-height;
96                                  %att-depth;'          >
97
98<!ENTITY % att-lquote              'math:lquote CDATA #IMPLIED'   >
99<!ENTITY % att-rquote              'math:rquote CDATA #IMPLIED'   >
100
101<!ENTITY % att-linethickness        'math:linethickness CDATA #IMPLIED' >
102
103<!ENTITY % att-scriptlevel          'math:scriptlevel CDATA #IMPLIED'>
104<!ENTITY % att-displaystyle         'math:displaystyle (true | false)
105#IMPLIED'>
106<!ENTITY % att-scriptsizemultiplier 'math:scriptsizemultiplier CDATA
107#IMPLIED'  >
108<!ENTITY % att-scriptminsize        'math:scriptminsize CDATA #IMPLIED'>
109<!ENTITY % att-background           'math:background CDATA #IMPLIED' >
110
111<!ENTITY % att-open                 'math:open CDATA #IMPLIED' >
112<!ENTITY % att-close                'math:close CDATA #IMPLIED' >
113<!ENTITY % att-separators           'math:separators CDATA #IMPLIED' >
114
115<!ENTITY % att-subscriptshift       'math:subscriptshift CDATA #IMPLIED'>
116<!ENTITY % att-superscriptshift     'math:superscriptshift CDATA #IMPLIED'    >
117
118<!ENTITY % att-accentunder          'math:accentunder (true | false)
119#IMPLIED'>
120
121<!ENTITY % att-align                'math:align CDATA #IMPLIED'           >
122<!ENTITY % att-rowalign             'math:rowalign CDATA #IMPLIED'    >
123<!ENTITY % att-columnalign          'math:columnalign CDATA #IMPLIED'   >
124<!ENTITY % att-groupalign           'math:groupalign CDATA #IMPLIED'    >
125<!ENTITY % att-alignmentscope       'math:alignmentscope CDATA #IMPLIED'  >
126
127<!ENTITY % att-rowspacing           'math:rowspacing CDATA #IMPLIED'      >
128<!ENTITY % att-columnspacing        'math:columnspacing CDATA #IMPLIED'   >
129<!ENTITY % att-rowlines             'math:rowlines CDATA #IMPLIED'           >
130<!ENTITY % att-columnlines          'math:columnlines CDATA #IMPLIED'         >
131<!ENTITY % att-frame                'math:frame (none | solid | dashed)
132#IMPLIED'  >
133<!ENTITY % att-framespacing         'math:framespacing CDATA #IMPLIED'       >
134<!ENTITY % att-equalrows            'math:equalrows CDATA #IMPLIED'         >
135<!ENTITY % att-equalcolumns         'math:equalcolumns CDATA #IMPLIED'     >
136
137<!ENTITY % att-tableinfo           '%att-align;
138                                   %att-rowalign;
139                                   %att-columnalign;
140                                   %att-groupalign;
141                                   %att-alignmentscope;
142                                   %att-rowspacing;
143                                   %att-columnspacing;
144                                   %att-rowlines;
145                                   %att-columnlines;
146                                   %att-frame;
147                                   %att-framespacing;
148                                   %att-equalrows;
149                                   %att-equalcolumns;
150                                   %att-displaystyle;'        >
151
152<!ENTITY % att-rowspan              'math:rowspan CDATA #IMPLIED'         >
153<!ENTITY % att-columnspan           'math:columnspan CDATA #IMPLIED'      >
154
155<!ENTITY % att-edge                  'math:edge (left | right)  #IMPLIED ' >
156
157<!ENTITY % att-actiontype            'math:actiontype CDATA #IMPLIED' >
158<!ENTITY % att-selection             'math:selection CDATA #IMPLIED ' >
159
160<!-- presentation token schemata with content-->
161
162<!ENTITY % ptoken "math:mi | math:mn | math:mo | math:mtext | math:ms" >
163
164<!ATTLIST math:mi        %att-fontinfo;
165                    %att-globalatts;    >
166
167<!ATTLIST math:mn        %att-fontinfo;
168                    %att-globalatts;    >
169
170<!ATTLIST math:mo        %att-fontinfo;
171                    %att-opinfo;
172                    %att-globalatts;     >
173
174<!ATTLIST math:mtext     %att-fontinfo;
175                    %att-globalatts;     >
176
177<!ATTLIST math:ms        %att-fontinfo;
178                    %att-lquote;
179                    %att-rquote;
180                    %att-globalatts;          >
181
182<!-- empty presentation token schemata -->
183
184<!ENTITY % petoken  "math:mspace" >
185<!ELEMENT math:mspace     EMPTY  >
186
187<!ATTLIST math:mspace    %att-sizeinfo;
188                    %att-globalatts;       >
189
190<!-- presentation general layout schemata -->
191
192<!ENTITY % pgenschema "math:mrow|math:mfrac|math:msqrt|math:mroot|
193                    math:mstyle|math:merror|math:mpadded| math:mphantom|math:mfenced" >
194
195<!ATTLIST math:mrow      %att-globalatts;   >
196
197<!ATTLIST math:mfrac     %att-linethickness;
198                    %att-globalatts; >
199
200<!ATTLIST math:msqrt     %att-globalatts;   >
201
202<!ATTLIST math:mroot     %att-globalatts;   >
203
204<!ATTLIST math:mstyle    %att-fontinfo;
205                    %att-opinfo;
206                    %att-lquote;
207                    %att-rquote;
208                    %att-linethickness;
209                    %att-scriptlevel;
210                    %att-scriptsizemultiplier;
211                    %att-scriptminsize;
212                                        %att-background;
213                                        %att-open;
214                                        %att-close;
215                                        %att-separators;
216                    %att-subscriptshift;
217                    %att-superscriptshift;
218                    %att-accentunder;
219                    %att-tableinfo;
220                    %att-rowspan;
221                    %att-columnspan;
222                                        %att-edge;
223                                        %att-actiontype;
224                                        %att-selection;
225                    %att-globalatts;          >
226
227<!ATTLIST math:merror    %att-globalatts;   >
228
229<!ATTLIST math:mpadded   %att-sizeinfo;
230                    %att-lspace;
231                    %att-globalatts;     >
232
233<!ATTLIST math:mphantom  %att-globalatts;     >
234
235<!ATTLIST math:mfenced   %att-open;
236                    %att-close;
237                    %att-separators;
238                    %att-globalatts;     >
239
240<!-- presentation  layout schemata : scripts and limits -->
241
242<!ENTITY % pscrschema  "math:msub|math:msup|math:msubsup|
243                    math:munder|math:mover|math:munderover|math:mmultiscripts" >
244
245<!ATTLIST math:msub      %att-subscriptshift;
246                    %att-globalatts;     >
247
248<!ATTLIST math:msup      %att-superscriptshift;
249                    %att-globalatts;          >
250
251<!ATTLIST math:msubsup   %att-subscriptshift;
252                    %att-superscriptshift;
253                    %att-globalatts;          >
254
255<!ATTLIST math:munder    %att-accentunder;
256                    %att-globalatts;          >
257
258<!ATTLIST math:mover     %att-accent;
259                    %att-globalatts;           >
260
261<!ATTLIST math:munderover %att-accent;
262                     %att-accentunder;
263                     %att-globalatts;      >
264
265<!ATTLIST math:mmultiscripts
266                    %att-subscriptshift;
267                    %att-superscriptshift;
268                    %att-globalatts;          >
269
270<!-- presentation layout schemata: script empty elements -->
271
272<!ENTITY % pscreschema "math:mprescripts|math:none" >
273
274<!ELEMENT math:mprescripts    EMPTY          >
275<!ATTLIST math:mprescripts   %att-globalatts;      >
276
277<!ELEMENT math:none          EMPTY          >
278<!ATTLIST math:none          %att-globalatts;      >
279
280<!-- presentation layout schemata: tables -->
281
282<!ENTITY % ptabschema "math:mtable|math:mtr|math:mtd" >
283
284<!ATTLIST math:mtable    %att-tableinfo;
285                    %att-globalatts;      >
286
287<!ATTLIST math:mtr       %att-rowalign;
288                    %att-columnalign;
289                    %att-groupalign;
290                    %att-globalatts; >
291
292<!ATTLIST math:mtd       %att-rowalign;
293                    %att-columnalign;
294                    %att-groupalign;
295                    %att-rowspan;
296                    %att-columnspan;
297                    %att-globalatts;   >
298
299<!ENTITY % plschema  "%pgenschema;|%pscrschema;|%ptabschema;" >
300
301<!-- empty presentation layout schemata -->
302
303<!ENTITY % peschema "math:maligngroup | math:malignmark" >
304
305<!ELEMENT  math:malignmark  EMPTY          >
306
307<!ATTLIST math:malignmark    %att-edge;
308                        %att-globalatts;      >
309
310<!ELEMENT math:maligngroup    EMPTY          >
311<!ATTLIST math:maligngroup   %att-groupalign;
312                        %att-globalatts;      >
313
314<!-- presentation action schemata -->
315
316<!ENTITY % pactions "math:maction" >
317<!ATTLIST math:maction   %att-actiontype;
318                    %att-selection;
319                    %att-globalatts;     >
320
321<!-- Presentation entity for substitution into content tag constructs -->
322<!-- excludes elements which are not valid as expressions             -->
323
324<!ENTITY % PresInCont    "%ptoken; | %petoken; |
325                          %plschema; | %peschema; | %pactions;">
326
327<!-- Presentation entity - all presentation constructs -->
328
329<!ENTITY % Presentation  "%ptoken; | %petoken; | %pscreschema; |
330                          %plschema; | %peschema; | %pactions;">
331
332<!-- *************************************************  -->
333<!-- Content element set                                -->
334<!-- attribute definitions                              -->
335
336<!ENTITY % att-base              'math:base CDATA "10"'           >
337<!ENTITY % att-closure           'math:closure CDATA "closed"'    >
338<!ENTITY % att-definition        'math:definitionURL CDATA ""'    >
339<!ENTITY % att-encoding          'math:encoding CDATA ""'         >
340<!ENTITY % att-nargs             'math:nargs CDATA "1"'           >
341<!ENTITY % att-occurence         'math:occurence CDATA "function-model"'  >
342<!ENTITY % att-order             'math:order CDATA "numeric"'         >
343<!ENTITY % att-scope             'math:scope CDATA "local"'         >
344<!ENTITY % att-type              'math:type CDATA #IMPLIED'         >
345
346<!-- content leaf token elements -->
347
348<!ENTITY % ctoken "math:ci | math:cn" >
349
350<!ATTLIST math:ci   %att-type;
351               %att-globalatts;     >
352
353<!ATTLIST math:cn   %att-type;
354               %att-base;
355               %att-globalatts;     >
356
357<!-- content elements - specials -->
358
359<!ENTITY % cspecial "math:apply | math:reln | math:lambda" >
360
361<!ATTLIST math:apply   %att-globalatts;     >
362
363<!ATTLIST math:reln    %att-globalatts;     >
364
365<!ATTLIST math:lambda  %att-globalatts;     >
366
367<!-- content elements - others -->
368
369<!ENTITY % cother "math:condition | math:declare | math:sep" >
370
371<!ATTLIST math:condition       %att-globalatts;     >
372
373<!ATTLIST math:declare         %att-type;
374                          %att-scope;
375                          %att-nargs;
376                          %att-occurence;
377                          %att-definition;
378                          %att-globalatts;     >
379
380<!ELEMENT math:sep       EMPTY >
381<!ATTLIST math:sep       %att-globalatts;     >
382
383<!-- content elements - semantic mapping -->
384
385<!ENTITY % csemantics "math:semantics | math:annotation | math:annotation-xml" >
386
387<!ATTLIST math:semantics         %att-definition;
388                            %att-globalatts;     >
389
390<!ATTLIST math:annotation        %att-encoding;
391                            %att-globalatts;     >
392
393<!ATTLIST math:annotation-xml    %att-encoding;
394                            %att-globalatts;     >
395
396<!-- content elements - constructors -->
397
398<!ENTITY % cconstructor "math:interval | math:list | math:matrix | math:matrixrow | math:set |
399math:vector" >
400
401<!ATTLIST math:interval     %att-closure;
402                       %att-globalatts;     >
403
404<!ATTLIST math:set          %att-globalatts;     >
405
406<!ATTLIST math:list         %att-order;
407                       %att-globalatts;     >
408
409<!ATTLIST math:vector       %att-globalatts;     >
410
411<!ATTLIST math:matrix       %att-globalatts;     >
412
413<!ATTLIST math:matrixrow    %att-globalatts;     >
414
415<!-- content elements - operators -->
416
417<!ENTITY % cfuncop1ary "math:inverse | math:ident " >
418
419<!ELEMENT math:inverse          EMPTY       >
420<!ATTLIST math:inverse     %att-definition;
421                      %att-globalatts;     >
422
423<!ENTITY % cfuncopnary "math:fn |  math:compose" >
424
425<!ATTLIST math:fn     %att-definition;
426                 %att-globalatts;     >
427
428<!ELEMENT math:ident       EMPTY       >
429<!ATTLIST math:ident       %att-definition;
430                      %att-globalatts;     >
431
432<!ELEMENT math:compose     EMPTY       >
433<!ATTLIST math:compose     %att-definition;
434                      %att-globalatts;     >
435
436<!ENTITY % carithop1ary "math:abs | math:conjugate | math:exp | math:factorial" >
437
438<!ELEMENT math:exp         EMPTY       >
439<!ATTLIST math:exp         %att-definition;
440                      %att-globalatts;     >
441
442<!ELEMENT math:abs         EMPTY       >
443<!ATTLIST math:abs         %att-definition;
444                      %att-globalatts;     >
445
446<!ELEMENT math:conjugate   EMPTY       >
447<!ATTLIST math:conjugate   %att-definition;
448                      %att-globalatts;     >
449
450<!ELEMENT math:factorial   EMPTY       >
451<!ATTLIST math:factorial   %att-definition;
452                      %att-globalatts;     >
453
454<!ENTITY % carithop1or2ary "math:minus" >
455
456<!ELEMENT math:minus       EMPTY       >
457<!ATTLIST math:minus       %att-definition;
458                      %att-globalatts;     >
459
460<!ENTITY % carithop2ary "math:quotient | math:divide | math:power | math:rem" >
461
462<!ELEMENT math:quotient       EMPTY       >
463<!ATTLIST math:quotient       %att-definition;
464                         %att-globalatts;     >
465
466<!ELEMENT math:divide       EMPTY       >
467<!ATTLIST math:divide       %att-definition;
468                       %att-globalatts;     >
469
470<!ELEMENT math:power          EMPTY       >
471<!ATTLIST math:power       %att-definition;
472                      %att-globalatts;     >
473
474<!ELEMENT math:rem          EMPTY       >
475<!ATTLIST math:rem        %att-definition;
476                     %att-globalatts;     >
477
478<!ENTITY % carithopnary "math:plus | math:times | math:max | math:min | math:gcd" >
479
480<!ELEMENT math:plus          EMPTY       >
481<!ATTLIST math:plus        %att-definition;
482                      %att-globalatts;     >
483
484<!ELEMENT math:max          EMPTY       >
485<!ATTLIST math:max         %att-definition;
486                      %att-globalatts;     >
487
488<!ELEMENT math:min          EMPTY       >
489<!ATTLIST math:min         %att-definition;
490                      %att-globalatts;     >
491
492<!ELEMENT math:times          EMPTY       >
493<!ATTLIST math:times     %att-definition;
494                    %att-globalatts;     >
495
496<!ELEMENT math:gcd          EMPTY       >
497<!ATTLIST math:gcd     %att-definition;
498                  %att-globalatts;     >
499
500<!ENTITY % carithoproot "math:root" >
501
502<!ELEMENT math:root          EMPTY       >
503<!ATTLIST math:root     %att-definition;
504                   %att-globalatts;     >
505
506<!ENTITY % clogicopquant "math:exists | math:forall" >
507
508<!ELEMENT math:exists          EMPTY       >
509<!ATTLIST math:exists     %att-definition;
510                      %att-globalatts;     >
511
512<!ELEMENT math:forall          EMPTY       >
513<!ATTLIST math:forall     %att-definition;
514                      %att-globalatts;     >
515
516<!ENTITY % clogicopnary "math:and | math:or | math:xor" >
517
518<!ELEMENT math:and          EMPTY       >
519<!ATTLIST math:and     %att-definition;
520                      %att-globalatts;     >
521
522<!ELEMENT math:or          EMPTY       >
523<!ATTLIST math:or     %att-definition;
524                      %att-globalatts;     >
525
526<!ELEMENT math:xor          EMPTY       >
527<!ATTLIST math:xor     %att-definition;
528                      %att-globalatts;     >
529
530<!ENTITY % clogicop1ary "math:not" >
531
532<!ELEMENT math:not          EMPTY       >
533<!ATTLIST math:not     %att-definition;
534                      %att-globalatts;     >
535
536<!ENTITY % clogicop2ary "math:implies" >
537
538<!ELEMENT math:implies          EMPTY       >
539<!ATTLIST math:implies     %att-definition;
540                      %att-globalatts;     >
541
542<!ENTITY % ccalcop "math:log | math:int | math:diff | math:partialdiff" >
543
544<!ELEMENT math:log          EMPTY       >
545<!ATTLIST math:log     %att-definition;
546                      %att-globalatts;     >
547
548<!ELEMENT math:int          EMPTY       >
549<!ATTLIST math:int     %att-definition;
550                      %att-globalatts;     >
551
552<!ELEMENT math:diff          EMPTY       >
553<!ATTLIST math:diff     %att-definition;
554                      %att-globalatts;     >
555
556<!ELEMENT math:partialdiff          EMPTY       >
557<!ATTLIST math:partialdiff     %att-definition;
558                      %att-globalatts;     >
559
560<!ENTITY % ccalcop1ary "math:ln" >
561
562<!ELEMENT math:ln          EMPTY       >
563<!ATTLIST math:ln     %att-definition;
564                      %att-globalatts;     >
565
566<!ENTITY % csetop2ary "math:setdiff" >
567
568<!ELEMENT math:setdiff          EMPTY       >
569<!ATTLIST math:setdiff     %att-definition;
570                      %att-globalatts;     >
571
572<!ENTITY % csetopnary "math:union | math:intersect" >
573
574<!ELEMENT math:union          EMPTY       >
575<!ATTLIST math:union     %att-definition;
576                      %att-globalatts;     >
577
578<!ELEMENT math:intersect          EMPTY       >
579<!ATTLIST math:intersect     %att-definition;
580                      %att-globalatts;     >
581
582<!ENTITY % cseqop "math:sum | math:product | math:limit" >
583
584<!ELEMENT math:sum          EMPTY       >
585<!ATTLIST math:sum     %att-definition;
586                      %att-globalatts;     >
587
588<!ELEMENT math:product          EMPTY       >
589<!ATTLIST math:product     %att-definition;
590                      %att-globalatts;     >
591
592<!ELEMENT math:limit          EMPTY       >
593<!ATTLIST math:limit     %att-definition;
594                      %att-globalatts;     >
595
596<!ENTITY % ctrigop "math:sin | math:cos | math:tan | math:sec | math:csc | math:cot | math:sinh
597                | math:cosh | math:tanh | math:sech | math:csch | math:coth
598                | math:arcsin | math:arccos | math:arctan" >
599
600<!ELEMENT math:sin          EMPTY       >
601<!ATTLIST math:sin     %att-definition;
602                      %att-globalatts;     >
603
604<!ELEMENT math:cos          EMPTY       >
605<!ATTLIST math:cos     %att-definition;
606                      %att-globalatts;     >
607
608<!ELEMENT math:tan          EMPTY       >
609<!ATTLIST math:tan     %att-definition;
610                      %att-globalatts;     >
611
612<!ELEMENT math:sec          EMPTY       >
613<!ATTLIST math:sec     %att-definition;
614                      %att-globalatts;     >
615
616<!ELEMENT math:csc          EMPTY       >
617<!ATTLIST math:csc     %att-definition;
618                      %att-globalatts;     >
619
620<!ELEMENT math:cot          EMPTY       >
621<!ATTLIST math:cot     %att-definition;
622                      %att-globalatts;     >
623
624<!ELEMENT math:sinh          EMPTY       >
625<!ATTLIST math:sinh     %att-definition;
626                      %att-globalatts;     >
627
628<!ELEMENT math:cosh          EMPTY       >
629<!ATTLIST math:cosh     %att-definition;
630                      %att-globalatts;     >
631
632<!ELEMENT math:tanh          EMPTY       >
633<!ATTLIST math:tanh     %att-definition;
634                      %att-globalatts;     >
635
636<!ELEMENT math:sech          EMPTY       >
637<!ATTLIST math:sech     %att-definition;
638                      %att-globalatts;     >
639
640<!ELEMENT math:csch          EMPTY       >
641<!ATTLIST math:csch     %att-definition;
642                      %att-globalatts;     >
643
644<!ELEMENT math:coth          EMPTY       >
645<!ATTLIST math:coth     %att-definition;
646                      %att-globalatts;     >
647
648<!ELEMENT math:arcsin          EMPTY       >
649<!ATTLIST math:arcsin     %att-definition;
650                      %att-globalatts;     >
651
652<!ELEMENT math:arccos          EMPTY       >
653<!ATTLIST math:arccos     %att-definition;
654                      %att-globalatts;     >
655
656<!ELEMENT math:arctan          EMPTY       >
657<!ATTLIST math:arctan     %att-definition;
658                      %att-globalatts;     >
659
660<!ENTITY % cstatopnary "math:mean | math:sdev | math:variance | math:median | math:mode" >
661
662<!ELEMENT math:mean          EMPTY       >
663<!ATTLIST math:mean     %att-definition;
664                      %att-globalatts;     >
665
666<!ELEMENT math:sdev          EMPTY       >
667<!ATTLIST math:sdev     %att-definition;
668                      %att-globalatts;     >
669
670<!ELEMENT math:variance          EMPTY       >
671<!ATTLIST math:variance     %att-definition;
672                      %att-globalatts;     >
673
674<!ELEMENT math:median          EMPTY       >
675<!ATTLIST math:median     %att-definition;
676                      %att-globalatts;     >
677
678<!ELEMENT math:mode          EMPTY       >
679<!ATTLIST math:mode     %att-definition;
680                      %att-globalatts;     >
681
682<!ENTITY % cstatopmoment "math:moment" >
683
684<!ELEMENT math:moment          EMPTY       >
685<!ATTLIST math:moment     %att-definition;
686                      %att-globalatts;     >
687
688<!ENTITY % clalgop1ary "math:determinant | math:transpose" >
689
690<!ELEMENT math:determinant          EMPTY       >
691<!ATTLIST math:determinant     %att-definition;
692                      %att-globalatts;     >
693
694<!ELEMENT math:transpose          EMPTY       >
695<!ATTLIST math:transpose     %att-definition;
696                      %att-globalatts;     >
697
698<!ENTITY % clalgopnary "math:selector" >
699
700<!ELEMENT math:selector          EMPTY       >
701<!ATTLIST math:selector     %att-definition;
702                      %att-globalatts;     >
703
704<!-- content elements -  relations  -->
705
706<!ENTITY % cgenrel2ary "math:neq" >
707
708<!ELEMENT math:neq          EMPTY       >
709<!ATTLIST math:neq     %att-definition;
710                      %att-globalatts;     >
711
712<!ENTITY % cgenrelnary "math:eq | math:leq | math:lt | math:geq | math:gt" >
713
714<!ELEMENT math:eq          EMPTY       >
715<!ATTLIST math:eq     %att-definition;
716                      %att-globalatts;     >
717
718<!ELEMENT math:gt          EMPTY       >
719<!ATTLIST math:gt     %att-definition;
720                      %att-globalatts;     >
721
722<!ELEMENT math:lt          EMPTY       >
723<!ATTLIST math:lt     %att-definition;
724                      %att-globalatts;     >
725
726<!ELEMENT math:geq          EMPTY       >
727<!ATTLIST math:geq     %att-definition;
728                      %att-globalatts;     >
729
730<!ELEMENT math:leq          EMPTY       >
731<!ATTLIST math:leq     %att-definition;
732                      %att-globalatts;     >
733
734<!ENTITY % csetrel2ary "math:in | math:notin | math:notsubset | math:notprsubset" >
735
736<!ELEMENT math:in          EMPTY       >
737<!ATTLIST math:in     %att-definition;
738                      %att-globalatts;     >
739
740<!ELEMENT math:notin          EMPTY       >
741<!ATTLIST math:notin     %att-definition;
742                      %att-globalatts;     >
743
744<!ELEMENT math:notsubset          EMPTY       >
745<!ATTLIST math:notsubset     %att-definition;
746                      %att-globalatts;     >
747
748<!ELEMENT math:notprsubset          EMPTY       >
749<!ATTLIST math:notprsubset     %att-definition;
750                      %att-globalatts;     >
751
752<!ENTITY % csetrelnary "math:subset | math:prsubset" >
753
754<!ELEMENT math:subset          EMPTY       >
755<!ATTLIST math:subset     %att-definition;
756                      %att-globalatts;     >
757
758<!ELEMENT math:prsubset          EMPTY       >
759<!ATTLIST math:prsubset     %att-definition;
760                      %att-globalatts;     >
761
762<!ENTITY % cseqrel2ary "math:tendsto" >
763
764<!ELEMENT math:tendsto          EMPTY       >
765<!ATTLIST math:tendsto     %att-definition;
766                      %att-type;
767                      %att-globalatts;     >
768
769<!-- content elements -  quantifiers  -->
770
771<!ENTITY % cquantifier "math:lowlimit | math:uplimit | math:bvar | math:degree | math:logbase" >
772
773<!ATTLIST math:lowlimit  %att-globalatts;     >
774
775<!ATTLIST math:uplimit  %att-globalatts;     >
776
777<!ATTLIST math:bvar     %att-globalatts;     >
778
779<!ATTLIST math:degree   %att-globalatts;     >
780
781<!ATTLIST math:logbase  %att-globalatts;     >
782
783<!-- operator groups -->
784
785<!ENTITY % cop1ary "%cfuncop1ary; | %carithop1ary; | %clogicop1ary;
786                    | %ccalcop1ary; | %ctrigop; | %clalgop1ary; " >
787
788<!ENTITY % cop2ary "%carithop2ary; | %clogicop2ary;| %csetop2ary; " >
789
790<!ENTITY % copnary "%cfuncopnary; | %carithopnary; | %clogicopnary;
791                    | %csetopnary; | %cstatopnary;  | %clalgopnary; " >
792
793<!ENTITY % copmisc "%carithoproot; | %carithop1or2ary; | %ccalcop;
794                    | %cseqop; | %cstatopmoment; | %clogicopquant;" >
795
796<!-- relation groups -->
797
798<!ENTITY % crel2ary "%cgenrel2ary;  | %csetrel2ary; | %cseqrel2ary;   " >
799
800<!ENTITY % crelnary "%cgenrelnary; | %csetrelnary;" >
801
802<!-- content constructs - all -->
803
804<!ENTITY % Content "%ctoken; | %cspecial;  | %cother;  | %csemantics;
805                    |%cconstructor; | %cquantifier;
806                    |%cop1ary; |%cop2ary; |%copnary; |%copmisc;
807                    |%crel2ary; |%crelnary;" >
808
809<!-- content constructs for substitution in presentation structures -->
810
811<!ENTITY % ContInPres "math:ci | math:cn  | math:apply  | math:fn | math:lambda | math:reln
812                    | math:interval | math:list | math:matrix |math:matrixrow
813                    | math:set | math:vector | math:semantics" > <!--dpc-->
814
815<!-- *************************************************  -->
816
817<!-- recursive definition for content of expressions             -->
818<!-- include presentation tag constructs at lowest level         -->
819<!-- so presentation layout schemata hold presentation or Content -->
820<!-- include Content tag constructs at lowest level              -->
821<!-- so Content tokens hold PCDATA or Presentation at leaf level -->
822<!-- (for permitted substitutable elements in context)           -->
823
824<!ENTITY % ContentExpression   "(%Content; | %PresInCont;)* "     >
825<!ENTITY % PresExpression      "(%Presentation; | %ContInPres;)* "     >
826<!ENTITY % MathExpression      "(%PresInCont; | %ContInPres;)* "     >
827
828<!--  content token elements (may hold embedded presentation constructs)
829-->
830
831<!ELEMENT math:ci       (#PCDATA | %PresInCont;)*   >
832<!ELEMENT math:cn       (#PCDATA | math:sep | %PresInCont;)*   >
833
834<!--  content special elements    -->
835
836<!ELEMENT math:apply      (%ContentExpression;)   >
837<!ELEMENT math:reln       (%ContentExpression;)   >
838<!ELEMENT math:lambda     (%ContentExpression;)   >
839
840<!--  content other elements    -->
841
842<!ELEMENT math:condition      (%ContentExpression;)   >
843<!ELEMENT math:declare        (%ContentExpression;)   >
844
845<!--  content semantics elements    -->
846
847<!ELEMENT math:semantics              (%ContentExpression;)   >
848<!ELEMENT math:annotation             (#PCDATA)                >
849<!ELEMENT math:annotation-xml         (%ContentExpression;)   >
850
851<!--  content constructor elements    -->
852
853<!ELEMENT math:interval       (%ContentExpression;)   >
854<!ELEMENT math:set            (%ContentExpression;)   >
855<!ELEMENT math:list           (%ContentExpression;)   >
856<!ELEMENT math:vector         (%ContentExpression;)   >
857<!ELEMENT math:matrix         (%ContentExpression;)   >
858<!ELEMENT math:matrixrow      (%ContentExpression;)   >
859
860<!--  content operator element (user-defined)    -->
861
862<!ELEMENT math:fn       (%ContentExpression;)   >
863
864<!--  content quantifier elements    -->
865
866<!ELEMENT math:lowlimit       (%ContentExpression;)   >
867<!ELEMENT math:uplimit        (%ContentExpression;)   >
868<!ELEMENT math:bvar           (%ContentExpression;)   >
869<!ELEMENT math:degree         (%ContentExpression;)   >
870<!ELEMENT math:logbase        (%ContentExpression;)   >
871
872<!-- *************************************************  -->
873<!-- presentation layout schema contain tokens, layout and content
874schema  -->
875
876<!ELEMENT math:mstyle          (%PresExpression;)                      >
877<!ELEMENT math:merror          (%PresExpression;)                      >
878<!ELEMENT math:mphantom        (%PresExpression;)                      >
879<!ELEMENT math:mrow            (%PresExpression;)                      >
880<!ELEMENT math:mfrac           (%PresExpression;)                      >
881<!ELEMENT math:msqrt           (%PresExpression;)                      >
882<!ELEMENT math:mroot           (%PresExpression;)                      >
883<!ELEMENT math:msub            (%PresExpression;)                      >
884<!ELEMENT math:msup            (%PresExpression;)                      >
885<!ELEMENT math:msubsup         (%PresExpression;)                      >
886<!ELEMENT math:mmultiscripts   (%PresExpression;)                      >
887<!ELEMENT math:munder          (%PresExpression;)                      >
888<!ELEMENT math:mover           (%PresExpression;)                      >
889<!ELEMENT math:munderover      (%PresExpression;)                      >
890<!ELEMENT math:mtable          (%PresExpression;)                      >
891<!ELEMENT math:mtr             (%PresExpression;)                      >
892<!ELEMENT math:mtd             (%PresExpression;)                      >
893<!ELEMENT math:maction         (%PresExpression;)                      >
894<!ELEMENT math:mfenced         (%PresExpression;)                      >
895<!ELEMENT math:mpadded         (%PresExpression;)                      >
896
897<!-- presentation tokens contain PCDATA or malignmark constructs -->
898
899<!ELEMENT math:mi     (#PCDATA | math:malignmark )*        >
900<!ELEMENT math:mn     (#PCDATA | math:malignmark )*        >
901<!ELEMENT math:mo     (#PCDATA | math:malignmark )*        >
902<!ELEMENT math:mtext  (#PCDATA | math:malignmark )*        >
903<!ELEMENT math:ms     (#PCDATA | math:malignmark )*        >
904
905<!-- *************************************************  -->
906<!-- browser interface definition -->
907
908<!-- attributes for top level math element -->
909
910<!ENTITY  %     att-macros      'math:macros CDATA #IMPLIED' >
911<!ENTITY  %     att-mode        'math:mode   CDATA #IMPLIED' >
912
913<!ENTITY  %     att-topinfo    '%att-globalatts;
914                                %att-macros;
915                                %att-mode;'     >
916
917<!-- attributes for browser interface element element -->
918
919<!ENTITY  %     att-name        'math:name CDATA #IMPLIED' >
920<!ENTITY  %     att-baseline    'math:baseline CDATA #IMPLIED' >
921<!ENTITY  %     att-overflow    'math:overflow
922(scroll|elide|truncate|scale) "scroll"' >
923<!ENTITY  %     att-altimg      'math:altimg CDATA #IMPLIED' >
924<!ENTITY  %     att-alttext     'math:alttext CDATA #IMPLIED' >
925
926<!ENTITY  %     att-browif      '%att-type;
927                                %att-name;
928                                %att-height;
929                                %att-width;
930                                %att-baseline;
931                                %att-overflow;
932                                %att-altimg;
933                                %att-alttext; '     >
934
935<!-- the top level math  element      -->
936<!-- math  contains MathML encoded mathematics -->
937<!-- math has the browser info attributes iff it is the
938    browser interface element also -->
939
940<!ELEMENT math:math       (%MathExpression;)    >
941
942<!ATTLIST  math:math         %att-topinfo;
943                        %att-browif;   >
944
945
946<!-- ENTITY sets -->
947
948<!-- ... removed ... -->
949
950
951<!-- MathML new characters -->
952
953<!-- ... removed ... -->
954
955<!-- end of ENTITY sets -->
956<!-- end of DTD fragment -->
957<!-- *************************************************  -->
958