Lisez-moi S.V.P. 

8 Le modèle objet de document de MathML

Table des matières : Le langage de balisage mathématique (MathML) version 2.0
Chapitre précédent : 7 L'interface de MathML
Chapitre suivant : A L'interprétation MathML

8.1 Introduction

Ce document étend l'interface de programmation (API) Core du DOM niveau 2 pour décrire les objets et méthodes spécifiques des éléments MathML au sein de documents. Les fonctionnalités nécessaires à la manipulation des structures de documents hiérarchiques fondamentales, des éléments et des attributs sont décrites dans le document Core ; les fonctionnalités qui dépendent des éléments spécifiques définis dans MathML sont dans ce document.

La spécification du modèle objet de document (DOM) apparaît en réalité dans l'Annexe D [Le modèle objet de document de MathML].

Les objectifs de l'interface de programmation DOM spécifique de MathML sont les suivants :

Ce document contient les spécialisations MathML suivantes :

Lorsqu'aucune méthode pratique spéciale n'est fournie pour récupérer des attributs ou des nœuds de sous-éléments, il faudrait alors utiliser les fonctionnalités de base du DOM Core.

MathML définit des règles invisibles pour les processeurs et les validateurs XML génériques. Le fait que les objets DOM de MathML soient tenus de respecter ces règles et de produire des exceptions lorsque ces règles sont enfreintes, est une raison majeure de fournir une extension DOM spécifique à MathML.

Il existe essentiellement deux types supplémentaires de règles de grammaire et de syntaxe MathML. Celles du premier type appliquent des critères supplémentaires aux valeurs des attributs. Par exemple, il n'est pas possible, dans XML seul, d'imposer que la valeur d'un attribut soit un entier positif. Celles du second type définissent des restrictions plus précises sur les sous-éléments (par exemple, leur ordre) que celles données dans la définition DTD. Par exemple, il n'est pas possible, dans XML, d'indiquer que l'interprétation du premier sous-élément doit avoir lieu d'une certaine façon et celle du second d'une autre. Les objets DOM de MathML sont tenus de préciser cette interprétation.

MathML ignore les caractères blancs qui apparaissent hors des éléments atomiques. Les autres caractères (non blancs) n'y sont pas admis. Les caractères blancs du contenu des éléments atomiques sont rognés aux extrêmités (c.à.d., tous ceux au début et à la fin du contenu sont supprimés), et fusionnent au milieu (c.à.d, chaque séquence d'un ou plusieurs caractères blancs est remplacée par un caractère espace). Les éléments DOM de MathML rognent les caractères blancs lorsque c'est nécessaire. Dans MathML, comme dans XML, le terme caractères blancs regroupe les caractères espace, tabulation, saut de ligne et retour chariot, c'est-à-dire les caractères dont les codes hexadécimaux Unicode sont respectivement U+0020, U+0009, U+000a et U+000d.

8.1.1 La chaîne hasFeature

La gestion du modèle objet de document MathML peut se vérifier en appelant la méthode DOMImplementation::hasFeature avec la chaîne de test "org.w3c.dom.mathml".

8.1.2 Les extensions du DOM de MathML

Une version future du DOM de MathML est prévue pour tenir compte des problèmes non encore résolus. On en décrit quelques-uns ici.

8.1.2.1 Les interfaces Traversal et Range

Des spécialisations spécifiques à MathML seront probablement nécessaires pour les interfaces des modules Traversal et Range du DOM niveau 2. L'ordre de traversée des variables, conditions et déclarations liées, ou si celles-ci sont toutes à omettre d'une traversée donnée, offre un exemple de l'utilité potentielle de de telles spécialisations. Toutefois, la définition de telles interfaces serait prématurée pour le moment. Il faudra attendre les retours des mises en œuvre pour déterminer les interfaces appropriées susceptibles de faire l'objet d'une spécification.

8.1.2.2 Les problèmes d'intégration

L'interaction entre le modèle objet de document représentant un balisage XML spécialisé (tel que MathML) incorporé dans un autre type de balisage XML (tel que XHTML) et celui représentant le document hôtre n'est pas encore définie. Le cas échéant, lorsque ces interactions seront définies, nous espérons que les développeurs pourront les utiliser pour mettre à profit les avantages du modèle objet de document de MathML.

Toutefois, il faudra peut-être ajouter quelques définitions d'interface au modèle objet de document de MathML pour que cela soit possible. Auquel cas, nous espérons pouvoir le faire bientôt.

Table des matières : Le langage de balisage mathématique (MathML) version 2.0
Chapitre précédent : 7 L'interface de MathML
Chapitre suivant : A L'interprétation MathML