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/ -->
7 <!-- Modified DTD for MathML 1.01 -->
10 <!-- http://www.w3.org/1999/07/REC-MathML-19990707/mmlents.zip -->
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 -->
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 -->
27 <!-- revised 14.May.1997 by Robert Miner -->
28 <!-- revised 29.June.1997 and 2.July.1997 by s.buswell -->
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 -->
35 <!-- W3C Recommendation 7 April 1998 -->
36 <!-- ************************************************* -->
38 <!-- general attribute definitions for class & style & id & other -->
39 <!-- : attributes shared by all mathml elements -->
41 <!ENTITY % att-globalatts 'math:class CDATA #IMPLIED
42 math:style CDATA #IMPLIED
44 math:other CDATA #IMPLIED'
>
46 <!-- ************************************************* -->
47 <!-- Presentation element set -->
49 <!-- presentation attribute definitions -->
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'
>
57 <!ENTITY % att-fontinfo '%att-fontsize;
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 )
75 <!ENTITY % att-accent 'math:accent (true | false) #IMPLIED'
>
77 <!ENTITY % att-opinfo '%att-form;
90 <!ENTITY % att-width 'math:width CDATA #IMPLIED'
>
91 <!ENTITY % att-height 'math:height CDATA #IMPLIED'
>
92 <!ENTITY % att-depth 'math:depth CDATA #IMPLIED'
>
94 <!ENTITY % att-sizeinfo '%att-width;
98 <!ENTITY % att-lquote 'math:lquote CDATA #IMPLIED'
>
99 <!ENTITY % att-rquote 'math:rquote CDATA #IMPLIED'
>
101 <!ENTITY % att-linethickness 'math:linethickness CDATA #IMPLIED'
>
103 <!ENTITY % att-scriptlevel 'math:scriptlevel CDATA #IMPLIED'
>
104 <!ENTITY % att-displaystyle 'math:displaystyle (true | false)
106 <!ENTITY % att-scriptsizemultiplier 'math:scriptsizemultiplier CDATA
108 <!ENTITY % att-scriptminsize 'math:scriptminsize CDATA #IMPLIED'
>
109 <!ENTITY % att-background 'math:background CDATA #IMPLIED'
>
111 <!ENTITY % att-open 'math:open CDATA #IMPLIED'
>
112 <!ENTITY % att-close 'math:close CDATA #IMPLIED'
>
113 <!ENTITY % att-separators 'math:separators CDATA #IMPLIED'
>
115 <!ENTITY % att-subscriptshift 'math:subscriptshift CDATA #IMPLIED'
>
116 <!ENTITY % att-superscriptshift 'math:superscriptshift CDATA #IMPLIED'
>
118 <!ENTITY % att-accentunder 'math:accentunder (true | false)
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'
>
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)
133 <!ENTITY % att-framespacing 'math:framespacing CDATA #IMPLIED'
>
134 <!ENTITY % att-equalrows 'math:equalrows CDATA #IMPLIED'
>
135 <!ENTITY % att-equalcolumns 'math:equalcolumns CDATA #IMPLIED'
>
137 <!ENTITY % att-tableinfo '%att-align;
150 %att-displaystyle;'
>
152 <!ENTITY % att-rowspan 'math:rowspan CDATA #IMPLIED'
>
153 <!ENTITY % att-columnspan 'math:columnspan CDATA #IMPLIED'
>
155 <!ENTITY % att-edge 'math:edge (left | right) #IMPLIED '
>
157 <!ENTITY % att-actiontype 'math:actiontype CDATA #IMPLIED'
>
158 <!ENTITY % att-selection 'math:selection CDATA #IMPLIED '
>
160 <!-- presentation token schemata with content-->
162 <!ENTITY % ptoken
"math:mi | math:mn | math:mo | math:mtext | math:ms" >
164 <!ATTLIST math:mi %att-fontinfo;
167 <!ATTLIST math:mn %att-fontinfo;
170 <!ATTLIST math:mo %att-fontinfo;
174 <!ATTLIST math:mtext %att-fontinfo;
177 <!ATTLIST math:ms %att-fontinfo;
182 <!-- empty presentation token schemata -->
184 <!ENTITY % petoken
"math:mspace" >
185 <!ELEMENT math:mspace EMPTY
>
187 <!ATTLIST math:mspace %att-sizeinfo;
190 <!-- presentation general layout schemata -->
192 <!ENTITY % pgenschema
"math:mrow|math:mfrac|math:msqrt|math:mroot|
193 math:mstyle|math:merror|math:mpadded| math:mphantom|math:mfenced" >
195 <!ATTLIST math:mrow %att-globalatts;
>
197 <!ATTLIST math:mfrac %att-linethickness;
200 <!ATTLIST math:msqrt %att-globalatts;
>
202 <!ATTLIST math:mroot %att-globalatts;
>
204 <!ATTLIST math:mstyle %att-fontinfo;
210 %att-scriptsizemultiplier;
217 %att-superscriptshift;
227 <!ATTLIST math:merror %att-globalatts;
>
229 <!ATTLIST math:mpadded %att-sizeinfo;
233 <!ATTLIST math:mphantom %att-globalatts;
>
235 <!ATTLIST math:mfenced %att-open;
240 <!-- presentation layout schemata : scripts and limits -->
242 <!ENTITY % pscrschema
"math:msub|math:msup|math:msubsup|
243 math:munder|math:mover|math:munderover|math:mmultiscripts" >
245 <!ATTLIST math:msub %att-subscriptshift;
248 <!ATTLIST math:msup %att-superscriptshift;
251 <!ATTLIST math:msubsup %att-subscriptshift;
252 %att-superscriptshift;
255 <!ATTLIST math:munder %att-accentunder;
258 <!ATTLIST math:mover %att-accent;
261 <!ATTLIST math:munderover %att-accent;
265 <!ATTLIST math:mmultiscripts
267 %att-superscriptshift;
270 <!-- presentation layout schemata: script empty elements -->
272 <!ENTITY % pscreschema
"math:mprescripts|math:none" >
274 <!ELEMENT math:mprescripts EMPTY
>
275 <!ATTLIST math:mprescripts %att-globalatts;
>
277 <!ELEMENT math:none EMPTY
>
278 <!ATTLIST math:none %att-globalatts;
>
280 <!-- presentation layout schemata: tables -->
282 <!ENTITY % ptabschema
"math:mtable|math:mtr|math:mtd" >
284 <!ATTLIST math:mtable %att-tableinfo;
287 <!ATTLIST math:mtr %att-rowalign;
292 <!ATTLIST math:mtd %att-rowalign;
299 <!ENTITY % plschema
"%pgenschema;|%pscrschema;|%ptabschema;" >
301 <!-- empty presentation layout schemata -->
303 <!ENTITY % peschema
"math:maligngroup | math:malignmark" >
305 <!ELEMENT math:malignmark EMPTY
>
307 <!ATTLIST math:malignmark %att-edge;
310 <!ELEMENT math:maligngroup EMPTY
>
311 <!ATTLIST math:maligngroup %att-groupalign;
314 <!-- presentation action schemata -->
316 <!ENTITY % pactions
"math:maction" >
317 <!ATTLIST math:maction %att-actiontype;
321 <!-- Presentation entity for substitution into content tag constructs -->
322 <!-- excludes elements which are not valid as expressions -->
324 <!ENTITY % PresInCont
"%ptoken; | %petoken; |
325 %plschema; | %peschema; | %pactions;">
327 <!-- Presentation entity - all presentation constructs -->
329 <!ENTITY % Presentation
"%ptoken; | %petoken; | %pscreschema; |
330 %plschema; | %peschema; | %pactions;">
332 <!-- ************************************************* -->
333 <!-- Content element set -->
334 <!-- attribute definitions -->
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'
>
346 <!-- content leaf token elements -->
348 <!ENTITY % ctoken
"math:ci | math:cn" >
350 <!ATTLIST math:ci %att-type;
353 <!ATTLIST math:cn %att-type;
357 <!-- content elements - specials -->
359 <!ENTITY % cspecial
"math:apply | math:reln | math:lambda" >
361 <!ATTLIST math:apply %att-globalatts;
>
363 <!ATTLIST math:reln %att-globalatts;
>
365 <!ATTLIST math:lambda %att-globalatts;
>
367 <!-- content elements - others -->
369 <!ENTITY % cother
"math:condition | math:declare | math:sep" >
371 <!ATTLIST math:condition %att-globalatts;
>
373 <!ATTLIST math:declare %att-type;
380 <!ELEMENT math:sep EMPTY
>
381 <!ATTLIST math:sep %att-globalatts;
>
383 <!-- content elements - semantic mapping -->
385 <!ENTITY % csemantics
"math:semantics | math:annotation | math:annotation-xml" >
387 <!ATTLIST math:semantics %att-definition;
390 <!ATTLIST math:annotation %att-encoding;
393 <!ATTLIST math:annotation-xml %att-encoding;
396 <!-- content elements - constructors -->
398 <!ENTITY % cconstructor
"math:interval | math:list | math:matrix | math:matrixrow | math:set |
401 <!ATTLIST math:interval %att-closure;
404 <!ATTLIST math:set %att-globalatts;
>
406 <!ATTLIST math:list %att-order;
409 <!ATTLIST math:vector %att-globalatts;
>
411 <!ATTLIST math:matrix %att-globalatts;
>
413 <!ATTLIST math:matrixrow %att-globalatts;
>
415 <!-- content elements - operators -->
417 <!ENTITY % cfuncop1ary
"math:inverse | math:ident " >
419 <!ELEMENT math:inverse EMPTY
>
420 <!ATTLIST math:inverse %att-definition;
423 <!ENTITY % cfuncopnary
"math:fn | math:compose" >
425 <!ATTLIST math:fn %att-definition;
428 <!ELEMENT math:ident EMPTY
>
429 <!ATTLIST math:ident %att-definition;
432 <!ELEMENT math:compose EMPTY
>
433 <!ATTLIST math:compose %att-definition;
436 <!ENTITY % carithop1ary
"math:abs | math:conjugate | math:exp | math:factorial" >
438 <!ELEMENT math:exp EMPTY
>
439 <!ATTLIST math:exp %att-definition;
442 <!ELEMENT math:abs EMPTY
>
443 <!ATTLIST math:abs %att-definition;
446 <!ELEMENT math:conjugate EMPTY
>
447 <!ATTLIST math:conjugate %att-definition;
450 <!ELEMENT math:factorial EMPTY
>
451 <!ATTLIST math:factorial %att-definition;
454 <!ENTITY % carithop1or2ary
"math:minus" >
456 <!ELEMENT math:minus EMPTY
>
457 <!ATTLIST math:minus %att-definition;
460 <!ENTITY % carithop2ary
"math:quotient | math:divide | math:power | math:rem" >
462 <!ELEMENT math:quotient EMPTY
>
463 <!ATTLIST math:quotient %att-definition;
466 <!ELEMENT math:divide EMPTY
>
467 <!ATTLIST math:divide %att-definition;
470 <!ELEMENT math:power EMPTY
>
471 <!ATTLIST math:power %att-definition;
474 <!ELEMENT math:rem EMPTY
>
475 <!ATTLIST math:rem %att-definition;
478 <!ENTITY % carithopnary
"math:plus | math:times | math:max | math:min | math:gcd" >
480 <!ELEMENT math:plus EMPTY
>
481 <!ATTLIST math:plus %att-definition;
484 <!ELEMENT math:max EMPTY
>
485 <!ATTLIST math:max %att-definition;
488 <!ELEMENT math:min EMPTY
>
489 <!ATTLIST math:min %att-definition;
492 <!ELEMENT math:times EMPTY
>
493 <!ATTLIST math:times %att-definition;
496 <!ELEMENT math:gcd EMPTY
>
497 <!ATTLIST math:gcd %att-definition;
500 <!ENTITY % carithoproot
"math:root" >
502 <!ELEMENT math:root EMPTY
>
503 <!ATTLIST math:root %att-definition;
506 <!ENTITY % clogicopquant
"math:exists | math:forall" >
508 <!ELEMENT math:exists EMPTY
>
509 <!ATTLIST math:exists %att-definition;
512 <!ELEMENT math:forall EMPTY
>
513 <!ATTLIST math:forall %att-definition;
516 <!ENTITY % clogicopnary
"math:and | math:or | math:xor" >
518 <!ELEMENT math:and EMPTY
>
519 <!ATTLIST math:and %att-definition;
522 <!ELEMENT math:or EMPTY
>
523 <!ATTLIST math:or %att-definition;
526 <!ELEMENT math:xor EMPTY
>
527 <!ATTLIST math:xor %att-definition;
530 <!ENTITY % clogicop1ary
"math:not" >
532 <!ELEMENT math:not EMPTY
>
533 <!ATTLIST math:not %att-definition;
536 <!ENTITY % clogicop2ary
"math:implies" >
538 <!ELEMENT math:implies EMPTY
>
539 <!ATTLIST math:implies %att-definition;
542 <!ENTITY % ccalcop
"math:log | math:int | math:diff | math:partialdiff" >
544 <!ELEMENT math:log EMPTY
>
545 <!ATTLIST math:log %att-definition;
548 <!ELEMENT math:int EMPTY
>
549 <!ATTLIST math:int %att-definition;
552 <!ELEMENT math:diff EMPTY
>
553 <!ATTLIST math:diff %att-definition;
556 <!ELEMENT math:partialdiff EMPTY
>
557 <!ATTLIST math:partialdiff %att-definition;
560 <!ENTITY % ccalcop1ary
"math:ln" >
562 <!ELEMENT math:ln EMPTY
>
563 <!ATTLIST math:ln %att-definition;
566 <!ENTITY % csetop2ary
"math:setdiff" >
568 <!ELEMENT math:setdiff EMPTY
>
569 <!ATTLIST math:setdiff %att-definition;
572 <!ENTITY % csetopnary
"math:union | math:intersect" >
574 <!ELEMENT math:union EMPTY
>
575 <!ATTLIST math:union %att-definition;
578 <!ELEMENT math:intersect EMPTY
>
579 <!ATTLIST math:intersect %att-definition;
582 <!ENTITY % cseqop
"math:sum | math:product | math:limit" >
584 <!ELEMENT math:sum EMPTY
>
585 <!ATTLIST math:sum %att-definition;
588 <!ELEMENT math:product EMPTY
>
589 <!ATTLIST math:product %att-definition;
592 <!ELEMENT math:limit EMPTY
>
593 <!ATTLIST math:limit %att-definition;
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" >
600 <!ELEMENT math:sin EMPTY
>
601 <!ATTLIST math:sin %att-definition;
604 <!ELEMENT math:cos EMPTY
>
605 <!ATTLIST math:cos %att-definition;
608 <!ELEMENT math:tan EMPTY
>
609 <!ATTLIST math:tan %att-definition;
612 <!ELEMENT math:sec EMPTY
>
613 <!ATTLIST math:sec %att-definition;
616 <!ELEMENT math:csc EMPTY
>
617 <!ATTLIST math:csc %att-definition;
620 <!ELEMENT math:cot EMPTY
>
621 <!ATTLIST math:cot %att-definition;
624 <!ELEMENT math:sinh EMPTY
>
625 <!ATTLIST math:sinh %att-definition;
628 <!ELEMENT math:cosh EMPTY
>
629 <!ATTLIST math:cosh %att-definition;
632 <!ELEMENT math:tanh EMPTY
>
633 <!ATTLIST math:tanh %att-definition;
636 <!ELEMENT math:sech EMPTY
>
637 <!ATTLIST math:sech %att-definition;
640 <!ELEMENT math:csch EMPTY
>
641 <!ATTLIST math:csch %att-definition;
644 <!ELEMENT math:coth EMPTY
>
645 <!ATTLIST math:coth %att-definition;
648 <!ELEMENT math:arcsin EMPTY
>
649 <!ATTLIST math:arcsin %att-definition;
652 <!ELEMENT math:arccos EMPTY
>
653 <!ATTLIST math:arccos %att-definition;
656 <!ELEMENT math:arctan EMPTY
>
657 <!ATTLIST math:arctan %att-definition;
660 <!ENTITY % cstatopnary
"math:mean | math:sdev | math:variance | math:median | math:mode" >
662 <!ELEMENT math:mean EMPTY
>
663 <!ATTLIST math:mean %att-definition;
666 <!ELEMENT math:sdev EMPTY
>
667 <!ATTLIST math:sdev %att-definition;
670 <!ELEMENT math:variance EMPTY
>
671 <!ATTLIST math:variance %att-definition;
674 <!ELEMENT math:median EMPTY
>
675 <!ATTLIST math:median %att-definition;
678 <!ELEMENT math:mode EMPTY
>
679 <!ATTLIST math:mode %att-definition;
682 <!ENTITY % cstatopmoment
"math:moment" >
684 <!ELEMENT math:moment EMPTY
>
685 <!ATTLIST math:moment %att-definition;
688 <!ENTITY % clalgop1ary
"math:determinant | math:transpose" >
690 <!ELEMENT math:determinant EMPTY
>
691 <!ATTLIST math:determinant %att-definition;
694 <!ELEMENT math:transpose EMPTY
>
695 <!ATTLIST math:transpose %att-definition;
698 <!ENTITY % clalgopnary
"math:selector" >
700 <!ELEMENT math:selector EMPTY
>
701 <!ATTLIST math:selector %att-definition;
704 <!-- content elements - relations -->
706 <!ENTITY % cgenrel2ary
"math:neq" >
708 <!ELEMENT math:neq EMPTY
>
709 <!ATTLIST math:neq %att-definition;
712 <!ENTITY % cgenrelnary
"math:eq | math:leq | math:lt | math:geq | math:gt" >
714 <!ELEMENT math:eq EMPTY
>
715 <!ATTLIST math:eq %att-definition;
718 <!ELEMENT math:gt EMPTY
>
719 <!ATTLIST math:gt %att-definition;
722 <!ELEMENT math:lt EMPTY
>
723 <!ATTLIST math:lt %att-definition;
726 <!ELEMENT math:geq EMPTY
>
727 <!ATTLIST math:geq %att-definition;
730 <!ELEMENT math:leq EMPTY
>
731 <!ATTLIST math:leq %att-definition;
734 <!ENTITY % csetrel2ary
"math:in | math:notin | math:notsubset | math:notprsubset" >
736 <!ELEMENT math:in EMPTY
>
737 <!ATTLIST math:in %att-definition;
740 <!ELEMENT math:notin EMPTY
>
741 <!ATTLIST math:notin %att-definition;
744 <!ELEMENT math:notsubset EMPTY
>
745 <!ATTLIST math:notsubset %att-definition;
748 <!ELEMENT math:notprsubset EMPTY
>
749 <!ATTLIST math:notprsubset %att-definition;
752 <!ENTITY % csetrelnary
"math:subset | math:prsubset" >
754 <!ELEMENT math:subset EMPTY
>
755 <!ATTLIST math:subset %att-definition;
758 <!ELEMENT math:prsubset EMPTY
>
759 <!ATTLIST math:prsubset %att-definition;
762 <!ENTITY % cseqrel2ary
"math:tendsto" >
764 <!ELEMENT math:tendsto EMPTY
>
765 <!ATTLIST math:tendsto %att-definition;
769 <!-- content elements - quantifiers -->
771 <!ENTITY % cquantifier
"math:lowlimit | math:uplimit | math:bvar | math:degree | math:logbase" >
773 <!ATTLIST math:lowlimit %att-globalatts;
>
775 <!ATTLIST math:uplimit %att-globalatts;
>
777 <!ATTLIST math:bvar %att-globalatts;
>
779 <!ATTLIST math:degree %att-globalatts;
>
781 <!ATTLIST math:logbase %att-globalatts;
>
783 <!-- operator groups -->
785 <!ENTITY % cop1ary
"%cfuncop1ary; | %carithop1ary; | %clogicop1ary;
786 | %ccalcop1ary; | %ctrigop; | %clalgop1ary; " >
788 <!ENTITY % cop2ary
"%carithop2ary; | %clogicop2ary;| %csetop2ary; " >
790 <!ENTITY % copnary
"%cfuncopnary; | %carithopnary; | %clogicopnary;
791 | %csetopnary; | %cstatopnary; | %clalgopnary; " >
793 <!ENTITY % copmisc
"%carithoproot; | %carithop1or2ary; | %ccalcop;
794 | %cseqop; | %cstatopmoment; | %clogicopquant;" >
796 <!-- relation groups -->
798 <!ENTITY % crel2ary
"%cgenrel2ary; | %csetrel2ary; | %cseqrel2ary; " >
800 <!ENTITY % crelnary
"%cgenrelnary; | %csetrelnary;" >
802 <!-- content constructs - all -->
804 <!ENTITY % Content
"%ctoken; | %cspecial; | %cother; | %csemantics;
805 |%cconstructor; | %cquantifier;
806 |%cop1ary; |%cop2ary; |%copnary; |%copmisc;
807 |%crel2ary; |%crelnary;" >
809 <!-- content constructs for substitution in presentation structures -->
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-->
815 <!-- ************************************************* -->
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) -->
824 <!ENTITY % ContentExpression
"(%Content; | %PresInCont;)* " >
825 <!ENTITY % PresExpression
"(%Presentation; | %ContInPres;)* " >
826 <!ENTITY % MathExpression
"(%PresInCont; | %ContInPres;)* " >
828 <!-- content token elements (may hold embedded presentation constructs)
831 <!ELEMENT math:ci (#PCDATA | %PresInCont;)*
>
832 <!ELEMENT math:cn (#PCDATA | math:sep | %PresInCont;)*
>
834 <!-- content special elements -->
836 <!ELEMENT math:apply (%ContentExpression;)
>
837 <!ELEMENT math:reln (%ContentExpression;)
>
838 <!ELEMENT math:lambda (%ContentExpression;)
>
840 <!-- content other elements -->
842 <!ELEMENT math:condition (%ContentExpression;)
>
843 <!ELEMENT math:declare (%ContentExpression;)
>
845 <!-- content semantics elements -->
847 <!ELEMENT math:semantics (%ContentExpression;)
>
848 <!ELEMENT math:annotation (#PCDATA)
>
849 <!ELEMENT math:annotation-xml (%ContentExpression;)
>
851 <!-- content constructor elements -->
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;)
>
860 <!-- content operator element (user-defined) -->
862 <!ELEMENT math:fn (%ContentExpression;)
>
864 <!-- content quantifier elements -->
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;)
>
872 <!-- ************************************************* -->
873 <!-- presentation layout schema contain tokens, layout and content
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;)
>
897 <!-- presentation tokens contain PCDATA or malignmark constructs -->
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 )*
>
905 <!-- ************************************************* -->
906 <!-- browser interface definition -->
908 <!-- attributes for top level math element -->
910 <!ENTITY % att-macros 'math:macros CDATA #IMPLIED'
>
911 <!ENTITY % att-mode 'math:mode CDATA #IMPLIED'
>
913 <!ENTITY % att-topinfo '%att-globalatts;
917 <!-- attributes for browser interface element element -->
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'
>
926 <!ENTITY % att-browif '%att-type;
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 -->
940 <!ELEMENT math:math (%MathExpression;)
>
942 <!ATTLIST math:math %att-topinfo;
948 <!-- ... removed ... -->
951 <!-- MathML new characters -->
953 <!-- ... removed ... -->
955 <!-- end of ENTITY sets -->
956 <!-- end of DTD fragment -->
957 <!-- ************************************************* -->