Up: Table of Contents | REC-MathML-19980407 |
MathML documents should be validated using the XML DTD below. Note in particular that the xml attribute xml:space is not used, so whitespace characters in element content (ie. outside the presentation token elements mi, mo, mn, mtext, mspace, mtext, ms , the content token elements ci, cn and annotation) are not significant.
If the MathML is parsed without a DTD (ie. as a well-formed XML fragment), it is the responsibility of the processing application to treat these whitespace characters as not significant.
An SGML parser (such as nsgmls) can be used to validate MathML. In this case an SGML declaration defining the constraints of XML applicable to an SGML parser must be used. See http://www.w3.org/TR/NOTE-sgml-xml .
<?xml version = "1.0" ?> <!DOCTYPE math [ <!-- Content model for content and presentation --> <!-- and browser interface tags in MathML --> <!-- initial draft 9.May.1997 syntax = XML --> <!-- author = s.buswell sb@stilo.demon.co.uk --> <!-- --> <!-- revised 14.May.1997 by Robert Miner --> <!-- revised 29.June.1997 and 2.July.1997 by s.buswell --> <!-- --> <!-- revised 15.December.1997 by s.buswell --> <!-- revised 8.February.1998 by s.buswell --> <!-- revised 4.april.1998 by s.buswell --> <!-- --> <!-- W3C Recommendation 7 April 1998 --> <!-- ************************************************* --> <!-- general attribute definitions for class & style & id & other --> <!-- : attributes shared by all mathml elements --> <!ENTITY % att-globalatts 'class CDATA #IMPLIED style CDATA #IMPLIED id ID #IMPLIED other CDATA #IMPLIED' > <!-- ************************************************* --> <!-- Presentation element set --> <!-- presentation attribute definitions --> <!ENTITY % att-fontsize 'fontsize CDATA #IMPLIED' > <!ENTITY % att-fontweight 'fontweight (normal | bold) #IMPLIED' > <!ENTITY % att-fontstyle 'fontstyle (normal | italic) #IMPLIED' > <!ENTITY % att-fontfamily 'fontfamily CDATA #IMPLIED' > <!ENTITY % att-color 'color CDATA #IMPLIED' > <!ENTITY % att-fontinfo '%att-fontsize; %att-fontweight; %att-fontstyle; %att-fontfamily; %att-color;' > <!ENTITY % att-form 'form (prefix | infix | postfix) #IMPLIED' > <!ENTITY % att-fence 'fence (true | false ) #IMPLIED' > <!ENTITY % att-separator 'separator (true | false ) #IMPLIED' > <!ENTITY % att-lspace 'lspace CDATA #IMPLIED' > <!ENTITY % att-rspace 'rspace CDATA #IMPLIED' > <!ENTITY % att-stretchy 'stretchy (true | false ) #IMPLIED' > <!ENTITY % att-symmetric 'symmetric (true | false ) #IMPLIED' > <!ENTITY % att-maxsize 'maxsize CDATA #IMPLIED' > <!ENTITY % att-minsize 'minsize CDATA #IMPLIED' > <!ENTITY % att-largeop 'largeop (true | false ) #IMPLIED' > <!ENTITY % att-movablelimits 'movablelimits (true | false ) #IMPLIED' > <!ENTITY % att-accent 'accent (true | false) #IMPLIED'> <!ENTITY % att-opinfo '%att-form; %att-fence; %att-separator; %att-lspace; %att-rspace; %att-stretchy; %att-symmetric; %att-maxsize; %att-minsize; %att-largeop; %att-movablelimits; %att-accent;' > <!ENTITY % att-width 'width CDATA #IMPLIED' > <!ENTITY % att-height 'height CDATA #IMPLIED' > <!ENTITY % att-depth 'depth CDATA #IMPLIED' > <!ENTITY % att-sizeinfo '%att-width; %att-height; %att-depth;' > <!ENTITY % att-lquote 'lquote CDATA #IMPLIED' > <!ENTITY % att-rquote 'rquote CDATA #IMPLIED' > <!ENTITY % att-linethickness 'linethickness CDATA #IMPLIED' > <!ENTITY % att-scriptlevel 'scriptlevel CDATA #IMPLIED'> <!ENTITY % att-displaystyle 'displaystyle (true | false) #IMPLIED'> <!ENTITY % att-scriptsizemultiplier 'scriptsizemultiplier CDATA #IMPLIED' > <!ENTITY % att-scriptminsize 'scriptminsize CDATA #IMPLIED'> <!ENTITY % att-background 'background CDATA #IMPLIED' > <!ENTITY % att-open 'open CDATA #IMPLIED' > <!ENTITY % att-close 'close CDATA #IMPLIED' > <!ENTITY % att-separators 'separators CDATA #IMPLIED' > <!ENTITY % att-subscriptshift 'subscriptshift CDATA #IMPLIED'> <!ENTITY % att-superscriptshift 'superscriptshift CDATA #IMPLIED' > <!ENTITY % att-accentunder 'accentunder (true | false) #IMPLIED'> <!ENTITY % att-align 'align CDATA #IMPLIED' > <!ENTITY % att-rowalign 'rowalign CDATA #IMPLIED' > <!ENTITY % att-columnalign 'columnalign CDATA #IMPLIED' > <!ENTITY % att-groupalign 'groupalign CDATA #IMPLIED' > <!ENTITY % att-alignmentscope 'alignmentscope CDATA #IMPLIED' > <!ENTITY % att-rowspacing 'rowspacing CDATA #IMPLIED' > <!ENTITY % att-columnspacing 'columnspacing CDATA #IMPLIED' > <!ENTITY % att-rowlines 'rowlines CDATA #IMPLIED' > <!ENTITY % att-columnlines 'columnlines CDATA #IMPLIED' > <!ENTITY % att-frame 'frame (none | solid | dashed) #IMPLIED' > <!ENTITY % att-framespacing 'framespacing CDATA #IMPLIED' > <!ENTITY % att-equalrows 'equalrows CDATA #IMPLIED' > <!ENTITY % att-equalcolumns 'equalcolumns CDATA #IMPLIED' > <!ENTITY % att-tableinfo '%att-align; %att-rowalign; %att-columnalign; %att-groupalign; %att-alignmentscope; %att-rowspacing; %att-columnspacing; %att-rowlines; %att-columnlines; %att-frame; %att-framespacing; %att-equalrows; %att-equalcolumns; %att-displaystyle;' > <!ENTITY % att-rowspan 'rowspan CDATA #IMPLIED' > <!ENTITY % att-columnspan 'columnspan CDATA #IMPLIED' > <!ENTITY % att-edge 'edge (left | right) #IMPLIED ' > <!ENTITY % att-actiontype 'actiontype CDATA #IMPLIED' > <!ENTITY % att-selection 'selection CDATA #IMPLIED ' > <!-- presentation token schemata with content--> <!ENTITY % ptoken "mi | mn | mo | mtext | ms" > <!ATTLIST mi %att-fontinfo; %att-globalatts; > <!ATTLIST mn %att-fontinfo; %att-globalatts; > <!ATTLIST mo %att-fontinfo; %att-opinfo; %att-globalatts; > <!ATTLIST mtext %att-fontinfo; %att-globalatts; > <!ATTLIST ms %att-fontinfo; %att-lquote; %att-rquote; %att-globalatts; > <!-- empty presentation token schemata --> <!ENTITY % petoken "mspace" > <!ELEMENT mspace EMPTY > <!ATTLIST mspace %att-sizeinfo; %att-globalatts; > <!-- presentation general layout schemata --> <!ENTITY % pgenschema "mrow|mfrac|msqrt|mroot| mstyle|merror|mpadded| mphantom|mfenced" > <!ATTLIST mrow %att-globalatts; > <!ATTLIST mfrac %att-linethickness; %att-globalatts; > <!ATTLIST msqrt %att-globalatts; > <!ATTLIST mroot %att-globalatts; > <!ATTLIST mstyle %att-fontinfo; %att-opinfo; %att-lquote; %att-rquote; %att-linethickness; %att-scriptlevel; %att-displaystyle; %att-scriptsizemultiplier; %att-scriptminsize; %att-background; %att-open; %att-close; %att-separators; %att-subscriptshift; %att-superscriptshift; %att-accentunder; %att-tableinfo; %att-rowspan; %att-columnspan; %att-edge; %att-actiontype; %att-selection; %att-globalatts; > <!ATTLIST merror %att-globalatts; > <!ATTLIST mpadded %att-sizeinfo; %att-lspace; %att-globalatts; > <!ATTLIST mphantom %att-globalatts; > <!ATTLIST mfenced %att-open; %att-close; %att-separators; %att-globalatts; > <!-- presentation layout schemata : scripts and limits --> <!ENTITY % pscrschema "msub|msup|msubsup| munder|mover|munderover|mmultiscripts" > <!ATTLIST msub %att-subscriptshift; %att-globalatts; > <!ATTLIST msup %att-superscriptshift; %att-globalatts; > <!ATTLIST msubsup %att-subscriptshift; %att-superscriptshift; %att-globalatts; > <!ATTLIST munder %att-accentunder; %att-globalatts; > <!ATTLIST mover %att-accent; %att-globalatts; > <!ATTLIST munderover %att-accent; %att-accentunder; %att-globalatts; > <!ATTLIST mmultiscripts %att-subscriptshift; %att-superscriptshift; %att-globalatts; > <!-- presentation layout schemata: script empty elements --> <!ENTITY % pscreschema "mprescripts|none" > <!ELEMENT mprescripts EMPTY > <!ATTLIST mprescripts %att-globalatts; > <!ELEMENT none EMPTY > <!ATTLIST none %att-globalatts; > <!-- presentation layout schemata: tables --> <!ENTITY % ptabschema "mtable|mtr|mtd" > <!ATTLIST mtable %att-tableinfo; %att-globalatts; > <!ATTLIST mtr %att-rowalign; %att-columnalign; %att-groupalign; %att-globalatts; > <!ATTLIST mtd %att-rowalign; %att-columnalign; %att-groupalign; %att-rowspan; %att-columnspan; %att-globalatts; > <!ENTITY % plschema "%pgenschema;|%pscrschema;|%ptabschema;" > <!-- empty presentation layout schemata --> <!ENTITY % peschema "maligngroup | malignmark" > <!ELEMENT malignmark EMPTY > <!ATTLIST malignmark %att-edge; %att-globalatts; > <!ELEMENT maligngroup EMPTY > <!ATTLIST maligngroup %att-groupalign; %att-globalatts; > <!-- presentation action schemata --> <!ENTITY % pactions "maction" > <!ATTLIST maction %att-actiontype; %att-selection; %att-globalatts; > <!-- Presentation entity for substitution into content tag constructs --> <!-- excludes elements which are not valid as expressions --> <!ENTITY % PresInCont "%ptoken; | %petoken; | %plschema; | %peschema; | %pactions;"> <!-- Presentation entity - all presentation constructs --> <!ENTITY % Presentation "%ptoken; | %petoken; | %pscreschema; | %plschema; | %peschema; | %pactions;"> <!-- ************************************************* --> <!-- Content element set --> <!-- attribute definitions --> <!ENTITY % att-base 'base CDATA "10"' > <!ENTITY % att-closure 'closure CDATA "closed"' > <!ENTITY % att-definition 'definitionURL CDATA ""' > <!ENTITY % att-encoding 'encoding CDATA ""' > <!ENTITY % att-nargs 'nargs CDATA "1"' > <!ENTITY % att-occurence 'occurence CDATA "function-model"' > <!ENTITY % att-order 'order CDATA "numeric"' > <!ENTITY % att-scope 'scope CDATA "local"' > <!ENTITY % att-type 'type CDATA #IMPLIED' > <!-- content leaf token elements --> <!ENTITY % ctoken "ci | cn" > <!ATTLIST ci %att-type; %att-globalatts; > <!ATTLIST cn %att-type; %att-base; %att-globalatts; > <!-- content elements - specials --> <!ENTITY % cspecial "apply | reln | lambda" > <!ATTLIST apply %att-globalatts; > <!ATTLIST reln %att-globalatts; > <!ATTLIST lambda %att-globalatts; > <!-- content elements - others --> <!ENTITY % cother "condition | declare | sep" > <!ATTLIST condition %att-globalatts; > <!ATTLIST declare %att-type; %att-scope; %att-nargs; %att-occurence; %att-definition; %att-globalatts; > <!ELEMENT sep EMPTY > <!ATTLIST sep %att-globalatts; > <!-- content elements - semantic mapping --> <!ENTITY % csemantics "semantics | annotation | annotation-xml" > <!ATTLIST semantics %att-definition; %att-globalatts; > <!ATTLIST annotation %att-encoding; %att-globalatts; > <!ATTLIST annotation-xml %att-encoding; %att-globalatts; > <!-- content elements - constructors --> <!ENTITY % cconstructor "interval | list | matrix | matrixrow | set | vector" > <!ATTLIST interval %att-closure; %att-globalatts; > <!ATTLIST set %att-globalatts; > <!ATTLIST list %att-order; %att-globalatts; > <!ATTLIST vector %att-globalatts; > <!ATTLIST matrix %att-globalatts; > <!ATTLIST matrixrow %att-globalatts; > <!-- content elements - operators --> <!ENTITY % cfuncop1ary "inverse | ident " > <!ELEMENT inverse EMPTY > <!ATTLIST inverse %att-definition; %att-globalatts; > <!ENTITY % cfuncopnary "fn | compose" > <!ATTLIST fn %att-definition; %att-globalatts; > <!ELEMENT ident EMPTY > <!ATTLIST ident %att-definition; %att-globalatts; > <!ELEMENT compose EMPTY > <!ATTLIST compose %att-definition; %att-globalatts; > <!ENTITY % carithop1ary "abs | conjugate | exp | factorial" > <!ELEMENT exp EMPTY > <!ATTLIST exp %att-definition; %att-globalatts; > <!ELEMENT abs EMPTY > <!ATTLIST abs %att-definition; %att-globalatts; > <!ELEMENT conjugate EMPTY > <!ATTLIST conjugate %att-definition; %att-globalatts; > <!ELEMENT factorial EMPTY > <!ATTLIST factorial %att-definition; %att-globalatts; > <!ENTITY % carithop1or2ary "minus" > <!ELEMENT minus EMPTY > <!ATTLIST minus %att-definition; %att-globalatts; > <!ENTITY % carithop2ary "quotient | divide | power | rem" > <!ELEMENT quotient EMPTY > <!ATTLIST quotient %att-definition; %att-globalatts; > <!ELEMENT divide EMPTY > <!ATTLIST divide %att-definition; %att-globalatts; > <!ELEMENT power EMPTY > <!ATTLIST power %att-definition; %att-globalatts; > <!ELEMENT rem EMPTY > <!ATTLIST rem %att-definition; %att-globalatts; > <!ENTITY % carithopnary "plus | times | max | min | gcd" > <!ELEMENT plus EMPTY > <!ATTLIST plus %att-definition; %att-globalatts; > <!ELEMENT max EMPTY > <!ATTLIST max %att-definition; %att-globalatts; > <!ELEMENT min EMPTY > <!ATTLIST min %att-definition; %att-globalatts; > <!ELEMENT times EMPTY > <!ATTLIST times %att-definition; %att-globalatts; > <!ELEMENT gcd EMPTY > <!ATTLIST gcd %att-definition; %att-globalatts; > <!ENTITY % carithoproot "root" > <!ELEMENT root EMPTY > <!ATTLIST root %att-definition; %att-globalatts; > <!ENTITY % clogicopquant "exists | forall" > <!ELEMENT exists EMPTY > <!ATTLIST exists %att-definition; %att-globalatts; > <!ELEMENT forall EMPTY > <!ATTLIST forall %att-definition; %att-globalatts; > <!ENTITY % clogicopnary "and | or | xor" > <!ELEMENT and EMPTY > <!ATTLIST and %att-definition; %att-globalatts; > <!ELEMENT or EMPTY > <!ATTLIST or %att-definition; %att-globalatts; > <!ELEMENT xor EMPTY > <!ATTLIST xor %att-definition; %att-globalatts; > <!ENTITY % clogicop1ary "not" > <!ELEMENT not EMPTY > <!ATTLIST not %att-definition; %att-globalatts; > <!ENTITY % clogicop2ary "implies" > <!ELEMENT implies EMPTY > <!ATTLIST implies %att-definition; %att-globalatts; > <!ENTITY % ccalcop "log | int | diff | partialdiff" > <!ELEMENT log EMPTY > <!ATTLIST log %att-definition; %att-globalatts; > <!ELEMENT int EMPTY > <!ATTLIST int %att-definition; %att-globalatts; > <!ELEMENT diff EMPTY > <!ATTLIST diff %att-definition; %att-globalatts; > <!ELEMENT partialdiff EMPTY > <!ATTLIST partialdiff %att-definition; %att-globalatts; > <!ENTITY % ccalcop1ary "ln" > <!ELEMENT ln EMPTY > <!ATTLIST ln %att-definition; %att-globalatts; > <!ENTITY % csetop2ary "setdiff" > <!ELEMENT setdiff EMPTY > <!ATTLIST setdiff %att-definition; %att-globalatts; > <!ENTITY % csetopnary "union | intersect" > <!ELEMENT union EMPTY > <!ATTLIST union %att-definition; %att-globalatts; > <!ELEMENT intersect EMPTY > <!ATTLIST intersect %att-definition; %att-globalatts; > <!ENTITY % cseqop "sum | product | limit" > <!ELEMENT sum EMPTY > <!ATTLIST sum %att-definition; %att-globalatts; > <!ELEMENT product EMPTY > <!ATTLIST product %att-definition; %att-globalatts; > <!ELEMENT limit EMPTY > <!ATTLIST limit %att-definition; %att-globalatts; > <!ENTITY % ctrigop "sin | cos | tan | sec | csc | cot | sinh | cosh | tanh | sech | csch | coth | arcsin | arccos | arctan" > <!ELEMENT sin EMPTY > <!ATTLIST sin %att-definition; %att-globalatts; > <!ELEMENT cos EMPTY > <!ATTLIST cos %att-definition; %att-globalatts; > <!ELEMENT tan EMPTY > <!ATTLIST tan %att-definition; %att-globalatts; > <!ELEMENT sec EMPTY > <!ATTLIST sec %att-definition; %att-globalatts; > <!ELEMENT csc EMPTY > <!ATTLIST csc %att-definition; %att-globalatts; > <!ELEMENT cot EMPTY > <!ATTLIST cot %att-definition; %att-globalatts; > <!ELEMENT sinh EMPTY > <!ATTLIST sinh %att-definition; %att-globalatts; > <!ELEMENT cosh EMPTY > <!ATTLIST cosh %att-definition; %att-globalatts; > <!ELEMENT tanh EMPTY > <!ATTLIST tanh %att-definition; %att-globalatts; > <!ELEMENT sech EMPTY > <!ATTLIST sech %att-definition; %att-globalatts; > <!ELEMENT csch EMPTY > <!ATTLIST csch %att-definition; %att-globalatts; > <!ELEMENT coth EMPTY > <!ATTLIST coth %att-definition; %att-globalatts; > <!ELEMENT arcsin EMPTY > <!ATTLIST arcsin %att-definition; %att-globalatts; > <!ELEMENT arccos EMPTY > <!ATTLIST arccos %att-definition; %att-globalatts; > <!ELEMENT arctan EMPTY > <!ATTLIST arctan %att-definition; %att-globalatts; > <!ENTITY % cstatopnary "mean | sdev | var | median | mode" > <!ELEMENT mean EMPTY > <!ATTLIST mean %att-definition; %att-globalatts; > <!ELEMENT sdev EMPTY > <!ATTLIST sdev %att-definition; %att-globalatts; > <!ELEMENT var EMPTY > <!ATTLIST var %att-definition; %att-globalatts; > <!ELEMENT median EMPTY > <!ATTLIST median %att-definition; %att-globalatts; > <!ELEMENT mode EMPTY > <!ATTLIST mode %att-definition; %att-globalatts; > <!ENTITY % cstatopmoment "moment" > <!ELEMENT moment EMPTY > <!ATTLIST moment %att-definition; %att-globalatts; > <!ENTITY % clalgop1ary "determinant | transpose" > <!ELEMENT determinant EMPTY > <!ATTLIST determinant %att-definition; %att-globalatts; > <!ELEMENT transpose EMPTY > <!ATTLIST transpose %att-definition; %att-globalatts; > <!ENTITY % clalgopnary "select" > <!ELEMENT select EMPTY > <!ATTLIST select %att-definition; %att-globalatts; > <!-- content elements - relations --> <!ENTITY % cgenrel2ary "neq" > <!ELEMENT neq EMPTY > <!ATTLIST neq %att-definition; %att-globalatts; > <!ENTITY % cgenrelnary "eq | leq | lt | geq | gt" > <!ELEMENT eq EMPTY > <!ATTLIST eq %att-definition; %att-globalatts; > <!ELEMENT gt EMPTY > <!ATTLIST gt %att-definition; %att-globalatts; > <!ELEMENT lt EMPTY > <!ATTLIST lt %att-definition; %att-globalatts; > <!ELEMENT geq EMPTY > <!ATTLIST geq %att-definition; %att-globalatts; > <!ELEMENT leq EMPTY > <!ATTLIST leq %att-definition; %att-globalatts; > <!ENTITY % csetrel2ary "in | notin | notsubset | notprsubset" > <!ELEMENT in EMPTY > <!ATTLIST in %att-definition; %att-globalatts; > <!ELEMENT notin EMPTY > <!ATTLIST notin %att-definition; %att-globalatts; > <!ELEMENT notsubset EMPTY > <!ATTLIST notsubset %att-definition; %att-globalatts; > <!ELEMENT notprsubset EMPTY > <!ATTLIST notprsubset %att-definition; %att-globalatts; > <!ENTITY % csetrelnary "subset | prsubset" > <!ELEMENT subset EMPTY > <!ATTLIST subset %att-definition; %att-globalatts; > <!ELEMENT prsubset EMPTY > <!ATTLIST prsubset %att-definition; %att-globalatts; > <!ENTITY % cseqrel2ary "tendsto" > <!ELEMENT tendsto EMPTY > <!ATTLIST tendsto %att-definition; %att-type; %att-globalatts; > <!-- content elements - quantifiers --> <!ENTITY % cquantifier "lowlimit | uplimit | bvar | degree | logbase" > <!ATTLIST lowlimit %att-globalatts; > <!ATTLIST uplimit %att-globalatts; > <!ATTLIST bvar %att-globalatts; > <!ATTLIST degree %att-globalatts; > <!ATTLIST logbase %att-globalatts; > <!-- operator groups --> <!ENTITY % cop1ary "%cfuncop1ary; | %carithop1ary; | %clogicop1ary; | %ccalcop1ary; | %ctrigop; | %clalgop1ary; " > <!ENTITY % cop2ary "%carithop2ary; | %clogicop2ary;| %csetop2ary; " > <!ENTITY % copnary "%cfuncopnary; | %carithopnary; | %clogicopnary; | %csetopnary; | %cstatopnary; | %clalgopnary; " > <!ENTITY % copmisc "%carithoproot; | %carithop1or2ary; | %ccalcop; | %cseqop; | %cstatopmoment; | %clogicopquant;" > <!-- relation groups --> <!ENTITY % crel2ary "%cgenrel2ary; | %csetrel2ary; | %cseqrel2ary; " > <!ENTITY % crelnary "%cgenrelnary; | %csetrelnary;" > <!-- content constructs - all --> <!ENTITY % Content "%ctoken; | %cspecial; | %cother; | %csemantics; |%cconstructor; | %cquantifier; |%cop1ary; |%cop2ary; |%copnary; |%copmisc; |%crel2ary; |%crelnary;" > <!-- content constructs for substitution in presentation structures --> <!ENTITY % ContInPres "ci | cn | apply | fn | lambda | reln | interval | list | matrix |matrixrow | set | vector" > <!-- ************************************************* --> <!-- recursive definition for content of expressions --> <!-- include presentation tag constructs at lowest level --> <!-- so presentation layout schemata hold presentation or Content --> <!-- include Content tag constructs at lowest level --> <!-- so Content tokens hold PCDATA or Presentation at leaf level --> <!-- (for permitted substitutable elements in context) --> <!ENTITY % ContentExpression "(%Content; | %PresInCont;)* " > <!ENTITY % PresExpression "(%Presentation; | %ContInPres;)* " > <!ENTITY % MathExpression "(%PresInCont; | %ContInPres;)* " > <!-- content token elements (may hold embedded presentation constructs) --> <!ELEMENT ci (#PCDATA | %PresInCont;)* > <!ELEMENT cn (#PCDATA | sep | %PresInCont;)* > <!-- content special elements --> <!ELEMENT apply (%ContentExpression;) > <!ELEMENT reln (%ContentExpression;) > <!ELEMENT lambda (%ContentExpression;) > <!-- content other elements --> <!ELEMENT condition (%ContentExpression;) > <!ELEMENT declare (%ContentExpression;) > <!-- content semantics elements --> <!ELEMENT semantics (%ContentExpression;) > <!ELEMENT annotation (#PCDATA) > <!ELEMENT annotation-xml (%ContentExpression;) > <!-- content constructor elements --> <!ELEMENT interval (%ContentExpression;) > <!ELEMENT set (%ContentExpression;) > <!ELEMENT list (%ContentExpression;) > <!ELEMENT vector (%ContentExpression;) > <!ELEMENT matrix (%ContentExpression;) > <!ELEMENT matrixrow (%ContentExpression;) > <!-- content operator element (user-defined) --> <!ELEMENT fn (%ContentExpression;) > <!-- content quantifier elements --> <!ELEMENT lowlimit (%ContentExpression;) > <!ELEMENT uplimit (%ContentExpression;) > <!ELEMENT bvar (%ContentExpression;) > <!ELEMENT degree (%ContentExpression;) > <!ELEMENT logbase (%ContentExpression;) > <!-- ************************************************* --> <!-- presentation layout schema contain tokens, layout and content schema --> <!ELEMENT mstyle (%PresExpression;) > <!ELEMENT merror (%PresExpression;) > <!ELEMENT mphantom (%PresExpression;) > <!ELEMENT mrow (%PresExpression;) > <!ELEMENT mfrac (%PresExpression;) > <!ELEMENT msqrt (%PresExpression;) > <!ELEMENT mroot (%PresExpression;) > <!ELEMENT msub (%PresExpression;) > <!ELEMENT msup (%PresExpression;) > <!ELEMENT msubsup (%PresExpression;) > <!ELEMENT mmultiscripts (%PresExpression;) > <!ELEMENT munder (%PresExpression;) > <!ELEMENT mover (%PresExpression;) > <!ELEMENT munderover (%PresExpression;) > <!ELEMENT mtable (%PresExpression;) > <!ELEMENT mtr (%PresExpression;) > <!ELEMENT mtd (%PresExpression;) > <!ELEMENT maction (%PresExpression;) > <!ELEMENT mfenced (%PresExpression;) > <!ELEMENT mpadded (%PresExpression;) > <!-- presentation tokens contain PCDATA or malignmark constructs --> <!ELEMENT mi (#PCDATA | malignmark )* > <!ELEMENT mn (#PCDATA | malignmark )* > <!ELEMENT mo (#PCDATA | malignmark )* > <!ELEMENT mtext (#PCDATA | malignmark )* > <!ELEMENT ms (#PCDATA | malignmark )* > <!-- ************************************************* --> <!-- browser interface definition --> <!-- attributes for top level math element --> <!ENTITY % att-macros 'macros CDATA #IMPLIED' > <!ENTITY % att-mode 'mode CDATA #IMPLIED' > <!ENTITY % att-topinfo '%att-globalatts; %att-macros; %att-mode;' > <!-- attributes for browser interface element element --> <!ENTITY % att-name 'name CDATA #IMPLIED' > <!ENTITY % att-height 'height CDATA #IMPLIED' > <!ENTITY % att-width 'width CDATA #IMPLIED' > <!ENTITY % att-baseline 'baseline CDATA #IMPLIED' > <!ENTITY % att-overflow 'overflow (scroll|elide|truncate|scale) "scroll"' > <!ENTITY % att-altimg 'altimg CDATA #IMPLIED' > <!ENTITY % att-alttext 'alttext CDATA #IMPLIED' > <!ENTITY % att-browif '%att-type; %att-name; %att-height; %att-width; %att-baseline; %att-overflow; %att-altimg; %att-alttext; ' > <!-- the top level math element --> <!-- math contains MathML encoded mathematics --> <!-- math has the browser info attributes iff it is the browser interface element also --> <!ELEMENT math (%MathExpression;) > <!ATTLIST math %att-topinfo; %att-browif; > <!-- end of DTD fragment --> <!-- ************************************************* --> ]>