errors in the Math ML specification

1. In the first paragraph of section 4.2.1.2 "Constructing General
Expressions", the example 

	<plus type="vector"/>

is incorrect. The DTD for MathML in appendix A defines the "plus" attributes
as follows

	<!ENTITY % att-definition        'definitionURL CDATA ""'    >

	<!ENTITY % att-globalatts      'class CDATA #IMPLIED
                                                        style CDATA #IMPLIED
                                                        id    ID    #IMPLIED
                                                        other CDATA
#IMPLIED'  >

	<!ATTLIST plus        %att-definition;
                                          %att-globalatts;     >

or

	<!ATTLIST plus        definitionURL     CDATA        ""
                                          class                CDATA
#IMPLIED
                                          style                 CDATA
#IMPLIED
                                          id                      ID
#IMPLIED
                                         other                  CDATA
#IMPLIED     >

Clearly, a "type" attribute has not been defined for "plus".

2. In the second paragraph of section 5.2 "How to Mix Markup", the example

	<mrow> <plus/> <mi> x </mi> <mi> y </mi> </mrow>

is incorrect. The "MathML" DTD in appendix A defines "mrow" as follows

	<!ENTITY % ptoken "mi | mn | mo | mtext | ms" >

	<!ENTITY % petoken  "mspace" >

	<!ENTITY % pscreschema "mprescripts|none" >

	<!ENTITY % pgenschema "mrow|mfrac|msqrt|mroot|mstyle|merror|mpadded|
mphantom|mfenced" >

	<!ENTITY % pscrschema
"msub|msup|msubsup|munder|mover|munderover|mmultiscripts" >

	<!ENTITY % ptabschema "mtable|mtr|mtd" >

	<!ENTITY % plschema  "%pgenschema;|%pscrschema;|%ptabschema;" >

	<!ENTITY % peschema "maligngroup | malignmark" >

	<!ENTITY % pactions "maction" >

	<!ENTITY % Presentation  "%ptoken; | %petoken; | %pscreschema; |
%plschema; | %peschema; | %pactions;">

	<!ENTITY % ContInPres "ci | cn  | apply  | fn | lambda | reln |
interval | list | matrix |matrixrow | set | vector | 
                                                 semantics" > 

	<!ENTITY % PresExpression      "(%Presentation; | %ContInPres;)* "
>

	<!ELEMENT mrow            (%PresExpression;)                      >

or

	<!ELEMENT mrow  (mi | mn | mo | mtext | ms | mspace | mprescripts|
none | mrow | mfrac | msqrt | mroot| mstyle |
merror | mpadded | mphantom | mfenced | msub |msup | msubsup | munder |
mover | munderover |                      
			      mmultiscripts | mtable | mtr|mtd | maligngroup
| malignmark | maction | ci | cn  | apply  | fn | 
			      lambda | reln | interval | list | matrix |
matrixrow | set | vector | semantics)*>

Clearly, a "plus" empty element tag can not follow the "mrow" tag. The
NSGMLS parser states that an "apply", "reln", "lambda", "semantics",
"interval", "set", "list", "vector", "matrix", "matrixrow, or "fn" start-tag
is missing here.

3. In section 5.3 "Anticipating Macros for Combined Markup", the example
following "from 5.1.3 could then be condensed to" is incorrect. Compare the
first three lines of this example

	<reln>
	<eq>
	</apply>

with the first three lines of the example in 5.1.3 referred to

	<reln>
	<eq/>
	<apply>

Clearly, 

	<eq>
	</apply>

 is syntactically incorrect and must be changed to

	<eq/>
	<apply> 

4. Table 7.1.5.1 "MathML Elements Which Cannot Be Linking Elements" contains
"<prescripts/>". The MathML DTD does not define "prescripts". Is
"<mprescripts>" intended here?

Received on Friday, 22 October 1999 10:29:39 UTC