summaryrefslogtreecommitdiffstats
path: root/htdocs/sgml-lib/WD-MathML3-20100610/mathml3.dtd
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/sgml-lib/WD-MathML3-20100610/mathml3.dtd')
-rw-r--r--htdocs/sgml-lib/WD-MathML3-20100610/mathml3.dtd1662
1 files changed, 1662 insertions, 0 deletions
diff --git a/htdocs/sgml-lib/WD-MathML3-20100610/mathml3.dtd b/htdocs/sgml-lib/WD-MathML3-20100610/mathml3.dtd
new file mode 100644
index 0000000..ad4fae1
--- /dev/null
+++ b/htdocs/sgml-lib/WD-MathML3-20100610/mathml3.dtd
@@ -0,0 +1,1662 @@
+
+<!-- MathML 3.0 DTD ....................................................... -->
+<!-- file: mathml3.dtd
+-->
+
+<!-- MathML 3.0 DTD
+
+ This is the Mathematical Markup Language (MathML) 3.0, an XML
+ application for describing mathematical notation and capturing
+ both its structure and content.
+
+ Copyright &#xa9; 1998-2010 W3C&#xae; (MIT, ERCIM, Keio), All Rights
+ Reserved. W3C liability, trademark, document use and software
+ licensing rules apply.
+
+ Permission to use, copy, modify and distribute the MathML 2.0 DTD and
+ its accompanying documentation for any purpose and without fee is
+ hereby granted in perpetuity, provided that the above copyright notice
+ and this paragraph appear in all copies. The copyright holders make
+ no representation about the suitability of the DTD for any purpose.
+
+ It is provided "as is" without expressed or implied warranty.
+
+ This entity may be identified by the PUBLIC and SYSTEM identifiers:
+
+ PUBLIC "-//W3C//DTD MathML 3.0//EN"
+ SYSTEM "mathml3.dtd"
+
+ Revisions: editor and revision history at EOF
+-->
+<!-- Entity used to enable marked sections which enforces stricter
+ checking of MathML syntax rules
+-->
+<!ENTITY % MathMLstrict "IGNORE">
+
+<!-- MathML Qualified Names module ............................... -->
+<!ENTITY % mathml-qname.module "INCLUDE" >
+<![%mathml-qname.module;[
+<!ENTITY % mathml-qname.mod
+ PUBLIC "-//W3C//ENTITIES MathML 3.0 Qualified Names 1.0//EN"
+ "mathml3-qname.mod" >
+%mathml-qname.mod;]]>
+
+<!-- if %NS.prefixed; is INCLUDE, include all NS attributes,
+ otherwise just those associated with MathML
+-->
+<![%NS.prefixed;[
+ <!ENTITY % MATHML.NamespaceDecl.attrib
+ "%NamespaceDecl.attrib;"
+>
+]]>
+<!ENTITY % MATHML.NamespaceDecl.attrib
+ "%MATHML.xmlns.attrib;"
+>
+
+
+<!-- MathML Character Entities .............................................. -->
+<!ENTITY % mathml-charent.module "INCLUDE" >
+<![%mathml-charent.module;[
+
+
+<!ENTITY % isobox PUBLIC "-//W3C//ENTITIES Box and Line Drawing//EN" "isobox.ent">
+%isobox;
+<!ENTITY % isocyr1 PUBLIC "-//W3C//ENTITIES Russian Cyrillic//EN" "isocyr1.ent">
+%isocyr1;
+<!ENTITY % isocyr2 PUBLIC "-//W3C//ENTITIES Non-Russian Cyrillic//EN" "isocyr2.ent">
+%isocyr2;
+<!ENTITY % isodia PUBLIC "-//W3C//ENTITIES Diacritical Marks//EN" "isodia.ent">
+%isodia;
+<!ENTITY % isolat1 PUBLIC "-//W3C//ENTITIES Added Latin 1//EN" "isolat1.ent">
+%isolat1;
+<!ENTITY % isolat2 PUBLIC "-//W3C//ENTITIES Added Latin 2//EN" "isolat2.ent">
+%isolat2;
+<!ENTITY % isonum PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic//EN" "isonum.ent">
+%isonum;
+<!ENTITY % isopub PUBLIC "-//W3C//ENTITIES Publishing//EN" "isopub.ent">
+%isopub;
+<!ENTITY % isoamsa PUBLIC "-//W3C//ENTITIES Added Math Symbols: Arrow Relations//EN" "isoamsa.ent">
+%isoamsa;
+<!ENTITY % isoamsb PUBLIC "-//W3C//ENTITIES Added Math Symbols: Binary Operators//EN" "isoamsb.ent">
+%isoamsb;
+<!ENTITY % isoamsc PUBLIC "-//W3C//ENTITIES Added Math Symbols: Delimiters//EN" "isoamsc.ent">
+%isoamsc;
+<!ENTITY % isoamsn PUBLIC "-//W3C//ENTITIES Added Math Symbols: Negated Relations//EN" "isoamsn.ent">
+%isoamsn;
+<!ENTITY % isoamso PUBLIC "-//W3C//ENTITIES Added Math Symbols: Ordinary//EN" "isoamso.ent">
+%isoamso;
+<!ENTITY % isoamsr PUBLIC "-//W3C//ENTITIES Added Math Symbols: Relations//EN" "isoamsr.ent">
+%isoamsr;
+<!ENTITY % isogrk3 PUBLIC "-//W3C//ENTITIES Greek Symbols//EN" "isogrk3.ent">
+%isogrk3;
+<!ENTITY % isomfrk PUBLIC "-//W3C//ENTITIES Math Alphabets: Fraktur//EN" "isomfrk.ent">
+%isomfrk;
+<!ENTITY % isomopf PUBLIC "-//W3C//ENTITIES Math Alphabets: Open Face//EN" "isomopf.ent">
+%isomopf;
+<!ENTITY % isomscr PUBLIC "-//W3C//ENTITIES Math Alphabets: Script//EN" "isomscr.ent">
+%isomscr;
+<!ENTITY % isotech PUBLIC "-//W3C//ENTITIES General Technical//EN" "isotech.ent">
+%isotech;
+<!ENTITY % mmlextra PUBLIC "-//W3C//ENTITIES Additional MathML Symbols//EN" "mmlextra.ent">
+%mmlextra;
+<!ENTITY % mmlalias PUBLIC "-//W3C//ENTITIES MathML Aliases//EN" "mmlalias.ent">
+%mmlalias;
+
+<!-- end of MathML Character Entity section -->]]>
+
+
+
+<!ENTITY % MalignExpression "%maligngroup.qname;|%malignmark.qname;">
+
+<!ENTITY % TokenExpression "%mi.qname;|%mn.qname;|%mo.qname;|%mtext.qname;
+ |%mspace.qname;|%ms.qname;">
+
+<!ENTITY % PresentationExpression "%TokenExpression;|%MalignExpression;
+ |%mrow.qname;|%mfrac.qname;|%msqrt.qname;
+ |%mroot.qname;|%mstyle.qname;
+ |%merror.qname;|%mpadded.qname;
+ |%mphantom.qname;|%mfenced.qname;
+ |%menclose.qname;|%msub.qname;|%msup.qname;
+ |%msubsup.qname;|%munder.qname;
+ |%mover.qname;|%munderover.qname;
+ |%mmultiscripts.qname;|%mtable.qname;
+ |%mstack.qname;|%mlongdiv.qname;
+ |%maction.qname;">
+
+<!-- end of mathml3-strict-content.rng -->
+
+<!ENTITY % cn.content "(#PCDATA|%mglyph.qname;|%sep.qname;
+ |%PresentationExpression;)*">
+
+<!-- start of mathml3-content.rng -->
+
+<!-- start of mathml3-strict-content.rng -->
+
+<!ELEMENT %cn.qname; %cn.content;>
+
+<!ENTITY % ci.content "(#PCDATA|%mglyph.qname;
+ |%PresentationExpression;)*">
+
+<!ELEMENT %ci.qname; %ci.content;>
+
+<!ENTITY % csymbol.content "(#PCDATA|%mglyph.qname;
+ |%PresentationExpression;)*">
+
+<!ELEMENT %csymbol.qname; %csymbol.content;>
+
+<!ENTITY % SymbolName "#PCDATA">
+
+<!ENTITY % BvarQ "(%bvar.qname;)*">
+
+<!ENTITY % DomainQ "(%domainofapplication.qname;|%condition.qname;
+ |(%lowlimit.qname;,%uplimit.qname;?))*">
+
+<!ENTITY % constant-arith.class "%exponentiale.qname;|%imaginaryi.qname;
+ |%notanumber.qname;|%true.qname;
+ |%false.qname;|%pi.qname;|%eulergamma.qname;
+ |%infinity.qname;">
+
+<!ENTITY % constant-set.class "%integers.qname;|%reals.qname;
+ |%rationals.qname;|%naturalnumbers.qname;
+ |%complexes.qname;|%primes.qname;
+ |%emptyset.qname;">
+
+<!ENTITY % binary-linalg.class "%vectorproduct.qname;|%scalarproduct.qname;
+ |%outerproduct.qname;">
+
+<!ENTITY % nary-linalg.class "%selector.qname;">
+
+<!ENTITY % unary-linalg.class "%determinant.qname;|%transpose.qname;">
+
+<!ENTITY % nary-constructor.class "%vector.qname;|%matrix.qname;
+ |%matrixrow.qname;">
+
+<!ENTITY % nary-stats.class "%mean.qname;|%sdev.qname;|%variance.qname;
+ |%median.qname;|%mode.qname;">
+
+<!ENTITY % unary-elementary.class "%sin.qname;|%cos.qname;|%tan.qname;
+ |%sec.qname;|%csc.qname;|%cot.qname;
+ |%sinh.qname;|%cosh.qname;|%tanh.qname;
+ |%sech.qname;|%csch.qname;|%coth.qname;
+ |%arcsin.qname;|%arccos.qname;
+ |%arctan.qname;|%arccosh.qname;
+ |%arccot.qname;|%arccoth.qname;
+ |%arccsc.qname;|%arccsch.qname;
+ |%arcsec.qname;|%arcsech.qname;
+ |%arcsinh.qname;|%arctanh.qname;">
+
+<!ENTITY % limit.class "%limit.qname;">
+
+<!ENTITY % product.class "%product.qname;">
+
+<!ENTITY % sum.class "%sum.qname;">
+
+<!ENTITY % unary-set.class "%card.qname;">
+
+<!ENTITY % nary-set-reln.class "%subset.qname;|%prsubset.qname;">
+
+<!ENTITY % binary-set.class "%in.qname;|%notin.qname;|%notsubset.qname;
+ |%notprsubset.qname;|%setdiff.qname;">
+
+<!ENTITY % nary-set.class "%union.qname;|%intersect.qname;
+ |%cartesianproduct.qname;">
+
+<!ENTITY % nary-setlist-constructor.class "%set.qname;|%list.qname;">
+
+<!ENTITY % unary-veccalc.class "%divergence.qname;|%grad.qname;|%curl.qname;
+ |%laplacian.qname;">
+
+<!ENTITY % partialdiff.class "%partialdiff.qname;">
+
+<!ENTITY % Differential-Operator.class "%diff.qname;">
+
+<!ENTITY % int.class "%int.qname;">
+
+<!ENTITY % binary-reln.class "%neq.qname;|%approx.qname;|%factorof.qname;
+ |%tendsto.qname;">
+
+<!ENTITY % nary-reln.class "%eq.qname;|%gt.qname;|%lt.qname;|%geq.qname;
+ |%leq.qname;">
+
+<!ENTITY % quantifier.class "%forall.qname;|%exists.qname;">
+
+<!ENTITY % binary-logical.class "%implies.qname;|%equivalent.qname;">
+
+<!ENTITY % unary-logical.class "%not.qname;">
+
+<!ENTITY % nary-logical.class "%and.qname;|%or.qname;|%xor.qname;">
+
+<!ENTITY % nary-arith.class "%plus.qname;|%times.qname;|%gcd.qname;
+ |%lcm.qname;">
+
+<!ENTITY % nary-minmax.class "%max.qname;|%min.qname;">
+
+<!ENTITY % unary-arith.class "%factorial.qname;|%abs.qname;|%conjugate.qname;
+ |%arg.qname;|%real.qname;|%imaginary.qname;
+ |%floor.qname;|%ceiling.qname;|%exp.qname;">
+
+<!ENTITY % binary-arith.class "%quotient.qname;|%divide.qname;|%minus.qname;
+ |%power.qname;|%rem.qname;|%root.qname;">
+
+<!ENTITY % nary-functional.class "%compose.qname;">
+
+<!ENTITY % lambda.class "%lambda.qname;">
+
+<!ENTITY % unary-functional.class "%inverse.qname;|%ident.qname;
+ |%domain.qname;|%codomain.qname;
+ |%image.qname;|%ln.qname;|%log.qname;
+ |%moment.qname;">
+
+<!ENTITY % interval.class "%interval.qname;">
+
+<!ENTITY % DeprecatedContExp "%reln.qname;|%fn.qname;|%declare.qname;">
+
+<!ENTITY % CommonDeprecatedAtt "
+ other CDATA #IMPLIED">
+
+<!ENTITY % Qualifier "(%DomainQ;)|%degree.qname;|%momentabout.qname;
+ |%logbase.qname;">
+
+<!ENTITY % ContExp "%piecewise.qname;|%DeprecatedContExp;|%interval.class;
+ |%unary-functional.class;|%lambda.class;
+ |%nary-functional.class;|%binary-arith.class;
+ |%unary-arith.class;|%nary-minmax.class;
+ |%nary-arith.class;|%nary-logical.class;
+ |%unary-logical.class;|%binary-logical.class;
+ |%quantifier.class;|%nary-reln.class;
+ |%binary-reln.class;|%int.class;
+ |%Differential-Operator.class;|%partialdiff.class;
+ |%unary-veccalc.class;
+ |%nary-setlist-constructor.class;|%nary-set.class;
+ |%binary-set.class;|%nary-set-reln.class;
+ |%unary-set.class;|%sum.class;|%product.class;
+ |%limit.class;|%unary-elementary.class;
+ |%nary-stats.class;|%nary-constructor.class;
+ |%unary-linalg.class;|%nary-linalg.class;
+ |%binary-linalg.class;|%constant-set.class;
+ |%constant-arith.class;|%semantics.qname;|%cn.qname;
+ |%ci.qname;|%csymbol.qname;|%apply.qname;|%bind.qname;
+ |%share.qname;|%cerror.qname;|%cbytes.qname;|%cs.qname;">
+
+<!ENTITY % CommonAtt "
+%MATHML.NamespaceDecl.attrib;
+ %XLINK.prefix;:href CDATA #IMPLIED
+ %XLINK.prefix;:type CDATA #IMPLIED
+ xml:lang CDATA #IMPLIED
+ xml:space (default|preserve) #IMPLIED
+ id CDATA #IMPLIED
+ xref CDATA #IMPLIED
+ class CDATA #IMPLIED
+ style CDATA #IMPLIED
+ href CDATA #IMPLIED
+ %CommonDeprecatedAtt;">
+
+<!ENTITY % apply.content "(%ContExp;),(%BvarQ;),(%Qualifier;)*,
+ (%ContExp;)*">
+
+<!ELEMENT %apply.qname; (%apply.content;)>
+<!ATTLIST %apply.qname;
+ %CommonAtt;>
+
+<!ENTITY % bind.content "%apply.content;">
+
+<!ELEMENT %bind.qname; (%bind.content;)>
+<!ATTLIST %bind.qname;
+ %CommonAtt;>
+
+<!ENTITY % src "
+ src CDATA #IMPLIED">
+
+<!ELEMENT %share.qname; EMPTY>
+<!ATTLIST %share.qname;
+ %CommonAtt;
+ %src;>
+
+<!ELEMENT %cerror.qname; (%csymbol.qname;,(%ContExp;)*)>
+
+<!ATTLIST %cerror.qname;
+ %CommonAtt;>
+
+<!ELEMENT %cbytes.qname; (#PCDATA)>
+
+<!ENTITY % base64 "CDATA">
+
+<!ELEMENT %cs.qname; (#PCDATA)>
+
+<!ENTITY % DefEncAtt "
+ encoding CDATA #IMPLIED
+ definitionURL CDATA #IMPLIED">
+
+<!ATTLIST %cn.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ type CDATA #IMPLIED
+ base CDATA #IMPLIED>
+
+<!ATTLIST %ci.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ type CDATA #IMPLIED>
+
+<!ENTITY % ci.type "
+ type CDATA #REQUIRED">
+
+<!ATTLIST %csymbol.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ type CDATA #IMPLIED
+ cd CDATA #IMPLIED>
+
+<!ELEMENT %bvar.qname; ((%degree.qname;,(%ci.qname;|%semantics.qname;))
+ |((%ci.qname;|%semantics.qname;),(%degree.qname;)?))>
+
+<!ATTLIST %cbytes.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ATTLIST %cs.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ENTITY % base "
+ base CDATA #REQUIRED">
+
+<!ELEMENT %sep.qname; EMPTY>
+
+<!ELEMENT %domainofapplication.qname; (%ContExp;)>
+
+<!ELEMENT %condition.qname; (%ContExp;)>
+
+<!ELEMENT %uplimit.qname; (%ContExp;)>
+
+<!ELEMENT %lowlimit.qname; (%ContExp;)>
+
+<!ELEMENT %degree.qname; (%ContExp;)>
+
+<!ELEMENT %momentabout.qname; (%ContExp;)>
+
+<!ELEMENT %logbase.qname; (%ContExp;)>
+
+<!ENTITY % type "
+ type CDATA #REQUIRED">
+
+<!ENTITY % order "
+ order (numeric|lexicographic) #REQUIRED">
+
+<!ENTITY % closure "
+ closure CDATA #REQUIRED">
+
+<!ELEMENT %piecewise.qname; (%piece.qname;|%otherwise.qname;)*>
+<!ATTLIST %piecewise.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %piece.qname; ((%ContExp;),(%ContExp;))>
+<!ATTLIST %piece.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %otherwise.qname; (%ContExp;)>
+<!ATTLIST %otherwise.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %reln.qname; (%ContExp;)*>
+
+<!ELEMENT %fn.qname; (%ContExp;)>
+
+<!ELEMENT %declare.qname; (%ContExp;)+>
+<!ATTLIST %declare.qname;
+ type CDATA #IMPLIED
+ scope CDATA #IMPLIED
+ nargs CDATA #IMPLIED
+ occurrence (prefix|infix|function-model) #IMPLIED
+ %DefEncAtt;>
+
+<!ELEMENT %interval.qname; ((%ContExp;),(%ContExp;))>
+<!ATTLIST %interval.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ closure CDATA #IMPLIED>
+
+<!ELEMENT %inverse.qname; EMPTY>
+<!ATTLIST %inverse.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %ident.qname; EMPTY>
+<!ATTLIST %ident.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %domain.qname; EMPTY>
+<!ATTLIST %domain.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %codomain.qname; EMPTY>
+<!ATTLIST %codomain.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %image.qname; EMPTY>
+<!ATTLIST %image.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %ln.qname; EMPTY>
+<!ATTLIST %ln.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %log.qname; EMPTY>
+<!ATTLIST %log.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %moment.qname; EMPTY>
+<!ATTLIST %moment.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %lambda.qname; ((%BvarQ;),(%DomainQ;),(%ContExp;))>
+<!ATTLIST %lambda.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %compose.qname; EMPTY>
+<!ATTLIST %compose.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %quotient.qname; EMPTY>
+<!ATTLIST %quotient.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %divide.qname; EMPTY>
+<!ATTLIST %divide.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %minus.qname; EMPTY>
+<!ATTLIST %minus.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %power.qname; EMPTY>
+<!ATTLIST %power.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %rem.qname; EMPTY>
+<!ATTLIST %rem.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %root.qname; EMPTY>
+<!ATTLIST %root.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %factorial.qname; EMPTY>
+<!ATTLIST %factorial.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %abs.qname; EMPTY>
+<!ATTLIST %abs.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %conjugate.qname; EMPTY>
+<!ATTLIST %conjugate.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arg.qname; EMPTY>
+<!ATTLIST %arg.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %real.qname; EMPTY>
+<!ATTLIST %real.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %imaginary.qname; EMPTY>
+<!ATTLIST %imaginary.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %floor.qname; EMPTY>
+<!ATTLIST %floor.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %ceiling.qname; EMPTY>
+<!ATTLIST %ceiling.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %exp.qname; EMPTY>
+<!ATTLIST %exp.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %max.qname; EMPTY>
+<!ATTLIST %max.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %min.qname; EMPTY>
+<!ATTLIST %min.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %plus.qname; EMPTY>
+<!ATTLIST %plus.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %times.qname; EMPTY>
+<!ATTLIST %times.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %gcd.qname; EMPTY>
+<!ATTLIST %gcd.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %lcm.qname; EMPTY>
+<!ATTLIST %lcm.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %and.qname; EMPTY>
+<!ATTLIST %and.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %or.qname; EMPTY>
+<!ATTLIST %or.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %xor.qname; EMPTY>
+<!ATTLIST %xor.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %not.qname; EMPTY>
+<!ATTLIST %not.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %implies.qname; EMPTY>
+<!ATTLIST %implies.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %equivalent.qname; EMPTY>
+<!ATTLIST %equivalent.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %forall.qname; EMPTY>
+<!ATTLIST %forall.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %exists.qname; EMPTY>
+<!ATTLIST %exists.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %eq.qname; EMPTY>
+<!ATTLIST %eq.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %gt.qname; EMPTY>
+<!ATTLIST %gt.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %lt.qname; EMPTY>
+<!ATTLIST %lt.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %geq.qname; EMPTY>
+<!ATTLIST %geq.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %leq.qname; EMPTY>
+<!ATTLIST %leq.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %neq.qname; EMPTY>
+<!ATTLIST %neq.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %approx.qname; EMPTY>
+<!ATTLIST %approx.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %factorof.qname; EMPTY>
+<!ATTLIST %factorof.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %tendsto.qname; EMPTY>
+<!ATTLIST %tendsto.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ type CDATA #IMPLIED>
+
+<!ELEMENT %int.qname; EMPTY>
+<!ATTLIST %int.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %diff.qname; EMPTY>
+<!ATTLIST %diff.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %partialdiff.qname; EMPTY>
+<!ATTLIST %partialdiff.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %divergence.qname; EMPTY>
+<!ATTLIST %divergence.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %grad.qname; EMPTY>
+<!ATTLIST %grad.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %curl.qname; EMPTY>
+<!ATTLIST %curl.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %laplacian.qname; EMPTY>
+<!ATTLIST %laplacian.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %set.qname; ((%BvarQ;)*,(%DomainQ;)*,(%ContExp;)*)>
+<!ATTLIST %set.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ type CDATA #IMPLIED>
+
+<!ELEMENT %list.qname; ((%BvarQ;)*,(%DomainQ;)*,(%ContExp;)*)>
+<!ATTLIST %list.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ order (numeric|lexicographic) #IMPLIED>
+
+<!ELEMENT %union.qname; EMPTY>
+<!ATTLIST %union.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %intersect.qname; EMPTY>
+<!ATTLIST %intersect.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %cartesianproduct.qname; EMPTY>
+<!ATTLIST %cartesianproduct.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %in.qname; EMPTY>
+<!ATTLIST %in.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %notin.qname; EMPTY>
+<!ATTLIST %notin.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %notsubset.qname; EMPTY>
+<!ATTLIST %notsubset.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %notprsubset.qname; EMPTY>
+<!ATTLIST %notprsubset.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %setdiff.qname; EMPTY>
+<!ATTLIST %setdiff.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %subset.qname; EMPTY>
+<!ATTLIST %subset.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %prsubset.qname; EMPTY>
+<!ATTLIST %prsubset.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %card.qname; EMPTY>
+<!ATTLIST %card.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %sum.qname; EMPTY>
+<!ATTLIST %sum.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %product.qname; EMPTY>
+<!ATTLIST %product.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %limit.qname; EMPTY>
+<!ATTLIST %limit.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %sin.qname; EMPTY>
+<!ATTLIST %sin.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %cos.qname; EMPTY>
+<!ATTLIST %cos.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %tan.qname; EMPTY>
+<!ATTLIST %tan.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %sec.qname; EMPTY>
+<!ATTLIST %sec.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %csc.qname; EMPTY>
+<!ATTLIST %csc.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %cot.qname; EMPTY>
+<!ATTLIST %cot.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %sinh.qname; EMPTY>
+<!ATTLIST %sinh.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %cosh.qname; EMPTY>
+<!ATTLIST %cosh.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %tanh.qname; EMPTY>
+<!ATTLIST %tanh.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %sech.qname; EMPTY>
+<!ATTLIST %sech.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %csch.qname; EMPTY>
+<!ATTLIST %csch.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %coth.qname; EMPTY>
+<!ATTLIST %coth.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arcsin.qname; EMPTY>
+<!ATTLIST %arcsin.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arccos.qname; EMPTY>
+<!ATTLIST %arccos.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arctan.qname; EMPTY>
+<!ATTLIST %arctan.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arccosh.qname; EMPTY>
+<!ATTLIST %arccosh.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arccot.qname; EMPTY>
+<!ATTLIST %arccot.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arccoth.qname; EMPTY>
+<!ATTLIST %arccoth.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arccsc.qname; EMPTY>
+<!ATTLIST %arccsc.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arccsch.qname; EMPTY>
+<!ATTLIST %arccsch.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arcsec.qname; EMPTY>
+<!ATTLIST %arcsec.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arcsech.qname; EMPTY>
+<!ATTLIST %arcsech.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arcsinh.qname; EMPTY>
+<!ATTLIST %arcsinh.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %arctanh.qname; EMPTY>
+<!ATTLIST %arctanh.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %mean.qname; EMPTY>
+<!ATTLIST %mean.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %sdev.qname; EMPTY>
+<!ATTLIST %sdev.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %variance.qname; EMPTY>
+<!ATTLIST %variance.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %median.qname; EMPTY>
+<!ATTLIST %median.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %mode.qname; EMPTY>
+<!ATTLIST %mode.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %vector.qname; ((%BvarQ;),(%DomainQ;),(%ContExp;)*)>
+<!ATTLIST %vector.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %matrix.qname; ((%BvarQ;),(%DomainQ;),(%ContExp;)*)>
+<!ATTLIST %matrix.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %matrixrow.qname; ((%BvarQ;),(%DomainQ;),(%ContExp;)*)>
+<!ATTLIST %matrixrow.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %determinant.qname; EMPTY>
+<!ATTLIST %determinant.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %transpose.qname; EMPTY>
+<!ATTLIST %transpose.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %selector.qname; EMPTY>
+<!ATTLIST %selector.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %vectorproduct.qname; EMPTY>
+<!ATTLIST %vectorproduct.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %scalarproduct.qname; EMPTY>
+<!ATTLIST %scalarproduct.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %outerproduct.qname; EMPTY>
+<!ATTLIST %outerproduct.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %integers.qname; EMPTY>
+<!ATTLIST %integers.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %reals.qname; EMPTY>
+<!ATTLIST %reals.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %rationals.qname; EMPTY>
+<!ATTLIST %rationals.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %naturalnumbers.qname; EMPTY>
+<!ATTLIST %naturalnumbers.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %complexes.qname; EMPTY>
+<!ATTLIST %complexes.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %primes.qname; EMPTY>
+<!ATTLIST %primes.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %emptyset.qname; EMPTY>
+<!ATTLIST %emptyset.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %exponentiale.qname; EMPTY>
+<!ATTLIST %exponentiale.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %imaginaryi.qname; EMPTY>
+<!ATTLIST %imaginaryi.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %notanumber.qname; EMPTY>
+<!ATTLIST %notanumber.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %true.qname; EMPTY>
+<!ATTLIST %true.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %false.qname; EMPTY>
+<!ATTLIST %false.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %pi.qname; EMPTY>
+<!ATTLIST %pi.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %eulergamma.qname; EMPTY>
+<!ATTLIST %eulergamma.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!ELEMENT %infinity.qname; EMPTY>
+<!ATTLIST %infinity.qname;
+ %CommonAtt;
+ %DefEncAtt;>
+
+<!-- end of mathml3-common.rng -->
+
+<!ENTITY % MathExpression "%ContExp;|%PresentationExpression;">
+
+<!-- end of mathml3-content.rng -->
+
+<!-- start of mathml3-presentation.rng -->
+
+<!ENTITY % ImpliedMrow "(%MathExpression;)*">
+
+<!ENTITY % TableRowExpression "%mtr.qname;|%mlabeledtr.qname;">
+
+<!ENTITY % TableCellExpression "%mtd.qname;">
+
+<!ENTITY % MstackExpression "%MathExpression;|%mscarries.qname;
+ |%msline.qname;|%msrow.qname;|%msgroup.qname;">
+
+<!ENTITY % MsrowExpression "%MathExpression;|%none.qname;">
+
+<!ENTITY % MultiScriptExpression "(%MathExpression;|%none.qname;),
+ (%MathExpression;|%none.qname;)">
+
+<!ENTITY % mpadded-length "CDATA">
+
+<!ENTITY % linestyle "none|solid|dashed">
+
+<!ENTITY % verticalalign "top|bottom|center|baseline|axis">
+
+<!ENTITY % columnalignstyle "left|center|right">
+
+<!ENTITY % notationstyle "longdiv|actuarial|radical|box|roundedbox
+ |circle|left|right|top|bottom|updiagonalstrike
+ |downdiagonalstrike|verticalstrike
+ |horizontalstrike|madruwb">
+
+<!ENTITY % idref "#PCDATA">
+
+<!ENTITY % unsigned-integer "CDATA">
+
+<!ENTITY % integer "CDATA">
+
+<!ENTITY % number "CDATA">
+
+<!ENTITY % character "CDATA">
+
+<!ENTITY % color "CDATA">
+
+<!ENTITY % group-alignment "left|center|right|decimalpoint">
+
+<!ENTITY % group-alignment-list "#PCDATA">
+
+<!ENTITY % group-alignment-list-list "#PCDATA">
+
+<!ENTITY % positive-integer "CDATA">
+
+<!ENTITY % token.content "#PCDATA|%mglyph.qname;|%malignmark.qname;">
+
+<!ELEMENT %mi.qname; (%token.content;)*>
+
+<!ENTITY % length "CDATA">
+
+<!ENTITY % DeprecatedTokenAtt "
+ fontfamily CDATA #IMPLIED
+ fontweight (normal|bold) #IMPLIED
+ fontstyle (normal|italic) #IMPLIED
+ fontsize %length; #IMPLIED
+ color %color; #IMPLIED
+ background CDATA #IMPLIED">
+
+<!ENTITY % TokenAtt "
+ mathvariant (normal|bold|italic|bold-italic|double-struck|bold-fraktur
+ |script|bold-script|fraktur|sans-serif|bold-sans-serif
+ |sans-serif-italic|sans-serif-bold-italic|monospace
+ |initial|tailed|looped|stretched) #IMPLIED
+ mathsize CDATA #IMPLIED
+ dir (ltr|rtl) #IMPLIED
+ %DeprecatedTokenAtt;">
+
+<!ENTITY % CommonPresAtt "
+ mathcolor %color; #IMPLIED
+ mathbackground CDATA #IMPLIED">
+
+<!ATTLIST %mi.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %TokenAtt;>
+
+<!ELEMENT %mn.qname; (%token.content;)*>
+
+<!ATTLIST %mn.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %TokenAtt;>
+
+<!ELEMENT %mo.qname; (%token.content;)*>
+
+<!ATTLIST %mo.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %TokenAtt;
+ form (prefix|infix|postfix) #IMPLIED
+ fence (true|false) #IMPLIED
+ separator (true|false) #IMPLIED
+ lspace %length; #IMPLIED
+ rspace %length; #IMPLIED
+ stretchy (true|false) #IMPLIED
+ symmetric (true|false) #IMPLIED
+ maxsize CDATA #IMPLIED
+ minsize %length; #IMPLIED
+ largeop (true|false) #IMPLIED
+ movablelimits (true|false) #IMPLIED
+ accent (true|false) #IMPLIED
+ linebreak (auto|newline|nobreak|goodbreak|badbreak) #IMPLIED
+ lineleading %length; #IMPLIED
+ linebreakstyle (before|after|duplicate|infixlinebreakstyle) #IMPLIED
+ linebreakmultchar CDATA #IMPLIED
+ indentalign (left|center|right|auto|id) #IMPLIED
+ indentshift %length; #IMPLIED
+ indenttarget CDATA #IMPLIED
+ indentalignfirst (left|center|right|auto|id|indentalign) #IMPLIED
+ indentshiftfirst CDATA #IMPLIED
+ indentalignlast (left|center|right|auto|id|indentalign) #IMPLIED
+ indentshiftlast CDATA #IMPLIED>
+
+<!ELEMENT %mtext.qname; (%token.content;)*>
+
+<!ATTLIST %mtext.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %TokenAtt;>
+
+<!ELEMENT %mspace.qname; EMPTY>
+
+<!ATTLIST %mspace.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %TokenAtt;
+ width %length; #IMPLIED
+ height %length; #IMPLIED
+ depth %length; #IMPLIED
+ linebreak (auto|newline|nobreak|goodbreak|badbreak
+ |indentingnewline) #IMPLIED>
+
+<!ELEMENT %ms.qname; (%token.content;)*>
+
+<!ATTLIST %ms.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %TokenAtt;
+ lquote CDATA #IMPLIED
+ rquote CDATA #IMPLIED>
+
+<!ENTITY % mglyph.deprecatedattributes "
+ index %integer; #IMPLIED
+ mathvariant (normal|bold|italic|bold-italic|double-struck|bold-fraktur
+ |script|bold-script|fraktur|sans-serif|bold-sans-serif
+ |sans-serif-italic|sans-serif-bold-italic|monospace
+ |initial|tailed|looped|stretched) #IMPLIED
+ mathsize CDATA #IMPLIED
+ %DeprecatedTokenAtt;">
+
+<!ENTITY % mglyph.attributes "
+ %CommonAtt;
+ %CommonPresAtt;
+ src CDATA #IMPLIED
+ width %length; #IMPLIED
+ height %length; #IMPLIED
+ valign %length; #IMPLIED
+ alt CDATA #IMPLIED">
+
+<!ELEMENT %mglyph.qname; EMPTY>
+<!ATTLIST %mglyph.qname;
+ %mglyph.attributes;
+ %mglyph.deprecatedattributes;>
+
+<!ELEMENT %msline.qname; EMPTY>
+
+<!ATTLIST %msline.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ position %integer; #IMPLIED
+ length %unsigned-integer; #IMPLIED
+ leftoverhang %length; #IMPLIED
+ rightoverhang %length; #IMPLIED
+ mslinethickness CDATA #IMPLIED>
+
+<!ELEMENT %none.qname; EMPTY>
+
+<!ATTLIST %none.qname;
+ %CommonAtt;
+ %CommonPresAtt;>
+
+<!ELEMENT %mprescripts.qname; EMPTY>
+
+<!ATTLIST %mprescripts.qname;
+ %CommonAtt;
+ %CommonPresAtt;>
+
+<!ELEMENT %malignmark.qname; EMPTY>
+
+<!ATTLIST %malignmark.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ edge (left|right) #IMPLIED>
+
+<!ELEMENT %maligngroup.qname; EMPTY>
+
+<!ATTLIST %maligngroup.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ groupalign (left|center|right|decimalpoint) #IMPLIED>
+
+<!ELEMENT %mrow.qname; (%MathExpression;)*>
+
+<!ATTLIST %mrow.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ dir (ltr|rtl) #IMPLIED>
+
+<!ELEMENT %mfrac.qname; ((%MathExpression;),(%MathExpression;))>
+
+<!ATTLIST %mfrac.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ linethickness CDATA #IMPLIED
+ numalign (left|center|right) #IMPLIED
+ denomalign (left|center|right) #IMPLIED
+ bevelled (true|false) #IMPLIED>
+
+<!ELEMENT %msqrt.qname; (%ImpliedMrow;)>
+
+<!ATTLIST %msqrt.qname;
+ %CommonAtt;
+ %CommonPresAtt;>
+
+<!ELEMENT %mroot.qname; ((%MathExpression;),(%MathExpression;))>
+
+<!ATTLIST %mroot.qname;
+ %CommonAtt;
+ %CommonPresAtt;>
+
+<!ELEMENT %mstyle.qname; (%ImpliedMrow;)>
+
+<!ENTITY % mstyle.deprecatedattributes "
+ %DeprecatedTokenAtt;
+ veryverythinmathspace %length; #IMPLIED
+ verythinmathspace %length; #IMPLIED
+ thinmathspace %length; #IMPLIED
+ mediummathspace %length; #IMPLIED
+ thickmathspace %length; #IMPLIED
+ verythickmathspace %length; #IMPLIED
+ veryverythickmathspace %length; #IMPLIED">
+
+<!ENTITY % mstyle.generalattributes "
+ accent (true|false) #IMPLIED
+ accentunder (true|false) #IMPLIED
+ align (left|right|center) #IMPLIED
+ alignmentscope CDATA #IMPLIED
+ bevelled (true|false) #IMPLIED
+ charalign (left|center|right) #IMPLIED
+ charspacing CDATA #IMPLIED
+ close CDATA #IMPLIED
+ columnalign CDATA #IMPLIED
+ columnlines CDATA #IMPLIED
+ columnspacing CDATA #IMPLIED
+ columnspan %positive-integer; #IMPLIED
+ columnwidth CDATA #IMPLIED
+ crossout CDATA #IMPLIED
+ denomalign (left|center|right) #IMPLIED
+ depth %length; #IMPLIED
+ dir (ltr|rtl) #IMPLIED
+ edge (left|right) #IMPLIED
+ equalcolumns (true|false) #IMPLIED
+ equalrows (true|false) #IMPLIED
+ fence (true|false) #IMPLIED
+ form (prefix|infix|postfix) #IMPLIED
+ frame (%linestyle;) #IMPLIED
+ framespacing CDATA #IMPLIED
+ groupalign CDATA #IMPLIED
+ height %length; #IMPLIED
+ indentalign (left|center|right|auto|id) #IMPLIED
+ indentalignfirst (left|center|right|auto|id|indentalign) #IMPLIED
+ indentalignlast (left|center|right|auto|id|indentalign) #IMPLIED
+ indentshift %length; #IMPLIED
+ indentshiftfirst CDATA #IMPLIED
+ indentshiftlast CDATA #IMPLIED
+ indenttarget CDATA #IMPLIED
+ largeop (true|false) #IMPLIED
+ leftoverhang %length; #IMPLIED
+ length %unsigned-integer; #IMPLIED
+ linebreak (auto|newline|nobreak|goodbreak|badbreak) #IMPLIED
+ linebreakmultchar CDATA #IMPLIED
+ linebreakstyle (before|after|duplicate|infixlinebreakstyle) #IMPLIED
+ lineleading %length; #IMPLIED
+ linethickness CDATA #IMPLIED
+ location (w|nw|n|ne|e|se|s|sw) #IMPLIED
+ longdivstyle CDATA #IMPLIED
+ lquote CDATA #IMPLIED
+ lspace %length; #IMPLIED
+ mathsize CDATA #IMPLIED
+ mathvariant (normal|bold|italic|bold-italic|double-struck|bold-fraktur
+ |script|bold-script|fraktur|sans-serif|bold-sans-serif
+ |sans-serif-italic|sans-serif-bold-italic|monospace
+ |initial|tailed|looped|stretched) #IMPLIED
+ maxsize CDATA #IMPLIED
+ minlabelspacing %length; #IMPLIED
+ minsize %length; #IMPLIED
+ movablelimits (true|false) #IMPLIED
+ mslinethickness CDATA #IMPLIED
+ notation CDATA #IMPLIED
+ numalign (left|center|right) #IMPLIED
+ open CDATA #IMPLIED
+ position %integer; #IMPLIED
+ rightoverhang %length; #IMPLIED
+ rowalign CDATA #IMPLIED
+ rowlines CDATA #IMPLIED
+ rowspacing CDATA #IMPLIED
+ rowspan %positive-integer; #IMPLIED
+ rquote CDATA #IMPLIED
+ rspace %length; #IMPLIED
+ selection %positive-integer; #IMPLIED
+ separator (true|false) #IMPLIED
+ separators CDATA #IMPLIED
+ shift %integer; #IMPLIED
+ side (left|right|leftoverlap|rightoverlap) #IMPLIED
+ stackalign (left|center|right|decimalpoint) #IMPLIED
+ stretchy (true|false) #IMPLIED
+ subscriptshift %length; #IMPLIED
+ superscriptshift %length; #IMPLIED
+ symmetric (true|false) #IMPLIED
+ valign %length; #IMPLIED
+ width %length; #IMPLIED">
+
+<!ENTITY % mstyle.specificattributes "
+ scriptlevel %integer; #IMPLIED
+ displaystyle (true|false) #IMPLIED
+ scriptsizemultiplier %number; #IMPLIED
+ scriptminsize %length; #IMPLIED
+ infixlinebreakstyle (before|after|duplicate) #IMPLIED
+ decimalpoint %character; #IMPLIED">
+
+<!ATTLIST %mstyle.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ %mstyle.specificattributes;
+ %mstyle.generalattributes;
+ %mstyle.deprecatedattributes;>
+
+<!ELEMENT %merror.qname; (%ImpliedMrow;)>
+
+<!ATTLIST %merror.qname;
+ %CommonAtt;
+ %CommonPresAtt;>
+
+<!ELEMENT %mpadded.qname; (%ImpliedMrow;)>
+
+<!ATTLIST %mpadded.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ height %mpadded-length; #IMPLIED
+ depth %mpadded-length; #IMPLIED
+ width %mpadded-length; #IMPLIED
+ lspace %mpadded-length; #IMPLIED
+ voffset %mpadded-length; #IMPLIED>
+
+<!ELEMENT %mphantom.qname; (%ImpliedMrow;)>
+
+<!ATTLIST %mphantom.qname;
+ %CommonAtt;
+ %CommonPresAtt;>
+
+<!ELEMENT %mfenced.qname; (%MathExpression;)*>
+
+<!ATTLIST %mfenced.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ open CDATA #IMPLIED
+ close CDATA #IMPLIED
+ separators CDATA #IMPLIED>
+
+<!ELEMENT %menclose.qname; (%ImpliedMrow;)>
+
+<!ATTLIST %menclose.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ notation CDATA #IMPLIED>
+
+<!ELEMENT %msub.qname; ((%MathExpression;),(%MathExpression;))>
+
+<!ATTLIST %msub.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ subscriptshift %length; #IMPLIED>
+
+<!ELEMENT %msup.qname; ((%MathExpression;),(%MathExpression;))>
+
+<!ATTLIST %msup.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ superscriptshift %length; #IMPLIED>
+
+<!ENTITY % msubsup.attributes "
+ %CommonAtt;
+ %CommonPresAtt;
+ subscriptshift %length; #IMPLIED
+ superscriptshift %length; #IMPLIED">
+
+<!ELEMENT %msubsup.qname; ((%MathExpression;),(%MathExpression;),
+ (%MathExpression;))>
+<!ATTLIST %msubsup.qname;
+ %msubsup.attributes;>
+
+<!ELEMENT %munder.qname; ((%MathExpression;),(%MathExpression;))>
+
+<!ATTLIST %munder.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ accentunder (true|false) #IMPLIED
+ align (left|right|center) #IMPLIED>
+
+<!ELEMENT %mover.qname; ((%MathExpression;),(%MathExpression;))>
+
+<!ATTLIST %mover.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ accent (true|false) #IMPLIED
+ align (left|right|center) #IMPLIED>
+
+<!ELEMENT %munderover.qname; ((%MathExpression;),(%MathExpression;),
+ (%MathExpression;))>
+
+<!ATTLIST %munderover.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ accent (true|false) #IMPLIED
+ accentunder (true|false) #IMPLIED
+ align (left|right|center) #IMPLIED>
+
+<!ELEMENT %mmultiscripts.qname; ((%MathExpression;),
+ (%MultiScriptExpression;)*,
+ (%mprescripts.qname;,
+ (%MultiScriptExpression;)*)?)>
+
+<!ATTLIST %mmultiscripts.qname;
+ %msubsup.attributes;>
+
+<!ELEMENT %mtable.qname; (%TableRowExpression;)*>
+
+<!ATTLIST %mtable.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ align CDATA #IMPLIED
+ rowalign CDATA #IMPLIED
+ columnalign CDATA #IMPLIED
+ groupalign CDATA #IMPLIED
+ alignmentscope CDATA #IMPLIED
+ columnwidth CDATA #IMPLIED
+ width CDATA #IMPLIED
+ rowspacing CDATA #IMPLIED
+ columnspacing CDATA #IMPLIED
+ rowlines CDATA #IMPLIED
+ columnlines CDATA #IMPLIED
+ frame (%linestyle;) #IMPLIED
+ framespacing CDATA #IMPLIED
+ equalrows (true|false) #IMPLIED
+ equalcolumns (true|false) #IMPLIED
+ displaystyle (true|false) #IMPLIED
+ side (left|right|leftoverlap|rightoverlap) #IMPLIED
+ minlabelspacing %length; #IMPLIED>
+
+<!ELEMENT %mlabeledtr.qname; (%TableCellExpression;)+>
+
+<!ENTITY % mtr.attributes "
+ %CommonAtt;
+ %CommonPresAtt;
+ rowalign (top|bottom|center|baseline|axis) #IMPLIED
+ columnalign CDATA #IMPLIED
+ groupalign CDATA #IMPLIED">
+
+<!ATTLIST %mlabeledtr.qname;
+ %mtr.attributes;>
+
+<!ELEMENT %mtr.qname; (%TableCellExpression;)*>
+<!ATTLIST %mtr.qname;
+ %mtr.attributes;>
+
+<!ELEMENT %mtd.qname; (%ImpliedMrow;)>
+
+<!ATTLIST %mtd.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ rowspan %positive-integer; #IMPLIED
+ columnspan %positive-integer; #IMPLIED
+ rowalign (top|bottom|center|baseline|axis) #IMPLIED
+ columnalign (%columnalignstyle;) #IMPLIED
+ groupalign CDATA #IMPLIED>
+
+<!ELEMENT %mstack.qname; (%MstackExpression;)*>
+
+<!ATTLIST %mstack.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ align CDATA #IMPLIED
+ stackalign (left|center|right|decimalpoint) #IMPLIED
+ charalign (left|center|right) #IMPLIED
+ charspacing CDATA #IMPLIED>
+
+<!ELEMENT %mlongdiv.qname; ((%MstackExpression;),(%MstackExpression;),
+ (%MstackExpression;)+)>
+
+<!ENTITY % msgroup.attributes "
+ %CommonAtt;
+ %CommonPresAtt;
+ position %integer; #IMPLIED
+ shift %integer; #IMPLIED">
+
+<!ATTLIST %mlongdiv.qname;
+ %msgroup.attributes;
+ longdivstyle CDATA #IMPLIED>
+
+<!ELEMENT %msgroup.qname; (%MstackExpression;)*>
+<!ATTLIST %msgroup.qname;
+ %msgroup.attributes;>
+
+<!ELEMENT %msrow.qname; (%MsrowExpression;)*>
+
+<!ATTLIST %msrow.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ position %integer; #IMPLIED>
+
+<!ELEMENT %mscarries.qname; (%MsrowExpression;|%mscarry.qname;)*>
+
+<!ATTLIST %mscarries.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ position %integer; #IMPLIED
+ location (w|nw|n|ne|e|se|s|sw) #IMPLIED
+ crossout CDATA #IMPLIED
+ scriptsizemultiplier %number; #IMPLIED>
+
+<!ELEMENT %mscarry.qname; (%MsrowExpression;)*>
+
+<!ATTLIST %mscarry.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ location (w|nw|n|ne|e|se|s|sw) #IMPLIED
+ crossout CDATA #IMPLIED>
+
+<!ELEMENT %maction.qname; (%MathExpression;)+>
+
+<!ATTLIST %maction.qname;
+ %CommonAtt;
+ %CommonPresAtt;
+ actiontype CDATA #IMPLIED
+ selection %positive-integer; #IMPLIED>
+
+<!-- end of mathml3-presentation.rng -->
+
+<!-- start of mathml3-common.rng -->
+
+<!ELEMENT %math.qname; (%MathExpression;)*>
+
+<!ENTITY % NonMathMLAtt "">
+
+<!ENTITY % math.deprecatedattributes "
+ mode CDATA #IMPLIED
+ macros CDATA #IMPLIED">
+
+<!ATTLIST %math.qname;
+ %CommonAtt;
+ display (block|inline) #IMPLIED
+ maxwidth %length; #IMPLIED
+ overflow (linebreak|scroll|elide|truncate|scale) #IMPLIED
+ altimg CDATA #IMPLIED
+ altimg-width %length; #IMPLIED
+ altimg-height %length; #IMPLIED
+ altimg-valign CDATA #IMPLIED
+ alttext CDATA #IMPLIED
+ cdgroup CDATA #IMPLIED
+ %math.deprecatedattributes;
+ %CommonPresAtt;
+ %mstyle.specificattributes;
+ %mstyle.generalattributes;>
+
+<!ENTITY % name "
+ name CDATA #REQUIRED">
+
+<!ENTITY % cd "
+ cd CDATA #REQUIRED">
+
+<!ENTITY % annotation.attributes "
+ %CommonAtt;
+ cd CDATA #IMPLIED
+ name CDATA #IMPLIED
+ %DefEncAtt;
+ src CDATA #IMPLIED">
+
+<!ELEMENT %annotation.qname; (#PCDATA)>
+<!ATTLIST %annotation.qname;
+ %annotation.attributes;>
+
+<!ENTITY % annotation-xml.model "(%MathExpression;)*">
+
+<!ENTITY % anyElement "">
+
+<!ELEMENT %annotation-xml.qname; (%annotation-xml.model;)>
+<!ATTLIST %annotation-xml.qname;
+ %annotation.attributes;>
+
+<!ELEMENT %semantics.qname; ((%MathExpression;),
+ (%annotation.qname;|%annotation-xml.qname;)*)>
+
+<!ATTLIST %semantics.qname;
+ %CommonAtt;
+ %DefEncAtt;
+ cd CDATA #IMPLIED
+ name CDATA #IMPLIED>