Versuch einer Alternativanzeige bei nicht vorhandenem mathMl
Wolfgang Uhr
- xml-derivat
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
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 λ) …
… --------------^
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
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 λ) …
… --------------^
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
Moin!
… (Wellenlänge λ) …
… --------------^
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
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