MathML 1 "interface attributes" in MathML3.

I have been asked abouta problem moving from MathML2 to MathML3 that
"name" attribute on the math element is no longer valid. After further
investigation I think the situation is as follows.

MathML 1.0 documented some explicitly speculative attributes on math
designed to help possible plugin architectures to render the MathML.

In particular the three attributes: name baseline and type.


These are documented in MathML _1_

http://www.w3.org/TR/REC-MathML/chapter7.html

>
> name: "Provided for scripting."
>
> baseline: "Ideally, embedded elements will soon be able to
> dynamically negotiate height, width and baseline alignment with
> browsers. However, these optional attributes are suggested as an
> interim solution for software vendors that want to support MathML,
> but are unable to provide dynamic resizing and alignment."
>
>
> type: type="mime type" The type attribute assigns a MIME type to the
> tag content. This attribute should ideally be used to invoke an
> embedded element, such as a Java applet, plug-in or ActiveX control,
> to render the tag content as described in the next section.


As far as I can see these three attributes are not documented anywhere
in the text of MathML2 however they _were_ declared in the MathML DTD so
use of the attributes would not be flagged by a dtd based validator.

http://www.w3.org/TR/2001/REC-MathML2-20010221/appendixa.html#pent_att-browif


In MathML3 they are not declared so use of the attributes _is_
flagged by a validator.

This change is not recorded in the change log in MathML3 for which I
apologise, I'll fix that in the editors's draft asap.

http://www.w3.org/Math/draft-spec/appendixf.html#changes.mathml2.0e-3.0


If any implementations _are_ using these attributes it would be
interesting to hear from you!

If you have an existing document collection that you want to consider
valid against MathML3 (rather than MathML2) it is simple to add these
attributes to whatever DTD is including MathML into a larger document type.

If you want to edit existing MathML2 to be valid to the standard MathML3
DTD, then I _think_ the advice should be change name= to id= and just
delete the baseline and type attributes on <math>, however If an
implementation is using these attributes that advice may not be quite
right, hence the call to implementers above...


David

Received on Saturday, 6 July 2013 18:43:48 UTC