概要: 数学用マークアップ言語 (MathML) バージョン 2.0
前: 8 MathML 用の Document Object Model
次: B Content Markup Validation Grammar
A MathMLのパース
A.1 MathML用のDOCTYPE宣言
A.2 DTDモジュールとしてのMathML
A.3 ネームスペース接頭辞宣言
A.4 MathMLをDTDなしで用いる
A.5 SGML
A.6 MathMLのDTD
MathML 文書は、XML DTD for MathML を用いて validate されるべきで、これについては下の 第A.6節「MathMLのDTD」 でも示しています。
この DTD を用いた文書は、doctype 宣言を次の形で含むべきです:
<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd" >
URIは、必要に応じて ローカルにコピーされた DTD に変えることができます。
名前空間の接頭辞を用いるなら、文書要素は、以下のようになるでしょう:
<mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> ... </mml:math>
また、接頭辞はローカルのDTDのサブセットとして以下のように宣言されなければなりません:
<!DOCTYPE mml:math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd" [ <!ENTITY % MATHML.prefixed "INCLUDE"> <!ENTITY % MATHML.prefix "mml"> ]>
名前空間の接頭辞を制御のためにこのようにパラメータ実体の利用することは、 [Modularization] による指定の互換性を保つためです。
しかし、通常 MathML 式は、完全な XML 文書を構成しません。 MathML はより大きなマークアップ言語の数学部分として用いられることを前提にしているためです。 特にMathML は、[Modularization] で定義されている モジュール として、XHTML系のマークアップ言語で記述された文書中で用いられるために設計されています。 便利のために XHTML DTD, extended with this MathML module バージョンも具体的な例として提供しています。 このバージョンは、一つのファイルの中に必要とされる宣言をすべて含めたものであり、完全な宣言などのためにいくつものファイルを参照する MathML DTD スタンドアローン版と比較できます。 このDTDを用いるためには、文書は以下の doctype 宣言を記述するべきです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd" >
上でも述べたように、URIは変わることがありますので、DTDはローカルのコピーに帰ることができます。XHTML と MathML に用いられる名前空間の接頭辞は、パラメータ実体によって制御することができます。
上でも述べたように、[Modularization] で説明されている、名前空間の接頭辞を MathML 要素名に提供するメカニズムを利用することが必要ないし便利であるときがあります。
下の DTD は、こうした利用方法ができるように設計されています。
もし DOCTYPE 宣言のローカルなサブセットとして、もしくはMathML DTD を含む DTD ファイルの中で、MATHML.prefixed
というパラメータ実体が以下のように INCLUDE されるよう宣言されていれば、すべての MathML 要素は接頭辞とともに用いられなければなりません。
<!ENTITY % MATHML.prefixed "INCLUDE" >
たとえば、<m:mrow>
や <m:apply>
のようになります。
接頭辞のデフォルトは m:
ですが、パラメータ実体MathML.prefix
で他の接頭辞を宣言することもできます。たとえば、
<!ENTITY % MATHML.prefix "math" >
と宣言すれば、MathML 名前空間用の接頭辞は math:
になります。
[Namespaces] 勧告は、文書中の任意の位置で接頭辞を変更するメカニズムを提供していますが、この柔軟性はこの DTD では 提供されない ということに注意してください (そして、どんなDTDでも指定することは不可能でしょう。たぶん)。
もしも MathML の断片がDTDなしでパースされる場合、 言い換えれば、正しい XML 断片としてパースされる場合、 トークン要素の周囲の空白文字が正しく処理されないのは 処理アプリケーションの責任です。
DTD が DOCTYPE 宣言とともに指定されていない場合、実体参照 (たとえば MathML 文字を名前で参照する場合) は利用できませんので、注意してください。
必要に応じて、XMLパーサーではなく nsgmls
のような SGML パーサーで MathML 文書を validate することもできます。
この場合、SGML パーサーを XML レベルに抑制させる SGML 宣言を用いる必要があります。note on SGML and XML をご覧下さい。
古い SGML システムでは、plane 1 文字 (16進FFFF以上の Unicode 文字) を参照するファイルを処理することができない場合があります。
文字の実体宣言は DTD の最後で参照しています。 これらは、それぞれの実体セットに対して 第6章「文字、実体とフォント」 中の文字テーブルにリンクしています。
MathML 文字名のセットの一覧は、 名前順 もしくは Unicode 値順 でも用意されています。
XML 名前空間の接頭辞を可能にするため、
DTD では mrow
のように直接的に要素名を参照していませんが、
代わりに常に名前を %mrow.qname;
のようにパラメータ実体で参照しています。
これらのパラメータ実体の定義は、ファイル mathml2-qname-1.mod にありますが、ここでは示してありません。
これは、それぞれの MathML 要素に対し、以下のような単なる宣言をしたものです。
<!ENTITY % mrow.qname "%MATHML.pfx;mrow" >
以下に、DTD の核となる部分を示します。 完全な DTD は、XHTML-Math DTD とともに、zip archive として用意してあります。
<!-- MathML 2.0 DTD ....................................................... --> <!-- file: mathml2.dtd --> <!-- MathML 2.0 DTD This is the Mathematical Markup Language (MathML) 2.0, an XML application for describing mathematical notation and capturing both its structure and content. Copyright 1998-2000 World Wide Web Consortium (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved. Permission to use, copy, modify and distribute the XHTML 1.1 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. Revision: $Id: parsing.xml,v 1.34 2000/12/14 13:08:43 davidc Exp $ This entity may be identified by the PUBLIC and SYSTEM identifiers: PUBLIC "-//W3C//DTD MathML 2.0//EN" SYSTEM "mathml2.dtd" Revisions: editor and revision history at EOF --> <!-- MathML Qualified Names module ............................... --> <!ENTITY % mathml-qname.module "INCLUDE" > <![%mathml-qname.module;[ <!ENTITY % mathml-qname.mod PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN" "mathml2-qname-1.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;" > <!-- Attributes shared by all elements .......................... --> <!ENTITY % MATHML.Common.attrib "%MATHML.NamespaceDecl.attrib; xlink:href CDATA #IMPLIED class CDATA #IMPLIED style CDATA #IMPLIED id ID #IMPLIED xref IDREF #IMPLIED other CDATA #IMPLIED" > <!-- Presentation element set ................................... --> <!-- 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" > <!-- MathML2 typographically-distinguished symbol attributes --> <!ENTITY % att-mathvariant "mathvariant CDATA #IMPLIED" > <!ENTITY % att-mathsize "mathsize CDATA #IMPLIED" > <!ENTITY % att-mathcolor "mathcolor CDATA #IMPLIED" > <!ENTITY % att-mathbackground "mathbackground CDATA #IMPLIED" > <!ENTITY % att-fontinfo "%att-fontsize; %att-fontweight; %att-fontstyle; %att-fontfamily; %att-color; %att-mathvariant; %att-mathsize; %att-mathcolor; %att-mathbackground;" > <!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-linebreak "linebreak 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-veryverythinmathspace "veryverythinmathspace CDATA #IMPLIED" > <!ENTITY % att-verythinmathspace "verythinmathspace CDATA #IMPLIED" > <!ENTITY % att-thinmathspace "thinmathspace CDATA #IMPLIED" > <!ENTITY % att-mediummathspace "mediummathspace CDATA #IMPLIED" > <!ENTITY % att-thickmathspace "thickmathspace CDATA #IMPLIED" > <!ENTITY % att-verythickmathspace "verythickmathspace CDATA #IMPLIED" > <!ENTITY % att-veryverythickmathspace "veryverythickmathspace 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-columnwidth "columnwidth 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-columnwidth; %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" > <!ENTITY % att-name "name CDATA #IMPLIED" > <!ENTITY % att-alt "alt CDATA #IMPLIED" > <!ENTITY % att-index "index CDATA #IMPLIED" > <!ENTITY % att-bevelled "bevelled CDATA #IMPLIED" > <!-- Presentation schemata with content --> <!ENTITY % ptoken "%mi.qname; | %mn.qname; | %mo.qname; | %mtext.qname; | %ms.qname;" > <!ATTLIST %mi.qname; %MATHML.Common.attrib; %att-fontinfo; > <!ATTLIST %mn.qname; %MATHML.Common.attrib; %att-fontinfo; > <!ATTLIST %mo.qname; %MATHML.Common.attrib; %att-fontinfo; %att-opinfo; > <!ATTLIST %mtext.qname; %MATHML.Common.attrib; %att-fontinfo; > <!ATTLIST %ms.qname; %MATHML.Common.attrib; %att-fontinfo; %att-lquote; %att-rquote; > <!-- Empty presentation schemata --> <!ENTITY % petoken "%mspace.qname;" > <!ELEMENT %mspace.qname; EMPTY > <!ATTLIST %mspace.qname; %att-sizeinfo; %att-linebreak; %MATHML.Common.attrib; > <!-- Presentation: general layout schemata --> <!ENTITY % pgenschema "%mrow.qname; | %mfrac.qname; | %msqrt.qname; | %mroot.qname; | %menclose.qname; | %mstyle.qname; | %merror.qname; | %mpadded.qname; | %mphantom.qname; | %mfenced.qname;" > <!ATTLIST %mrow.qname; %MATHML.Common.attrib; > <!ATTLIST %mfrac.qname; %MATHML.Common.attrib; %att-bevelled; %att-linethickness; > <!ATTLIST %msqrt.qname; %MATHML.Common.attrib; > <!ATTLIST %menclose.qname; %MATHML.Common.attrib; notation CDATA 'longdiv' > <!ATTLIST %mroot.qname; %MATHML.Common.attrib; > <!ATTLIST %mstyle.qname; %MATHML.Common.attrib; %att-fontinfo; %att-opinfo; %att-lquote; %att-rquote; %att-linethickness; %att-scriptlevel; %att-scriptsizemultiplier; %att-scriptminsize; %att-background; %att-veryverythinmathspace; %att-verythinmathspace; %att-thinmathspace; %att-mediummathspace; %att-thickmathspace; %att-verythickmathspace; %att-veryverythickmathspace; %att-open; %att-close; %att-separators; %att-subscriptshift; %att-superscriptshift; %att-accentunder; %att-tableinfo; %att-rowspan; %att-columnspan; %att-edge; %att-actiontype; %att-selection; > <!ATTLIST %merror.qname; %MATHML.Common.attrib; > <!ATTLIST %mpadded.qname; %MATHML.Common.attrib; %att-sizeinfo; %att-lspace; > <!ATTLIST %mphantom.qname; %MATHML.Common.attrib; > <!ATTLIST %mfenced.qname; %MATHML.Common.attrib; %att-open; %att-close; %att-separators; > <!-- Presentation layout schemata: scripts and limits --> <!ENTITY % pscrschema "%msub.qname; | %msup.qname; | %msubsup.qname; | %munder.qname; | %mover.qname; | %munderover.qname; | %mmultiscripts.qname;" > <!ATTLIST %msub.qname; %MATHML.Common.attrib; %att-subscriptshift; > <!ATTLIST %msup.qname; %MATHML.Common.attrib; %att-superscriptshift; > <!ATTLIST %msubsup.qname; %MATHML.Common.attrib; %att-subscriptshift; %att-superscriptshift; > <!ATTLIST %munder.qname; %MATHML.Common.attrib; %att-accentunder; > <!ATTLIST %mover.qname; %MATHML.Common.attrib; %att-accent; > <!ATTLIST %munderover.qname; %MATHML.Common.attrib; %att-accent; %att-accentunder; > <!ATTLIST %mmultiscripts.qname; %MATHML.Common.attrib; %att-subscriptshift; %att-superscriptshift; > <!-- Presentation layout schemata: empty elements for scripts --> <!ENTITY % pscreschema "%mprescripts.qname; | %none.qname;" > <!ELEMENT %mprescripts.qname; EMPTY > <!ATTLIST %mprescripts.qname; %MATHML.xmlns.attrib; > <!ELEMENT %none.qname; EMPTY > <!ATTLIST %none.qname; %MATHML.xmlns.attrib; > <!-- Presentation layout schemata: tables --> <!ENTITY % ptabschema "%mtable.qname; | %mtr.qname; | %mlabeledtr.qname; | %mtd.qname;" > <!ATTLIST %mtable.qname; %MATHML.Common.attrib; %att-tableinfo; > <!ATTLIST %mtr.qname; %MATHML.Common.attrib; %att-rowalign; %att-columnalign; %att-groupalign; > <!ATTLIST %mlabeledtr.qname; %MATHML.Common.attrib; %att-rowalign; %att-columnalign; %att-groupalign; > <!ATTLIST %mtd.qname; %MATHML.Common.attrib; %att-rowalign; %att-columnalign; %att-groupalign; %att-rowspan; %att-columnspan; > <!ENTITY % plschema "%pgenschema; | %pscrschema; | %ptabschema;" > <!-- Empty presentation layout schemata --> <!ENTITY % peschema "%maligngroup.qname; | %malignmark.qname;" > <!ELEMENT %malignmark.qname; EMPTY > <!ATTLIST %malignmark.qname; %att-edge; > <!ELEMENT %maligngroup.qname; EMPTY > <!ATTLIST %maligngroup.qname; %MATHML.Common.attrib; %att-groupalign; > <!ELEMENT %mglyph.qname; EMPTY > <!ATTLIST %mglyph.qname; %att-alt; %att-fontfamily; %att-index; > <!-- Presentation action schemata --> <!ENTITY % pactions "%maction.qname;" > <!ATTLIST %maction.qname; %MATHML.Common.attrib; %att-actiontype; %att-selection; > <!-- The following entity for substitution into content constructs excludes elements that 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-occurrence "occurrence CDATA 'function-model'" > <!ENTITY % att-order "order CDATA 'numeric'" > <!ENTITY % att-scope "scope CDATA 'local'" > <!ENTITY % att-type "type CDATA #IMPLIED" > <!-- Content elements: leaf nodes --> <!ENTITY % ctoken "%csymbol.qname; | %ci.qname; | %cn.qname;" > <!ATTLIST %ci.qname; %MATHML.Common.attrib; %att-type; %att-definition; %att-encoding; > <!ATTLIST %csymbol.qname; %MATHML.Common.attrib; %att-encoding; %att-type; %att-definition; > <!ATTLIST %cn.qname; %MATHML.Common.attrib; %att-type; %att-base; %att-definition; %att-encoding; > <!-- Content elements: specials --> <!ENTITY % cspecial "%apply.qname; | %reln.qname; | %lambda.qname;" > <!ATTLIST %apply.qname; %MATHML.Common.attrib; > <!ATTLIST %reln.qname; %MATHML.Common.attrib; > <!ATTLIST %lambda.qname; %MATHML.Common.attrib; > <!-- Content elements: others --> <!ENTITY % cother "%condition.qname; | %declare.qname; | %sep.qname;" > <!ATTLIST %condition.qname; %MATHML.Common.attrib; > <!ATTLIST %declare.qname; %MATHML.Common.attrib; %att-type; %att-scope; %att-nargs; %att-occurrence; %att-definition; %att-encoding; > <!ELEMENT %sep.qname; EMPTY > <!ATTLIST %sep.qname; %MATHML.xmlns.attrib; > <!-- Content elements: semantic mapping --> <!ENTITY % csemantics "%semantics.qname; | %annotation.qname; | %annotation-xml.qname;" > <!ATTLIST %semantics.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ATTLIST %annotation.qname; %MATHML.Common.attrib; %att-encoding; > <!ATTLIST %annotation-xml.qname; %MATHML.Common.attrib; %att-encoding; > <!-- Content elements: constructors --> <!ENTITY % cconstructor "%interval.qname; | %list.qname; | %matrix.qname; | %matrixrow.qname; | %set.qname; | %vector.qname; | %piecewise.qname; " > <!ATTLIST %interval.qname; %MATHML.Common.attrib; %att-closure; > <!ATTLIST %set.qname; %MATHML.Common.attrib; %att-type; > <!ATTLIST %list.qname; %MATHML.Common.attrib; %att-order; > <!ATTLIST %vector.qname; %MATHML.Common.attrib; > <!ATTLIST %matrix.qname; %MATHML.Common.attrib; > <!ATTLIST %matrixrow.qname; %MATHML.Common.attrib; > <!ATTLIST %piecewise.qname; %MATHML.Common.attrib; > <!ATTLIST %piece.qname; %MATHML.Common.attrib; > <!ATTLIST %otherwise.qname; %MATHML.Common.attrib; > <!-- Content elements: symbols --> <!ENTITY % c0ary "%integers.qname; | %reals.qname; | %rationals.qname; | %naturalnumbers.qname; | %complexes.qname; | %primes.qname; | %exponentiale.qname; | %imaginaryi.qname; | %notanumber.qname; | %true.qname; | %false.qname; | %emptyset.qname; | %pi.qname; | %eulergamma.qname; | %infinity.qname;" > <!ELEMENT %integers.qname; EMPTY > <!ATTLIST %integers.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %reals.qname; EMPTY > <!ATTLIST %reals.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %rationals.qname; EMPTY > <!ATTLIST %rationals.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %naturalnumbers.qname; EMPTY > <!ATTLIST %naturalnumbers.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %complexes.qname; EMPTY > <!ATTLIST %complexes.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %primes.qname; EMPTY > <!ATTLIST %primes.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %exponentiale.qname; EMPTY > <!ATTLIST %exponentiale.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %imaginaryi.qname; EMPTY > <!ATTLIST %imaginaryi.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %notanumber.qname; EMPTY > <!ATTLIST %notanumber.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %true.qname; EMPTY > <!ATTLIST %true.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %false.qname; EMPTY > <!ATTLIST %false.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %emptyset.qname; EMPTY > <!ATTLIST %emptyset.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %pi.qname; EMPTY > <!ATTLIST %pi.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %eulergamma.qname; EMPTY > <!ATTLIST %eulergamma.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %infinity.qname; EMPTY > <!ATTLIST %infinity.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!-- Content elements: operators --> <!ENTITY % cfuncop1ary "%inverse.qname; | %ident.qname;| %domain.qname; | %codomain.qname; | %image.qname; " > <!ELEMENT %inverse.qname; EMPTY > <!ATTLIST %inverse.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %domain.qname; EMPTY > <!ATTLIST %domain.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %codomain.qname; EMPTY > <!ATTLIST %codomain.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %image.qname; EMPTY > <!ATTLIST %image.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % cfuncopnary "%fn.qname; | %compose.qname;" > <!ATTLIST %fn.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %ident.qname; EMPTY > <!ATTLIST %ident.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %compose.qname; EMPTY > <!ATTLIST %compose.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % carithop1ary "%abs.qname; | %conjugate.qname; | %exp.qname; | %factorial.qname; | %arg.qname; | %real.qname; | %imaginary.qname; | %floor.qname; | %ceiling.qname;" > <!ELEMENT %exp.qname; EMPTY > <!ATTLIST %exp.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %abs.qname; EMPTY > <!ATTLIST %abs.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arg.qname; EMPTY > <!ATTLIST %arg.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %real.qname; EMPTY > <!ATTLIST %real.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %imaginary.qname; EMPTY > <!ATTLIST %imaginary.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %conjugate.qname; EMPTY > <!ATTLIST %conjugate.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %factorial.qname; EMPTY > <!ATTLIST %factorial.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %floor.qname; EMPTY > <!ATTLIST %floor.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %ceiling.qname; EMPTY > <!ATTLIST %ceiling.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % carithop1or2ary "%minus.qname;" > <!ELEMENT %minus.qname; EMPTY > <!ATTLIST %minus.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % carithop2ary "%quotient.qname; | %divide.qname; | %power.qname; | %rem.qname;" > <!ELEMENT %quotient.qname; EMPTY > <!ATTLIST %quotient.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %divide.qname; EMPTY > <!ATTLIST %divide.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %power.qname; EMPTY > <!ATTLIST %power.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %rem.qname; EMPTY > <!ATTLIST %rem.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % carithopnary "%plus.qname; | %times.qname; | %max.qname; | %min.qname; | %gcd.qname; | %lcm.qname;" > <!ELEMENT %plus.qname; EMPTY > <!ATTLIST %plus.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %max.qname; EMPTY > <!ATTLIST %max.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %min.qname; EMPTY > <!ATTLIST %min.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %times.qname; EMPTY > <!ATTLIST %times.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %gcd.qname; EMPTY > <!ATTLIST %gcd.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %lcm.qname; EMPTY > <!ATTLIST %lcm.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % carithoproot "%root.qname;" > <!ELEMENT %root.qname; EMPTY > <!ATTLIST %root.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clogicopquant "%exists.qname; | %forall.qname;" > <!ELEMENT %exists.qname; EMPTY > <!ATTLIST %exists.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %forall.qname; EMPTY > <!ATTLIST %forall.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clogicopnary "%and.qname; | %or.qname; | %xor.qname;" > <!ELEMENT %and.qname; EMPTY > <!ATTLIST %and.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %or.qname; EMPTY > <!ATTLIST %or.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %xor.qname; EMPTY > <!ATTLIST %xor.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clogicop1ary "%not.qname;" > <!ELEMENT %not.qname; EMPTY > <!ATTLIST %not.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clogicop2ary "%implies.qname;" > <!ELEMENT %implies.qname; EMPTY > <!ATTLIST %implies.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % ccalcop "%log.qname; | %int.qname; | %diff.qname; | %partialdiff.qname; | %divergence.qname; | %grad.qname; | %curl.qname; | %laplacian.qname;" > <!ELEMENT %divergence.qname; EMPTY > <!ATTLIST %divergence.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %grad.qname; EMPTY > <!ATTLIST %grad.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %curl.qname; EMPTY > <!ATTLIST %curl.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %laplacian.qname; EMPTY > <!ATTLIST %laplacian.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %log.qname; EMPTY > <!ATTLIST %log.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %int.qname; EMPTY > <!ATTLIST %int.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %diff.qname; EMPTY > <!ATTLIST %diff.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %partialdiff.qname; EMPTY > <!ATTLIST %partialdiff.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % ccalcop1ary "%ln.qname;" > <!ELEMENT %ln.qname; EMPTY > <!ATTLIST %ln.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % csetop1ary "%card.qname;" > <!ELEMENT %card.qname; EMPTY > <!ATTLIST %card.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % csetop2ary "%setdiff.qname;" > <!ELEMENT %setdiff.qname; EMPTY > <!ATTLIST %setdiff.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % csetopnary "%union.qname; | %intersect.qname; | %cartesianproduct.qname; " > <!ELEMENT %union.qname; EMPTY > <!ATTLIST %union.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %intersect.qname; EMPTY > <!ATTLIST %intersect.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %cartesianproduct.qname; EMPTY > <!ATTLIST %cartesianproduct.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % cseqop "%sum.qname; | %product.qname; | %limit.qname;" > <!ELEMENT %sum.qname; EMPTY > <!ATTLIST %sum.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %product.qname; EMPTY > <!ATTLIST %product.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %limit.qname; EMPTY > <!ATTLIST %limit.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % ctrigop "%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; " > <!ELEMENT %sin.qname; EMPTY > <!ATTLIST %sin.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %cos.qname; EMPTY > <!ATTLIST %cos.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %tan.qname; EMPTY > <!ATTLIST %tan.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %sec.qname; EMPTY > <!ATTLIST %sec.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %csc.qname; EMPTY > <!ATTLIST %csc.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %cot.qname; EMPTY > <!ATTLIST %cot.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %sinh.qname; EMPTY > <!ATTLIST %sinh.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %cosh.qname; EMPTY > <!ATTLIST %cosh.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %tanh.qname; EMPTY > <!ATTLIST %tanh.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %sech.qname; EMPTY > <!ATTLIST %sech.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %csch.qname; EMPTY > <!ATTLIST %csch.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %coth.qname; EMPTY > <!ATTLIST %coth.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arcsin.qname; EMPTY > <!ATTLIST %arcsin.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arccos.qname; EMPTY > <!ATTLIST %arccos.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arctan.qname; EMPTY > <!ATTLIST %arctan.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arccosh.qname; EMPTY > <!ATTLIST %arccosh.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arccot.qname; EMPTY > <!ATTLIST %arccot.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arccoth.qname; EMPTY > <!ATTLIST %arccoth.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arccsc.qname; EMPTY > <!ATTLIST %arccsc.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arccsch.qname; EMPTY > <!ATTLIST %arccsch.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arcsec.qname; EMPTY > <!ATTLIST %arcsec.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arcsech.qname; EMPTY > <!ATTLIST %arcsech.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arcsinh.qname; EMPTY > <!ATTLIST %arcsinh.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %arctanh.qname; EMPTY > <!ATTLIST %arctanh.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % cstatopnary "%mean.qname; | %sdev.qname; | %variance.qname; | %median.qname; | %mode.qname;" > <!ELEMENT %mean.qname; EMPTY > <!ATTLIST %mean.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %sdev.qname; EMPTY > <!ATTLIST %sdev.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %variance.qname; EMPTY > <!ATTLIST %variance.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %median.qname; EMPTY > <!ATTLIST %median.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %mode.qname; EMPTY > <!ATTLIST %mode.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % cstatopmoment "%moment.qname;" > <!ELEMENT %moment.qname; EMPTY > <!ATTLIST %moment.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clalgop1ary "%determinant.qname; | %transpose.qname;" > <!ELEMENT %determinant.qname; EMPTY > <!ATTLIST %determinant.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %transpose.qname; EMPTY > <!ATTLIST %transpose.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clalgop2ary "%vectorproduct.qname; | %scalarproduct.qname; | %outerproduct.qname;" > <!ELEMENT %vectorproduct.qname; EMPTY > <!ATTLIST %vectorproduct.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %scalarproduct.qname; EMPTY > <!ATTLIST %scalarproduct.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %outerproduct.qname; EMPTY > <!ATTLIST %outerproduct.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % clalgopnary "%selector.qname;" > <!ELEMENT %selector.qname; EMPTY > <!ATTLIST %selector.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!-- Content elements: relations --> <!ENTITY % cgenrel2ary "%neq.qname; | %factorof.qname;" > <!ELEMENT %neq.qname; EMPTY > <!ATTLIST %neq.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %factorof.qname; EMPTY > <!ATTLIST %factorof.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % cgenrelnary "%eq.qname; | %leq.qname; | %lt.qname; | %geq.qname; | %gt.qname;| %equivalent.qname; | %approx.qname;" > <!ELEMENT %eq.qname; EMPTY > <!ATTLIST %eq.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %equivalent.qname; EMPTY > <!ATTLIST %equivalent.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %approx.qname; EMPTY > <!ATTLIST %approx.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %gt.qname; EMPTY > <!ATTLIST %gt.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %lt.qname; EMPTY > <!ATTLIST %lt.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %geq.qname; EMPTY > <!ATTLIST %geq.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %leq.qname; EMPTY > <!ATTLIST %leq.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % csetrel2ary "%in.qname; | %notin.qname; | %notsubset.qname; | %notprsubset.qname;" > <!ELEMENT %in.qname; EMPTY > <!ATTLIST %in.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %notin.qname; EMPTY > <!ATTLIST %notin.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %notsubset.qname; EMPTY > <!ATTLIST %notsubset.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %notprsubset.qname; EMPTY > <!ATTLIST %notprsubset.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % csetrelnary "%subset.qname; | %prsubset.qname;" > <!ELEMENT %subset.qname; EMPTY > <!ATTLIST %subset.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ELEMENT %prsubset.qname; EMPTY > <!ATTLIST %prsubset.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; > <!ENTITY % cseqrel2ary "%tendsto.qname;" > <!ELEMENT %tendsto.qname; EMPTY > <!ATTLIST %tendsto.qname; %MATHML.Common.attrib; %att-definition; %att-encoding; %att-type; > <!-- Content elements: quantifiers --> <!ENTITY % cquantifier "%lowlimit.qname; | %uplimit.qname; | %bvar.qname; | %degree.qname; | %logbase.qname; | %momentabout.qname; | %domainofapplication.qname; " > <!ATTLIST %lowlimit.qname; %MATHML.Common.attrib; > <!ATTLIST %uplimit.qname; %MATHML.Common.attrib; > <!ATTLIST %bvar.qname; %MATHML.Common.attrib; > <!ATTLIST %degree.qname; %MATHML.Common.attrib; > <!ATTLIST %logbase.qname; %MATHML.Common.attrib; > <!ATTLIST %momentabout.qname; %MATHML.Common.attrib; > <!ATTLIST %domainofapplication.qname; %MATHML.Common.attrib; > <!-- Operator groups --> <!ENTITY % cop1ary "%cfuncop1ary; | %carithop1ary; | %clogicop1ary; | %ccalcop1ary; | %ctrigop; | %clalgop1ary; | %csetop1ary;" > <!ENTITY % cop2ary "%carithop2ary; | %clogicop2ary;| %clalgop2ary; | %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; | %c0ary; | %cconstructor; | %cquantifier; | %cop1ary; | %cop2ary; | %copnary; |%copmisc; | %crel2ary; | %crelnary;" > <!-- Content constructs for substitution in presentation structures --> <!ENTITY % ContInPres "%ci.qname; |%csymbol.qname;| %cn.qname; | %c0ary; | %apply.qname; | %fn.qname; | %lambda.qname; | %reln.qname; | %cconstructor; | %semantics.qname; |%declare.qname;" > <!-- ............................................................. --> <!-- Recursive definition for content of expressions. Include presentation constructs at lowest level so presentation layout schemata hold presentation or content elements. Include content constructs at lowest level so content elements hold PCDATA or presentation elements at leaf level (for permitted substitutable elements in context) --> <!ENTITY % ContentExpression "(%Content; | %PresInCont;)*" > <!ENTITY % PresExpression "(%Presentation; | %ContInPres;)*" > <!ENTITY % MathExpression "(%PresInCont; | %ContInPres;)*" > <!-- PCDATA or MathML character elements --> <!ENTITY % MathMLCharacters "#PCDATA | %mglyph.qname; " > <!-- Content elements: tokens --> <!-- (may contain embedded presentation constructs) --> <!ELEMENT %ci.qname; (%MathMLCharacters; | %PresInCont;)* > <!ELEMENT %csymbol.qname; (%MathMLCharacters; | %PresInCont;)* > <!ELEMENT %cn.qname; (%MathMLCharacters; | %sep.qname; | %PresInCont;)* > <!-- Content elements: special --> <!ELEMENT %apply.qname; (%ContentExpression;) > <!ELEMENT %reln.qname; (%ContentExpression;) > <!ELEMENT %lambda.qname; (%ContentExpression;) > <!-- Content elements: other --> <!ELEMENT %condition.qname; (%ContentExpression;) > <!ELEMENT %declare.qname; (%ContentExpression;) > <!-- Content elements: semantics --> <!ELEMENT %semantics.qname; (%ContentExpression;) > <!ENTITY % Annotation.content "( #PCDATA )" > <!ELEMENT %annotation.qname; %Annotation.content; > <!ENTITY % Annotation-xml.content "ANY" > <!ELEMENT %annotation-xml.qname; %Annotation-xml.content; > <!-- Content elements: constructors --> <!ELEMENT %interval.qname; (%ContentExpression;) > <!ELEMENT %set.qname; (%ContentExpression;) > <!ELEMENT %list.qname; (%ContentExpression;) > <!ELEMENT %vector.qname; (%ContentExpression;) > <!ELEMENT %matrix.qname; (%ContentExpression;) > <!ELEMENT %matrixrow.qname; (%ContentExpression;) > <!ELEMENT %piecewise.qname; ((%piece.qname;)*, (%otherwise.qname;)? ) > <!ELEMENT %piece.qname; (%ContentExpression;) > <!ELEMENT %otherwise.qname; (%ContentExpression;) > <!-- Content elements: operator (user-defined) --> <!ELEMENT %fn.qname; (%ContentExpression;) > <!-- Content elements: quantifiers --> <!ELEMENT %lowlimit.qname; (%ContentExpression;) > <!ELEMENT %uplimit.qname; (%ContentExpression;) > <!ELEMENT %bvar.qname; (%ContentExpression;) > <!ELEMENT %degree.qname; (%ContentExpression;) > <!ELEMENT %logbase.qname; (%ContentExpression;) > <!ELEMENT %momentabout.qname; (%ContentExpression;) > <!ELEMENT %domainofapplication.qname; (%ContentExpression;) > <!-- ............................................................. --> <!-- Presentation layout schemata contain tokens, layout and content schemata. --> <!ELEMENT %mstyle.qname; (%PresExpression;) > <!ELEMENT %merror.qname; (%PresExpression;) > <!ELEMENT %mphantom.qname; (%PresExpression;) > <!ELEMENT %mrow.qname; (%PresExpression;) > <!ELEMENT %mfrac.qname; (%PresExpression;) > <!ELEMENT %msqrt.qname; (%PresExpression;) > <!ELEMENT %menclose.qname; (%PresExpression;) > <!ELEMENT %mroot.qname; (%PresExpression;) > <!ELEMENT %msub.qname; (%PresExpression;) > <!ELEMENT %msup.qname; (%PresExpression;) > <!ELEMENT %msubsup.qname; (%PresExpression;) > <!ELEMENT %mmultiscripts.qname; (%PresExpression;) > <!ELEMENT %munder.qname; (%PresExpression;) > <!ELEMENT %mover.qname; (%PresExpression;) > <!ELEMENT %munderover.qname; (%PresExpression;) > <!ELEMENT %mtable.qname; (%PresExpression;) > <!ELEMENT %mtr.qname; (%PresExpression;) > <!ELEMENT %mlabeledtr.qname; (%PresExpression;) > <!ELEMENT %mtd.qname; (%PresExpression;) > <!ELEMENT %maction.qname; (%PresExpression;) > <!ELEMENT %mfenced.qname; (%PresExpression;) > <!ELEMENT %mpadded.qname; (%PresExpression;) > <!-- Presentation elements contain PCDATA or malignmark constructs. --> <!ELEMENT %mi.qname; (%MathMLCharacters; | %malignmark.qname;)* > <!ELEMENT %mn.qname; (%MathMLCharacters; | %malignmark.qname;)* > <!ELEMENT %mo.qname; (%MathMLCharacters; | %malignmark.qname;)* > <!ELEMENT %mtext.qname; (%MathMLCharacters; | %malignmark.qname;)* > <!ELEMENT %ms.qname; (%MathMLCharacters; | %malignmark.qname;)* > <!-- Browser interface definition ............................... --> <!-- Attributes for top-level element "math" --> <!ENTITY % att-macros "macros CDATA #IMPLIED" > <!ENTITY % att-mode "mode CDATA #IMPLIED" > <!ENTITY % att-display "display CDATA #IMPLIED" > <!ENTITY % att-topinfo "%MATHML.Common.attrib; %att-macros; %att-mode; %att-display;" > <!-- Attributes for browser interface element --> <!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 element "math" contains MathML encoded mathematics. The "math" element has the browser info attributes iff it is also the browser interface element. --> <!ELEMENT %math.qname; (%MathExpression;) > <!ATTLIST %math.qname; %att-topinfo; %att-browif; > <!-- MathML Character Entities .............................................. --> <!ENTITY % mathml-charent.module "INCLUDE" > <![%mathml-charent.module;[ <!-- Entity sets from ISO Technical Report 9573-13 ..... --> <!ENTITY % ent-isoamsa PUBLIC "-//W3C//ENTITIES Added Math Symbols: Arrow Relations for MathML 2.0//EN" "isoamsa.ent" > %ent-isoamsa; <!ENTITY % ent-isoamsb PUBLIC "-//W3C//ENTITIES Added Math Symbols: Binary Operators for MathML 2.0//EN" "isoamsb.ent" > %ent-isoamsb; <!ENTITY % ent-isoamsc PUBLIC "-//W3C//ENTITIES Added Math Symbols: Delimiters for MathML 2.0//EN" "isoamsc.ent" > %ent-isoamsc; <!ENTITY % ent-isoamsn PUBLIC "-//W3C//ENTITIES Added Math Symbols: Negated Relations for MathML 2.0//EN" "isoamsn.ent" > %ent-isoamsn; <!ENTITY % ent-isoamso PUBLIC "-//W3C//ENTITIES Added Math Symbols: Ordinary for MathML 2.0//EN" "isoamso.ent" > %ent-isoamso; <!ENTITY % ent-isoamsr PUBLIC "-//W3C//ENTITIES Added Math Symbols: Relations for MathML 2.0//EN" "isoamsr.ent" > %ent-isoamsr; <!ENTITY % ent-isogrk3 PUBLIC "-//W3C//ENTITIES Greek Symbols for MathML 2.0//EN" "isogrk3.ent" > %ent-isogrk3; <!ENTITY % ent-isomfrk PUBLIC "-//W3C//ENTITIES Math Alphabets: Fraktur for MathML 2.0//EN" "isomfrk.ent" > %ent-isomfrk; <!ENTITY % ent-isomopf PUBLIC "-//W3C//ENTITIES Math Alphabets: Open Face for MathML 2.0//EN" "isomopf.ent" > %ent-isomopf; <!ENTITY % ent-isomscr PUBLIC "-//W3C//ENTITIES Math Alphabets: Script for MathML 2.0//EN" "isomscr.ent" > %ent-isomscr; <!ENTITY % ent-isotech PUBLIC "-//W3C//ENTITIES General Technical for MathML 2.0//EN" "isotech.ent" > %ent-isotech; <!-- Entity sets from informative annex to ISO 8879:1986 (SGML) ....... --> <!ENTITY % ent-isobox PUBLIC "-//W3C//ENTITIES Box and Line Drawing for MathML 2.0//EN" "isobox.ent" > %ent-isobox; <!ENTITY % ent-isocyr1 PUBLIC "-//W3C//ENTITIES Russian Cyrillic for MathML 2.0//EN" "isocyr1.ent" > %ent-isocyr1; <!ENTITY % ent-isocyr2 PUBLIC "-//W3C//ENTITIES Non-Russian Cyrillic for MathML 2.0//EN" "isocyr2.ent" > %ent-isocyr2; <!ENTITY % ent-isodia PUBLIC "-//W3C//ENTITIES Diacritical Marks for MathML 2.0//EN" "isodia.ent" > %ent-isodia; <!ENTITY % ent-isolat1 PUBLIC "-//W3C//ENTITIES Added Latin 1 for MathML 2.0//EN" "isolat1.ent" > %ent-isolat1; <!ENTITY % ent-isolat2 PUBLIC "-//W3C//ENTITIES Added Latin 2 for MathML 2.0//EN" "isolat2.ent" > %ent-isolat2; <!ENTITY % ent-isonum PUBLIC "-//W3C//ENTITIES Numeric and Special Graphic for MathML 2.0//EN" "isonum.ent" > %ent-isonum; <!ENTITY % ent-isopub PUBLIC "-//W3C//ENTITIES Publishing for MathML 2.0//EN" "isopub.ent" > %ent-isopub; <!-- New characters defined by MathML ............................ --> <!ENTITY % ent-mmlextra PUBLIC "-//W3C//ENTITIES Extra for MathML 2.0//EN" "mmlextra.ent" > %ent-mmlextra; <!-- MathML aliases for characters defined above ................. --> <!ENTITY % ent-mmlalias PUBLIC "-//W3C//ENTITIES Aiases for MathML 2.0//EN" "mmlalias.ent" > %ent-mmlalias; <!-- end of MathML Character Entity section -->]]> <!-- Revision History: Initial draft (syntax = XML) 1997-05-09 Stephen Buswell Revised 1997-05-14 Robert Miner Revised 1997-06-29 and 1997-07-02 Stephen Buswell Revised 1997-12-15 Stephen Buswell Revised 1998-02-08 Stephen Buswell Revised 1998-04-04 Stephen Buswell Entities and small revisions 1999-02-21 David Carlisle Added attribute definitionURL to ci and cn 1999-10-11 Nico Poppelier Additions for MathML 2 1999-12-16 David Carlisle Namespace support 2000-01-14 David Carlisle XHTML Compatibility 2000-02-23 Murray Altheim New content elements 2000-03-26 David Carlisle Further revisions for MathML2 CR draft 2000-07-11 David Carlisle Further revisions for MathML2 CR draft 2000-10-31 David Carlisle --> <!-- end of MathML 2.0 DTD ................................................ --> <!-- ....................................................................... -->
概要: 数学用マークアップ言語 (MathML) バージョン 2.0
前: 8 MathML 用の Document Object Model
次: B Content Markup Validation Grammar