Wolfgang Uhr: Versuch einer Alternativanzeige bei nicht vorhandenem mathMl

Einen wunderschönen guten Tag

Entweder funktioniert mein Browser nicht richtig, oder ich mache gerade großen Unfug. Aus dem Grunde möchte ich einfach nur mal meine Gedankengebäude hier darstellen - zur Kontrolle.

Ich habe im Firefox mathML 2.0 installiert und mir einen schönen Text mit ein paar Formeln drin geschrieben. Nun möchte ich per html unterscheiden können zwischen einer vorhandenen MathMl-Installation, dann wird die Formel gezeigt und einer nicht vorhandenen Installation, dann wird eine Meldung gezeigt.

Der erste Schritt ist wohl <object>

<object type="application/mathml+xml" data="formula_1.mhtml"><a href="no_MathML">Ihr Browser unterstützt kein MathML!</a></object>

Der mimeTyp ist "application/mathml+xml" und die ausgelagerte Formel findet sich in http://applikationssoftware.de/formula_1.mhtml. Ich habe das x in xhtml durch mhtml ausgetauscht und mit der .htaccess-Anweisung "AddType application/mathml+xml;charset=utf-8 .mhtml" diesem Dateityp den mimeTypen zugeordnet. Der Websniffer bestätigt, dass dies auch umgesezt wird.

Nach meinen Vorstellungen müsste nun ein Browser, der nicht MathML kann - wie zum Beispiel der Opera - den Link anzeigen und der Firefox die Formel. Aber eigentlich ist es nun genau besehen umgekehrt. Der Firefox zeigt mir den Link - obwohl er die andere Formel in http://applikationssoftware.de/Pleochroismus.xhtml korrekt anzeigt und der Opera zeigt mir den Inhalt der Formeldatei an - natürlich völlig unzulänglich.

Hat dazu jemand eine Idee?

Vielen Dank für Interesse und Mühe
Wolfgang Uhr

  1. Moin!

    Ich habe im Firefox mathML 2.0 installiert und mir einen schönen Text mit ein paar Formeln drin geschrieben. Nun möchte ich per html unterscheiden können zwischen einer vorhandenen MathMl-Installation, dann wird die Formel gezeigt und einer nicht vorhandenen Installation, dann wird eine Meldung gezeigt.

    Der erste Schritt ist wohl <object>

    In so einem Falle: Ja.

    Der mimeTyp ist "application/mathml+xml" und die ausgelagerte Formel findet sich in http://applikationssoftware.de/formula_1.mhtml. Ich habe das x in xhtml durch mhtml ausgetauscht und mit der .htaccess-Anweisung "AddType application/mathml+xml;charset=utf-8 .mhtml" diesem Dateityp den mimeTypen zugeordnet. Der Websniffer bestätigt, dass dies auch umgesezt wird.

    Wieso verwendest du nicht .mml als Endung für MathML, so wie es OpenOffice.org z.B. tut? Ich weiß nicht, was irgendein Standard/RFC/W3C Draft dazu sagt, aber .mhtml ist client-seitig bereits vergeben.

    Nach meinen Vorstellungen müsste nun ein Browser, der nicht MathML kann - wie zum Beispiel der Opera - den Link anzeigen und der Firefox die Formel. Aber eigentlich ist es nun genau besehen umgekehrt. Der Firefox zeigt mir den Link - obwohl er die andere Formel in http://applikationssoftware.de/Pleochroismus.xhtml korrekt anzeigt und der Opera zeigt mir den Inhalt der Formeldatei an - natürlich völlig unzulänglich.

    Bevor ich zum Testergebnis mit Firefox komme: Mein Camino (Gecko-basierter Browser für MacOS X) stellt nichts dar, weil:

    XML Parsing Error: undefined entity Location: http://applikationssoftware.de/Pleochroismus.xhtml Line Number 35, Column 128:
    … (Wellenlänge &lambda;) …
    … --------------^

    D.h. er mag das lambda nicht.

    Mein Firefox 1.5 Beta 1 zeigt die externe Formel ebenfalls nicht an, dafür aber alle Inline-Formeln. Wenn ich nun die Formel http://applikationssoftware.de/formula_1.mhtml „von Hand“ aufrufen möchte, bietet er mir die Datei zum Download an. Vielleicht kann er mit dem MIME-Type application/mathml+xml nichts anfangen? Das würde auch erklären, warum ich beim Aufrufen der Seite http://applikationssoftware.de/Pleochroismus.xhtml auf ein fehlendes Plugin hingewiesen werde.

    Grüße, Robert

    1. Einen wunderschönen guten Morgen

      Wieso verwendest du nicht .mml als Endung für MathML, so wie es OpenOffice.org z.B. tut?

      Das wußte ich nicht. Ich habe es bereits geändert sowohl in der Datei als auch in der .htaccess

      … (Wellenlänge &lambda;) …
      … --------------^
      D.h. er mag das lambda nicht.

      Danke, ich habe die Formeln mit einem Gleichungseditor erstellt und der hatte das so geliefert. Hier muss ich wohl andere Optionen wählen. Da ich das MathML-Paket von Firefox installiert habe, ging es wohl mit dieser Installation noch gut. Allerdings habe ich inzwischen ein Replace drüber laufen lassen und es gegen ein unicode-lambda ausgetauscht.

      Vielleicht kann er mit dem MIME-Type application/mathml+xml nichts anfangen? Das würde auch erklären, warum ich beim Aufrufen der Seite http://applikationssoftware.de/Pleochroismus.xhtml auf ein fehlendes Plugin hingewiesen werde.

      Vielen Dank das war jedenfalls ein sehr wichtiger Hinweis. Ich denke mal, dass ich mich damit mal an moziall.org wende. Die erkennen nämlich nur "application/xhtml+xml" und damit ist keine Erkennung eines nichtinstalliertes MathMl-Plug-Ins möglich.

      Herzliche Grüße
      Wolfgang

      1. Moin!

        … (Wellenlänge &lambda;) …
        … --------------^
        D.h. er mag das lambda nicht.

        Danke, ich habe die Formeln mit einem Gleichungseditor erstellt und der hatte das so geliefert. Hier muss ich wohl andere Optionen wählen.

        Das würde ich nur bedingt so stehen lassen, denn es ist nur der Camino, der damit Probleme hat. In der XHTML-DTD sind sämtliche sogenannten „ISO-Entitäten“ wie z.B. lambda normalerweise definiert. Deshalb scheint der Firefox die Seite auch wie gewünscht anzuzeigen.

        Da ich das MathML-Paket von Firefox installiert habe, ging es wohl mit dieser Installation noch gut. Allerdings habe ich inzwischen ein Replace drüber laufen lassen und es gegen ein unicode-lambda ausgetauscht.

        Das funktioniert auf jeden Fall :-)

        Vielleicht kann er mit dem MIME-Type application/mathml+xml nichts anfangen? Das würde auch erklären, warum ich beim Aufrufen der Seite http://applikationssoftware.de/Pleochroismus.xhtml auf ein fehlendes Plugin hingewiesen werde.

        Vielen Dank das war jedenfalls ein sehr wichtiger Hinweis. Ich denke mal, dass ich mich damit mal an moziall.org wende. Die erkennen nämlich nur "application/xhtml+xml" und damit ist keine Erkennung eines nichtinstalliertes MathMl-Plug-Ins möglich.

        Naja, es gibt das Mozilla-MathML-Projekt, dessen Ziel es ist, die MathML-Unterstützung zum Standard in den Gecko-basierten Browsern zu machen, von daher sollte eigentlich kein Plugin benötigt werden. Suboptimal ist allerdings, wenn der Firefox zwar die Inline-Formeln am XML-Namesraum erkennt und darstellt, aber Probleme mit externen Formeln hat bzw. deren MIME-Typ hat. XHTML sieht AFAIK nämlich beides vor, bevorzugt aber das Konzept der XML-Dateninseln. Die richtigen Ansprechpartner bei Mozilla wirst du auf deren MathML-Seite oder per https://bugzilla.mozilla.org/ (benötigt einen Bugzilla-Account) finden.

        Grüße, Robert

        1. Hallo Robert

          Das würde ich nur bedingt so stehen lassen, denn es ist nur der Camino, der damit Probleme hat.

          Nun ich liefere die Seite in uft-8 aus und die befasst sich schlicht und einfach mit mathematisch technischen Problemen. Ein Lamda setze ich einfach mal voraus ohne dass ich es in eine Entität kapseln möchte. Der Code ist dann auch für mich leichter lesbar.

          Naja, es gibt das Mozilla-MathML-Projekt,

          kenne ich und habe ich auch durchgearbeitet.

          Suboptimal ist allerdings, wenn der Firefox zwar die Inline-Formeln am XML-Namesraum erkennt und darstellt, aber Probleme mit externen Formeln hat bzw. deren MIME-Typ hat.

          Richtig aber das Problem hat noch einen weiteren Haken - wie ich festgestellt habe. Der Opera lädt die MathML-Formel und zeigt sie falsch an, obwohl ich eigentlich die Alternative - den Link - hier erwartet hätte. Das <object>-Tag scheint hier grundsätzlich nicht anwendbar zu sein.

          Und Content-Negotiation scheint auch keine Lösung zu sein.

          Ich habe eine URL für nicht xhtml-unfähige Browser
          http://applikationssoftware.de/Pleochroismus.html

          eine für solche die xhtml können
          http://applikationssoftware.de/Pleochroismus.xhtml

          Ich habe eine URL, die sortierfähig ist
          http://applikationssoftware.de/Pleochroismus

          Nur: Obwohl der Opera eigentlich svg kann, greift er zur html-Variante.

          XHTML sieht AFAIK nämlich beides vor, bevorzugt aber das Konzept der XML-Dateninseln.

          Diese Namensräume sind ausgezeichnet. Allerdings brauche ich eine Struktur

          If (NamensRaum(MathML).Vorhanden)
            Anzeige_1
          Else
            Anzeige_2
          End If

          bzw.

          If (NamensRaum(SVG).Vorhanden)
            Anzeige_1
          Else
            Anzeige_2
          End If

          Und das sollte natürlich nicht nur bei FF und Opera funktionieren, sondern bei allen Browsern.

          Die richtigen Ansprechpartner bei Mozilla wirst du auf deren MathML-Seite oder per https://bugzilla.mozilla.org/

          Ich habe das Problem erst mal in forums.mozillazine.org angesprochen. Allerdings kristallisiert sich wirklich heraus, dass es ein Bug ist im FF und ich werde es wohl einmal als Bug posten müssen.

          (benötigt einen Bugzilla-Account)

          Habe ich, danke. Ich wollte nur soweit wie möglich auch erst in Deutsch klären, ob nicht ich vielleicht was falsch gemacht habe.

          Das Problem wird aber nach wie vor sein, dass ich zwar den Bug melden kann, damit selbst aber kaum was habe, wie ich weiterkomme.

          Herzliche Grüße
          Wolfgang