W3C

Errata de la spécification du langage de balisage mathématique (MathML) version 2.0

Cette version :
http://www.w3.org/2001/02/MathML2-errata.html
Ce document relève les erreurs connues dans la spécification :
http://www.w3.org/TR/2001/REC-MathML2-20010221
La dernière version de la spécification du langage de balisage mathématique (MathML) version 2.0 se trouve à :
http://www.w3.org/TR/MathML2

À propos de la spécification MathML 2.0

La recommandation MathML 2.0 a été produite par le groupe de travail Math du W3C qui est une émanation de l'activité du Domaine de l'Interface Utilisateur du W3C.

Ce document liste les erreurs connues de la spécification MathML 2.0. Chaque entrée comporte les informations suivantes :

Veuillez envoyer les commentaires généraux à propos de ce document à la liste de diffusion publique www-math@w3.org. Une archive est disponible à http://lists.w3.org/Archives/Public/www-math/.


Conventions

Le texte ajouté est signalé de cette façon. Le texte supprimé apparaît comme ceci. Et le texte modifié comme cela.

Les erreurs connues au 16 juin 2002


E01 : Éclaircissement de l'exemple dans la Section 4.4.3.17
E02 : Éclaircissement de l'utilisation du type e-notation dans l'élément cn
E03 : Correction de l'interface DOM MathMLPresentationToken
E04 : Correction de l'interface DOM MathMLOperatorElement
E05 : Correction de l'interface DOM MathMLContentToken
E06 : Correction de l'interface DOM MathMLApplyElement
E07 : Correction de l'interface DOM MathMLPredefinedSymbol
E08 : Nouveaux fichiers DOM situés à http://www.w3.org/Math/DOM
E09 : Correction des attributs de l'élément mfrac dans la définition DTD
E10 : Correction des attributs XLink dans la définition DTD
E11 : Correction de la gestion de l'espace de nommage XLink dans la définition DTD
E12 : Les définitions d'entité mises à jour pour Unicode 3.1/3.2
E13 : La définition DTD XHTML+MathML mise à jour par rapport à la recommandation XHTML 1.1
E14 : Nouveaux fichiers DTD situés à http://www.w3.org/Math/DTD et http://www.w3.org/Math/characters
E15 : Obsolescence des caractères d'espacement négatif
E16 : Correction de la complexité d'espace du balisage parallèle
E17 : Unités manquantes dans l'exemple 3.3.9.3
E18 : Correction de l'exemple de valeur Unicode avec A


E18 - Erreur rédactionnelle. (2002-07-16)

6.2.1 Les données de caractères Unicode

L'exemple donne une valeur Unicode inexacte pour A.

En utilisant directement les caractères : par exemple, on peut entrer au clavier un A en tant que A (caractère U+0041).

En utilisant des références de caractères numériques XML : avec cette notation, un A peut être représenté par A (en décimal) ou A (en hexadécimal).

E17 - Erreur rédactionnelle. (2002-07-14)

3.3.9.3 Exemples

L'exemple a oublié les unités des attributs columnspacing et rowspacing.

<mtable columnspacing='0pt' rowspacing='0pt'>

E16 - Erreur rédactionnelle. (2002-07-06)

5.3.2 Le balisage parallèle fin

La complexité d'espace du balisage à grain fin était donnée de manière erronnée par O(n2).

Cette approche est très générale et fonctionne pour tous types d'annotations (y compris les annotations non-MathML et les annotations multiples). Elle conduit, cependant, à un accroissement de n log n de la taille du document.

E15 - Erreur importante. (2002-07-05)

6.2.4 Les caractères invisibles

Unicode 3 n'a finalement pas retenus les caractères d'espacement négatif contenus dans les propositions. Les entités se rapportant à ces caractères sont maintenant déconseillées et devraient être supprimées du tableau dans le chapitre 6. Elles ont été conservées dans la définition DTD pour compatibilité, mais elles correspondent à un espace de largeur nulle, comme indiqué dans l'entrée E12.

Nom du caractère Unicode Description
&ZeroWidthSpace; 0200B un espace sans dimension du tout
&VeryThinSpace; 0200A un espace de chasse 1/18 em
&ThinSpace; 02009 un espace de chasse 3/18 em
&MediumSpace; 02005 un espace de chasse 4/18 em
&ThickSpace; 02009-0200A-0200A un espace de chasse 5/18 em
&NegativeVeryThinSpace; 0200A-0FE00 un espace de chasse -1/18 em
&NegativeThinSpace; 02009-0FE00 un espace de chasse -3/18 em
&NegativeMediumSpace; 0205F-0FE00 un espace de chasse -4/18 em
&NegativeThickSpace; 02005-0FE00 un espace de chasse -5/18 em
Section 3.2.5.2
Section 3.3.4.2
La signification des espaces mathématiques nommés

Les caractères d'espacement négatif ont du être supprimés car les caractères proposés n'ont pas été ajoutés à Unicode. Le jeu des unités nommées utilisable avec l'attribut width de l'élément mspace a été augmenté afin d'inclure ces espacements négatifs nommés.

negativeveryverythinmathspace, negativeverythinmathspace, negativethinmathspace, negativemediummathspace, negativethickmathspace, negativeverythickmathspace, negativeveryverythickmathspace, veryverythinmathspace, verythinmathspace, thinmathspace, mediummathspace, thickmathspace, verythickmathspace ou veryverythickmathspace

E14 - Erreur importante. (2002-07-05)

Comme décrit ci-dessous dans les entrées E09 à E13, certaines corrections ont été apportées aux définitions DTD MathML et XHTML+MathML. Puisqu'une machine doit pouvoir lire la définition DTD, plutôt que de modifier ligne par ligne comme ici, des fichiers DTD mis à jour sont maintenant disponibles sur la page de DTD du groupe de travail Math : http://www.w3.org/Math/DTD.

Annexe A

La définition DTD MathML 2.0 http://www.w3.org/Math/DTD/mathml2/mathml2.dtd est une mise à jour normative de celle donnée dans l'Annexe A.

La définition DTD XHTML+MathML en exemple a également été mise à jour ; remarquez que cette définition DTD ne constitue pas une part normative de la recommandation MathML 2.0, mais c'est un exemple de combinaison MathML et modularisation XHTML (cf. http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd). Comme décrit dans la documentation de la page de caractères du groupe de travail http://www.w3.org/Math/characters, la définition DTD XHTML + MathML a été (temporairement) paramétrée afin de résoudre les problèmes rencontrés par les navigateurs actuels avec les caractères du Plan 1.

Chapitre 6

Les tableaux de caractères dans le chapitre 6 ont été réactualisés afin de correspondre avec la définition DTD mise à jour. Ces tableaux sont tous disponibles à la page de caractères du groupe de travail http://www.w3.org/Math/characters.

E13 - Erreur importante. (2002-07-05)

Annexe A

L'annexe A contenait un lien non normatif vers une définition DTD combinée XHTML + MathML, laquelle se basait sur un avant-projet XHTML 1.1. Il faudrait dorénavant utiliser MathML avec la définition DTD XHTML 1.1 publiée.

E12 - Erreur importante. (2002-07-05)

Annexe A

La recommandation MathML 2.0 s'appuyait sur la soumission d'un avant-projet de caractères Unicode pour les mathématiques. Depuis la publication de la recommandation, les normes Unicode 3.1 et 3.2 ont été finalisées, et le rapport technique Unicode 25 a formalisé l'utilisation du caractère sélecteur de variante. Cela a induit des changements dans les définitions d'entités référencées (mais non présentes) dans l'annexe A et dans les tableaux HTML des descriptions de caractères au chapitre 6.

Jeu             Nom                      Nouveau        Rec. MathML 2.0
=======================================================================
8879-isodia     circ                     U002C6         U0005E
8879-isogrk3    phis                     U003D5         U003C6
8879-isogrk3    phiv                     U003C6         U003D5
9573-13-isoamsa xlarr                    U027F5         U0F576
9573-13-isoamsa xrarr                    U027F6         U0F577
9573-13-isoamsa xharr                    U027F7         U0F578
9573-13-isoamsa dzigrarr                 U027FF         U0F5A2
9573-13-isoamsa xmap                     U027FC         U0F57D
9573-13-isoamsa xlArr                    U027F8         U0F579
9573-13-isoamsa xrArr                    U027F9         U0F57A
9573-13-isoamsa xhArr                    U027FA         U0F57B
9573-13-isoamsa srarr                    U02192         U02192-0FE00
9573-13-isoamsa slarr                    U02190         U02190-0FE00
9573-13-isoamsb ssetmn                   U02216         U02216-0FE00
9573-13-isoamsn nlE                      U02A7D-00338   U02270
9573-13-isoamsn nles                     U02A7D-00338   U02270
9573-13-isoamsn nvle                     U02A7D-00338   U02270
9573-13-isoamsn ngE                      U02A7E-00338   U02271
9573-13-isoamsn nges                     U02A7E-00338   U02271
9573-13-isoamsn nvge                     U02A7E-00338   U02271
9573-13-isoamsn nge                      U02271         U02271-020E5
9573-13-isoamsn nle                      U02270         U02270-020E5
9573-13-isoamsn nsmid                    U02224         U02224-0FE00
9573-13-isoamsn nspar                    U02226         U02226-0FE00
9573-13-isoamsn nvap                     U0224D-020D2   U02249-00338
9573-13-isoamsn nLt                      U0226A-020D2   U0226A-00338
9573-13-isoamsn nGt                      U0226B-020D2   U0226B-00338
9573-13-isoamsn nLtv                     U0226A-00338   U0226A-00338-0FE00
9573-13-isoamsn nGtv                     U0226B-00338   U0226B-00338-0FE00
9573-13-isoamsn nvrtrie                  U022B5-020D2   U022ED-00338
9573-13-isoamsn nvltrie                  U022B4-020D2   U022EC-00338
9573-13-isoamsn nvsim                    U0223C-020D2   U02241-00338
9573-13-isoamso planck                   U0210F         U0210F-0FE00
9573-13-isoamso empty                    U02205         U02205-0FE00
9573-13-isoamso jmath                    U0006A         U0006A-0FE00
9573-13-isoamso nang                     U02220-020D2   U02220-00338
9573-13-isoamso angrtvb                  U022BE         U0299D-0FE00
9573-13-isoamsr asymp                    U02248         U0224D
9573-13-isoamsr smid                     U02223         U02223-0FE00
9573-13-isoamsr spar                     U02225         U02225-0FE00
9573-13-isoamsr thkap                    U02248         U02248-0FE00
9573-13-isoamsr suphsol                  U02283-00338   U02283-0002F
9573-13-isoamsr thksim                   U0223C         U0223C-0FE00
9573-13-isogrk3 phi                      U003D5         U003C6
9573-13-isogrk3 phiv                     U003C6         U003D5
9573-13-isotech notinva                  U02209         U02209-00338
9573-13-isotech lopar                    U02985         U03018
9573-13-isotech loang                    U02989         U0F558
9573-13-isotech roang                    U0298A         U0F559
9573-13-isotech ropar                    U02986         U03019
9573-13-isotech notindot                 U02209-00307   U022F6-0FE00
9573-13-isotech nedot                    U02260-00307   U02260-0FE00
mmlalias        Hat                      U0005E         U00302
mmlalias        straightphi              U003D5         U003C6
mmlalias        Upsilon                  U003A5         U003D2
mmlalias        varphi                   U003C6         U003D5
mmlalias        InvisibleComma           U02063         U0200B
mmlalias        hbar                     U0210F         U0210F-0FE00
mmlalias        longleftarrow            U027F5         U0F576
mmlalias        LongLeftArrow            U027F5         U0F576
mmlalias        longrightarrow           U027F6         U0F577
mmlalias        LongRightArrow           U027F6         U0F577
mmlalias        longleftrightarrow       U027F7         U0F578
mmlalias        LongLeftRightArrow       U027F7         U0F578
mmlalias        longmapsto               U027FC         U0F57D
mmlalias        Longleftarrow            U027F8         U0F579
mmlalias        DoubleLongLeftArrow      U027F8         U0F579
mmlalias        Longrightarrow           U027F9         U0F57A
mmlalias        DoubleLongRightArrow     U027F9         U0F57A
mmlalias        Longleftrightarrow       U027FA         U0F57B
mmlalias        DoubleLongLeftRightArrow U027FA         U0F57B
mmlalias        NotGreaterFullEqual      U02A7D-00338   U02270
mmlalias        nleqq                    U02A7D-00338   U02270
mmlalias        NotLessSlantEqual        U02A7D-00338   U02270
mmlalias        nleqslant                U02A7D-00338   U02270
mmlalias        ngeqq                    U02A7E-00338   U02271
mmlalias        NotGreaterSlantEqual     U02A7E-00338   U02271
mmlalias        ngeqslant                U02A7E-00338   U02271
mmlalias        ShortRightArrow          U02192         U02192-0FE00
mmlalias        ShortLeftArrow           U02190         U02190-0FE00
mmlalias        NotGreaterEqual          U02271         U02271-020E5
mmlalias        ngeq                     U02271         U02271-020E5
mmlalias        NotLessEqual             U02270         U02270-020E5
mmlalias        nleq                     U02270         U02270-020E5
mmlalias        nshortmid                U02224         U02224-0FE00
mmlalias        nshortparallel           U02226         U02226-0FE00
mmlalias        NotLessLess              U0226A-00338   U0226A-00338-0FE00
mmlalias        NotGreaterGreater        U0226B-00338   U0226B-00338-0FE00
mmlalias        emptyset                 U02205         U02205-0FE00
mmlalias        shortmid                 U02223         U02223-0FE00
mmlalias        shortparallel            U02225         U02225-0FE00
mmlalias        thickapprox              U02248         U02248-0FE00
mmlalias        thicksim                 U0223C         U0223C-0FE00
mmlalias        smallsetminus            U02216         U02216-0FE00
mmlextra        ic                       U02063         U0200B
mmlextra        ShortDownArrow           U02193         U02304-0FE00
mmlextra        ShortUpArrow             U02191         U02303-0FE00
mmlextra        NoBreak                  U02060         U0FEFF
mmlextra        NegativeVeryThinSpace    U0200B         U0200A-0FE00
mmlextra        NegativeThinSpace        U0200B         U02009-0FE00
mmlextra        NegativeMediumSpace      U0200B         U0205F-0FE00
mmlextra        NegativeThickSpace       U0200B         U02005-0FE00
mmlextra        NotNestedLessLess        U02AA1-00338   U024A1-00338
mmlextra        NotNestedGreaterGreater  U02AA2-00338   U024A2-00338
mmlextra        EmptySmallSquare         U025FB         U025FD
mmlextra        FilledSmallSquare        U025FC         U025FE
mmlextra        EmptyVerySmallSquare     U025AB         U0F59C
mmlextra        FilledVerySmallSquare    U025AA         U0F59B

E11 - Erreur rédactionnelle. (2002-07-05)

La définition DTD donnée dans l'annexe A devrait admettre une entité paramètre %XLINK.prefix; afin que le préfixe d'espace de nommage puisse être différent de xlink:.

E10 - Erreur importante. (2002-07-05)

MathML admet le mécanisme de liaison Xlink simple qui utilise l'attribut xlink:href, mais pour être conforme à la recommandation XLink, il devrait autoriser l'attribut supplémentaire xlink:type="simple". Il faudrait donc ajouter cet attribut supplémentaire à la définition DTD de MathML.

E09 - Erreur importante. (2002-07-05)

Comme décrit dans le chapitre 3 de la recommandation, l'élément mtable devrait admettre les attributs width et side, et l'élément mfrac les attributs numalign et denomalign. Ces quatres attributs ont été oubliés dans la définition DTD donnée dans l'annexe A.

E08 - Erreur importante. (2002-05-21)

Comme décrit ci-dessous aux entrées E03-E09, certaines corrections sont apparues dans la description du DOM de MathML. L'Annexe E non normative contient des liens vers les liaisons IDL, Java et ECMAScript, lisibles par une machine. Des liaisons mises à jour sont maintenant disponibles depuis le groupe de travail Math à cette adresse URI http://www.w3.org/Math/DOM. Le groupe de travail entend conserver les fichiers à cette adresse, et il faudrait les considérer comme des mises à jour des fichiers appelés depuis l'Annexe E de la recommandation.

E07 - Erreur importante. (2002-03-14)

Dans le modèle objet de document de MathML, l'attribut arity de l'interface MathMLPredefinedSymbol ne devrait pas être modifiable. Cette interface est prévue pour modéliser les éléments MathML des fonctions et opérateurs spécifiques définis dans la recommandation, par exemple sin ou diff ; l'attribut arity d'une instance de cette interface sera donc prédéterminé.

Annexe D : Interface MathMLPredefinedSymbol

Faire que l'attribut arity soit en lecture seule.

Définition IDL

interface MathMLPredefinedSymbol: MathMLContentElement {
      attribute DOMString definitionURL;
      attribute DOMString encoding;
      readonly attribute DOMString arity;
      readonly attribute DOMString symbolName;
    };

Attributs

definitionURL de type DOMString

Une chaîne qui fournit un remplacement de la sémantique par défaut, ou une définition plus spécifique.

encoding de type DOMString

Une chaîne décrivant la syntaxe dans laquelle est donnée la définition localisée par definitionURL.

arity de type DOMString, en lecture seule

Une chaîne représentant le nombre d'arguments. Les valeurs comprennent 0, 1, etc. et variable.

Annexe E.1 : La liaison IDL au modèle objet de document de MathML

Faire que l'attribut arity soit en lecture seule dans la liaison IDL de l'interface MathMLApplyElement.

  interface MathMLPredefinedSymbol : MathMLContentElement
  {
             attribute DOMString         definitionURL;
             attribute DOMString         encoding;
    readonly attribute DOMString         arity;
    readonly attribute DOMString         symbolName;
  };
Annexe E.2 : La liaison Java au modèle objet de document de MathML

Supprimer la méthode setArity() de la définition Java de l'interface MathMLPredefinedSymbol.

public interface MathMLPredefinedSymbol extends MathMLContentElement
{
    public String                 getDefinitionURL();
    public void                   setDefinitionURL(String definitionURL);
    public String                 getEncoding();
    public void                   setEncoding(String encoding);
    public String                 getArity();
    public void                   setArity(String arity);
    public String                 getSymbolName();
};

E06 - Erreur importante. (2002-03-14)

Dans le modèle objet de document de MathML, les deux interfaces MathMLApplyElement et sa superclasse MathMLContentContainer contenaient un attribut domainOfApplication. Il s'agissait d'un oubli ; l'attribut ne devrait apparaître que sur l'une de ces interfaces et on le supprimera donc de l'interface MathMLApplyElement.

Annexe D : Interface MathMLApplyElement

Supprimer l'attribut domainOfApplication.

Définition IDL

interface MathMLApplyElement: MathMLContentContainer {
      attribute MathMLElement operator;
      attribute MathMLElement domainOfApplication;
      attribute MathMLElement lowLimit;
      attribute MathMLElement upLimit;
    };

Attributs

operator de type MathMLElement

L'élément MathML représentant la fonction (ou l'opérateur) appliquée à la liste d'arguments.

domainOfApplication de type MathMLElement

Cet attribut représente le sous-élément domainofapplication de ce nœud (le cas échéant). Cela exprime, par exemple, le domaine d'intégration, si c'est un élément apply dont le premier sous-élément est un élément int. Cf. la section 4.2.3.2 Les opérateurs admettant des qualificatifs.

Exceptions à l'initialisation

DOMException

HIERARCHY_REQUEST_ERR : Produite si cet élément n'admet pas de sous-élément domainofapplication.

Annexe E.1 : La liaison IDL au modèle objet de document de MathML

Supprimer l'attribut domainOfApplication de la définition IDL de l'interface MathMLApplyElement.

  interface MathMLApplyElement : MathMLContentContainer
  {
             attribute MathMLElement     operator;
             attribute MathMLElement     domainOfApplication;
                     // déclenche un DOMException à l'initialisation
             attribute MathMLElement     lowLimit;
                     // déclenche un DOMException à l'initialisation
             attribute MathMLElement     upLimit;
                     // déclenche un DOMException à l'initialisation
  };
Annexe E.2 : La liaison Java au modèle objet de document de MathML

Supprimer l'attribut domainOfApplication de la définition Java de l'interface MathMLApplyElement.

public interface MathMLApplyElement extends MathMLContentContainer
{
    public MathMLElement          getOperator();
    public void                   setOperator(MathMLElement operator);
    public MathMLElement          getDomainOfApplication();
    public void                   setDomainOfApplication(MathMLElement domainOfApplication)
                                                         throws DOMException;
    public MathMLElement          getLowLimit();
    public void                   setLowLimit(MathMLElement lowLimit)
                                                         throws DOMException;
    public MathMLElement          getUpLimit();
    public void                   setUpLimit(MathMLElement upLimit)
                                                         throws DOMException;
};
Annexe E.3 : La liaison ECMAScript au modèle objet de document de MathML

Supprimer l'attribut domainOfApplication de la définition ECMAScript de l'interface MathMLApplyElement.

domainOfApplication
Cette propriété est du type MathMLElement.

E05 - Erreur importante. (2002-03-14)

L'interface MathMLContentToken dans le modèle objet de document contenait les méthodes setArgument(in unsigned long index, in Node newArgument) et insertArgument(in unsigned long index, in Node newArgument). L'interface MathMLContainer contenait des méthodes de mêmes noms, mais avec des signatures différentes : setArgument(in MathMLElement newArgument, in unsigned long index) et setArgument(in MathMLElement newArgument, in unsigned long index).

Pour la cohérence et afin d'éviter les confusions, les paramètres des méthodes de MathMLContentToken devraient être inversés, de sorte que l'argument de position entier vienne en dernier. (La distinction entre les objets Node et MathMLElement est toutefois intentionnelle et elle devrait être conservée).

Annexe D : Interface MathMLContentToken

Inverser l'ordre des paramètres des méthodes setArgument et insertArgument.

Définition IDL

interface MathMLContentToken: MathMLContentElement {
      readonly attribute MathMLNodeList arguments;
      attribute DOMString definitionURL;
      attribute DOMString encoding;
      Node getArgument(in unsigned long index);
      Node insertArgument(in Node newArgument, in unsigned long index);
      Node setArgument(in Node newArgument, in unsigned long index);
      void deleteArgument(in unsigned long index);
      Node removeArgument(in unsigned long index);
    };

Attributs

arguments de type MathMLNodeList, en lecture seule

Les arguments de cet élément, retournés en tant qu'objet MathMLNodeList. Remarquez que ce n'est pas nécessairement la même chose que pour Node::childNodes, notamment dans le cas de l'élément cn. La raison tient au fait que les éléments sep, employés pour la séparation des arguments d'un élément cn, ne sont pas retournés.

definitionURL de type DOMString

Une adresse URI pointant vers une définition sémantique de cet élément de contenu. Remarquez qu'il n'y a aucune condition concernant la forme prise par cette définition.

encoding de type DOMString

Une chaîne décrivant la syntaxe dans laquelle est donnée la définition localisée par l'attribut definitionURL.

Méthodes

getArgument

Une méthode pratique pour récupérer le sous-élément argument occupant la position référencée par l'attribut index. Remarquez qu'elle ne correspondra pas forcément à celle de l'objet Node indexé de cet objet Element ; en particulier, les éléments sep ne seront pas comptés.

Paramètres

unsigned longindex

La position de l'argument voulu dans la liste d'arguments. Le premier argument est numéroté 1.

Valeur retournée

Node

L'objet Node récupéré.

Cette méthode ne produit aucune exception.

insertArgument

Une méthode pratique pour insérer un objet newArgument avant le sous-élément argument indexé courant de cet élément. Si la valeur du paramètre index est 0, l'objet newArgument se place en dernier argument.

Paramètres

unsigned longindex

La position avant laquelle l'objet newArgument doit s'insérer. Le premier argument est numéroté 1. Remarquez que l'index ne correspond pas forcément à celui de l'objet Node dans la liste des nœuds-enfants, puisque les nœuds représentant des éléments comme sep ne sont pas comptés comme arguments.

NodenewArgument

L'objet Node à insérer comme argument indexé. Il s'agira soit d'un nœud MathMLElement, soit d'un nœud Text.

unsigned longindex

La position avant laquelle l'objet newArgument doit s'insérer. Le premier argument est numéroté 1. Remarquez que l'index ne correspond pas forcément à celui de l'objet Node dans la liste des nœuds-enfants, puisque les nœuds représentant des éléments comme sep ne sont pas comptés comme arguments.

Valeur retournée

Node

L'objet Node inséré. C'est l'élément dans le DOM.

Cette méthode ne produit aucune exception.

setArgument

Une méthode pratique pour placer un argument enfant à la position désignée par l'attribut index. S'il y a couramment un argument à cette position, l'objet newArgument le remplace.

Paramètres

unsigned longindex

La position de l'argument à donner à l'objet newArgument dans la liste des arguments. Le premier argument est numéroté 1. Remarquez que l'index ne correspond pas forcément à celui de l'objet Node dans la liste des nœuds-enfants, puisque les nœuds représentant des éléments comme sep ne sont pas comptés comme arguments.

NodenewArgument

L'objet Node à insérer comme argument. Il s'agira soit d'un objet MathMLElement, soit d'un nœud Text.

unsigned longindex

La position de l'argument à donner à l'objet newArgument dans la liste des arguments. Le premier argument est numéroté 1. Remarquez que l'index ne correspond pas forcément à celui de l'objet Node dans la liste des nœuds-enfants, puisque les nœuds représentant des éléments comme sep ne sont pas comptés comme arguments.

Valeur retournée

Node

L'objet Node inséré. C'est l'élément dans le DOM.

Cette méthode ne produit aucune exception.

Annexe E.1 : La liaison IDL au modèle objet de document de MathML

Inverser l'ordre des paramètres des méthodes setArgument et insertArgument dans la définition IDL de l'interface MathMLContentToken.

  interface MathMLContentToken : MathMLContentElement
  {
    readonly attribute MathMLNodeList    arguments;
             attribute DOMString         definitionURL;
             attribute DOMString         encoding;
    Node                      getArgument(in unsigned long index);
    Node                      insertArgument(in Node newArgument,
                                             in unsigned long index);
    Node                      setArgument(in Node newArgument,
                                          in unsigned long index);
    void                      deleteArgument(in unsigned long index);
    Node                      removeArgument(in unsigned long index);
  };
Annexe E.2 : La liaison Java au modèle objet de document de MathML

Inverser l'ordre des paramètres des méthodes setArgument et insertArgument dans la définition Java de l'interface MathMLContentToken.

public interface MathMLContentToken extends MathMLContentElement
{
    public MathMLNodeList         getArguments();
    public String                 getDefinitionURL();
    public void                   setDefinitionURL(String definitionURL);
    public String                 getEncoding();
    public void                   setEncoding(String encoding);
    public Node                   getArgument(int index);
    public Node                   insertArgument(Node newArgument,
                                                 int index);
    public Node                   setArgument(Node newArgument,
                                              int index);
    public void                   deleteArgument(int index);
    public Node                   removeArgument(int index);
};
Annexe E.3 : La liaison ECMAScript au modèle objet de document de MathML

Inverser l'ordre des paramètres des méthodes setArgument et insertArgument dans la définition ECMAScript de l'interface MathMLContentToken.

insertArgument(newArgument,index)
Cette méthode retourne un objet Node. Le paramètre newArgument est du type Node. Le paramètre index est du type unsigned long.
setArgument(newArgument,index)
Cette méthode retourne un objet Node. Le paramètre newArgument est du type Node. Le paramètre index est du type unsigned long.

E04 - Erreur typographique. (2002-03-14)

L'interface MathMLOperatorElement dans le modèle objet de document de MathML contenait des références erronnées à l'attribut movablelimits de l'élément mo. L'attribut était écrit moveablelimits dans les références du DOM ; ceci devrait être corrigé, dans l'annexe D de la recommandation et dans les diverses liaisons de langage du DOM.

Annexe D : Interface MathMLOperatorElement

Corriger l'orthographe de movablelimits.

Définition IDL

interface MathMLOperatorElement: MathMLPresentationToken {
        attribute DOMString form;
        attribute DOMString fence;
        attribute DOMString separator;
        attribute DOMString lspace;
        attribute DOMString rspace;
        attribute DOMString stretchy;
        attribute DOMString symmetric;
        attribute DOMString maxsize;
        attribute DOMString minsize;
        attribute DOMString largeop;
        attribute DOMString movablelimits;
        attribute DOMString accent;
      };

Attributs

form de type DOMString

L'attribut form (avec les valeurs prefix, infix ou postfix) de l'élément mo, si défini.

fence de type DOMString

L'attribut fence (valeurs true ou false) de l'élément mo, si défini.

separator de type DOMString

L'attribut separator (valeurs true ou false) de l'élément mo, si défini.

lspace de type DOMString

L'attribut lspace (espacement à gauche) de l'élément mo, si défini.

rspace de type DOMString

L'attribut rspace (espacement à droite) de l'élément mo, si défini.

stretchy de type DOMString

L'attribut stretchy (valeurs true ou false) de l'élément mo, si défini.

symmetric de type DOMString

L'attribut symmetric (valeurs true ou false) de l'élément mo, si défini.

maxsize de type DOMString

L'attribut maxsize de l'élément mo, si défini

minsize de type DOMString

L'attribut minsize de l'élément mo, si défini.

largeop de type DOMString

L'attribut largeop de l'élément mo, si défini.

movablelimits de type DOMString

L'attribut movablelimits (valeurs true ou false) de l'élément mo, si défini.

Annexe E.1 : La liaison IDL au modèle objet de document de MathML

Corriger l'orthographe de movablelimits dans la définition IDL de l'interface MathMLOperatorElement.

  interface MathMLOperatorElement : MathMLPresentationToken
  {
             attribute DOMString         form;
             attribute DOMString         fence;
             attribute DOMString         separator;
             attribute DOMString         lspace;
             attribute DOMString         rspace;
             attribute DOMString         stretchy;
             attribute DOMString         symmetric;
             attribute DOMString         maxsize;
             attribute DOMString         minsize;
             attribute DOMString         largeop;
             attribute DOMString         movablelimits;
             attribute DOMString         accent;
  };
Annexe E.2 : La liaison Java au modèle objet de document de MathML

Corriger l'orthographe de movablelimits dans la définition Java de l'interface MathMLOperatorElement.

public interface MathMLOperatorElement extends MathMLPresentationToken
{
    public String                 getForm();
    public void                   setForm(String form);
    public String                 getFence();
    public void                   setFence(String fence);
    public String                 getSeparator();
    public void                   setSeparator(String separator);
    public String                 getLspace();
    public void                   setLspace(String lspace);
    public String                 getRspace();
    public void                   setRspace(String rspace);
    public String                 getStretchy();
    public void                   setStretchy(String stretchy);
    public String                 getSymmetric();
    public void                   setSymmetric(String symmetric);
    public String                 getMaxsize();
    public void                   setMaxsize(String maxsize);
    public String                 getMinsize();
    public void                   setMinsize(String minsize);
    public String                 getLargeop();
    public void                   setLargeop(String largeop);
    public String                 getMovablelimits();
    public void                   setMovablelimits(String movablelimits);
    public String                 getAccent();
    public void                   setAccent(String accent);
};
Annexe E.3 : La liaison ECMAScript au modèle objet de document de MathML

Corriger l'orthographe de movablelimits dans la définition ECMAScript de l'interface MathMLOperatorElement.

movablelimits
Cette propriété est du type DOMString.

E03 - Erreur importante. (2002-03-14)

L'interface MathMLPresentationToken dans le modèle objet de document de MathML contenait des références à un attribut mathfamily absent des éléments présentés. Toutes les références à cet attribut devraient être supprimées, dans l'annexe D de la recommandation ainsi que dans les diverses liaisons de langage au DOM.

Annexe D : Interface MathMLPresentationToken

Effacer l'attribut mathfamily de la définition IDL et de la description.

Définition IDL

interface MathMLPresentationToken: MathMLPresentationElement {
          attribute DOMString mathvariant;
          attribute DOMString mathsize;
          attribute DOMString mathfamily;
          attribute DOMString mathcolor;
          attribute DOMString mathbackground;
          readonly attribute MathMLNodeList contents;
        };

Attributs

mathvariant de type DOMString

L'attribut mathvariant de l'élément, si défini. L'une parmi les valeurs : 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 ou monospace.

mathsize de type DOMString

L'attribut mathsize de l'élément, si défini. Soit l'une parmi les valeurs small, normal ou big, soit une valeur de la forme number v-unit.

mathfamily de type DOMString

L'attribut mathfamily de l'élément, si défini. Ce devrait être une chaîne de la forme css-fontfamily.

Annexe E.1 : La liaison IDL au modèle objet de document de MathML

Effacer mathfamily de la définition IDL de l'interface MathMLPresentationToken.

  interface MathMLPresentationToken : MathMLPresentationElement
  {
             attribute DOMString         mathvariant;
             attribute DOMString         mathsize;
             attribute DOMString         mathfamily;
             attribute DOMString         mathcolor;
             attribute DOMString         mathbackground;
    readonly attribute MathMLNodeList    contents;
  };
Annexe E.2 : La liaison Java au modèle objet de document de MathML

Effacer mathfamily de la définition Java de l'interface MathMLPresentationToken.

public interface MathMLPresentationToken extends MathMLPresentationElement
{
    public String                 getMathvariant();
    public void                   setMathvariant(String mathvariant);
    public String                 getMathsize();
    public void                   setMathsize(String mathsize);
    public String                 getMathfamily();
    public void                   setMathfamily(String mathfamily);
    public String                 getMathcolor();
    public void                   setMathcolor(String mathcolor);
    public String                 getMathbackground();
    public void                   setMathbackground(String mathbackground);
    public MathMLNodeList         getContents();
};
Annexe E.3 : La liaison ECMAScript au modèle objet de document de MathML

Effacer mathfamily de la définition ECMAScript de l'interface MathMLPresentationToken.

L'objet MathMLPresentationToken a les propriétés suivantes :
mathvariant
Cette propriété est de type DOMString.
mathsize
Cette propriété est de type DOMString.
mathfamily
Cette propriété est de type DOMString.
mathcolor
Cette propriété est de type DOMString.
mathbackground
Cette propriété est de type DOMString.
contents
Cette propriété est de type MathMLNodeList.

E02 - Erreur importante. (2001-03-28)

Les descriptions de la notation scientifique ou e (1.234e5) dans le chapitre 4 et les annexes C et D sont devenues embrouillées dans la version préliminaire finale. Le balisage correct pour l'exemple donné est <cn type='e-notation'> 1.234 <sep/> 5 </cn>. Malheureusement, certaines références aux anciens noms, float et floating-point, persistent et la description de l'attribut type="e-notation" dans le chapitre 4 (mais pas dans l'annexe C) donne comme utilisation l'exemple <cn type='e-notation'> 1.234 e 5 </cn>, où e est employé comme séparateur au lieu de l'élément sep.

Section 4.3.2.9

Effacer "float", corriger la description de la valeur "e-notation".

cn
indique le type du nombre. Valeurs prédéfinies : e-notation, integer, rational, real, float, complex-polar, complex-cartesian, constant. La valeur par défaut est real. Remarques : Chaque type de données implique l'adhésion des données à certaines conventions de formatage, détaillées ci-dessous. Si les données ne sont pas conformes au résultat attendu, une erreur est générée. Voici le détail des formats individuels :
e-notation
On peut aussi représenter un nombre réel en notation scientifique. Ces nombres ont deux parties (une mantisse et un exposant) séparées par un élément <sep/>. La première partie est un nombre réel, tandis que la seconde est un exposant entier indiquant une puissance de la base. Par exemple, 12.3 <sep/> 5 représente 12.3 fois 105. La représentation par défaut de cet exemple est 12.3e5.
ci
indique le type de l'identifiant. Valeurs prédéfinies : integer, rational, real, float, complex, complex-polar, complex-cartesian, constant ou le nom d'un quelconque élément de contenu. Les significations des valeurs des attributs communs avec l'élément cn sont les mêmes que celles listées pour ce dernier. L'utilisation de la valeur d'attribut complex est prévue au cas où l'identificateur représente un nombre complexe mais sa représentation particulière (polaire ou cartésienne) est inconnue ou bien non pertinente. La valeur par défaut est "", c.à.d. non définie.
Section 4.4.1.2

Effacer "float".

Les types valides comprennent integer, rational, real, float, complex, complex-polar, complex-cartesian, constant et, plus généralement, n'importe quel nom d'éléments conteneurs MathML (par exemple, vector) ou leurs types de valeur.

Annexe C : MMLDefinition: cn

Effacer "floating-point", ajouter "e-notation".

Description

L'élément cn s'utilise pour coder des constantes numériques. Le type mathématique du nombre est donné par un attribut. Le type par défaut est "real". La définition complète des nombres en notation scientifique, des rationnels et des complexes nécessitent deux parties. Ces parties sont séparées par un élément sep vide.

Beaucoup de constantes numériques courantes, tel que &pi;, ont leur propre élément.

Cf. également la section 4.4.1.1 Les nombres (cn).

Classification
constante
MMLattribute
NomValeurValeur par défaut
definitionURL une adresse URI identifiant la définition APPENDIX_C
encoding CDATA MathML
type integer | rational | complex-cartesian | complex-polar | real | e-notation | MathMLtype real
base entier entre 2 et 36 10
Signature

[type=integer](numstring) -> constant(integer)

[base=base-value](numstring) -> constant(integer)

[type=rational](numstring,numstring) -> constant(rational)

[type=complex-cartesian](numstring,numstring) -> constant(complex)

[type=e-notation](numstring,numstring) -> constant(e-notation)

[type=rational](numstring,numstring) -> constant(rational)

[definitionURL=definition](numstring*) -> constant(user-defined)

Annexe D : Interface MathMLCnElement

Effacer "float".

Les valeurs comprennent mais ne se limitent pas aux suivantes : e-notation, integer, rational, real, float, complex, complex-polar, complex-cartesian et constant.

Annexe D : Interface MathMLCiElement

Changer "float" pour "e-notation".

Les valeurs comprennent integer, rational, real, e-notation, complex, complex-polar, complex-cartesian, constant et tout type de conteneur de contenu MathML (vector, matrix, set, list, etc.) ou leurs types.

E01 - Erreur rédactionnelle. (2001-03-08)

Section 4.4.3.17

Clarification du statut des deuxième et troisième exemples.

Remarque : Les deuxième et troisième exemples de cette section sont des expressions MathML correctes de déclarations mathématiques fausses.