MathML in XHTML-Code wird nicht vollständig interpretiert
goblin
- xml
Hallo!
Ich versuche momentan eine einfache Gleichung per MathML in eine Seite einzubetten, die in XHMTL geschrieben ist. Jedoch zeigen sowohl der FF als auch der IE nur einen Teil der Gleichung an, Bruchstrich und Klammern lassen sie weg. Woran kann das liegen?
Code:
<html ...>
<p>
blahblahblah
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<mfrac>
<mfenced>
<mrow>
<mn>2</mn>
<mo>*</mo>
<mi>x</mi>
</mrow>
<mo>+</mo>
<mi>y</mi>
</mfenced>
<mn>2</mn>
</mfrac>
<mo>=</mo>
<mi>z</mi>
</mrow>
</math>
</p>
</html>
Ergebnis: 2 * x + y 2 = z
Hallo,
du solltest einen DOCTYPE wie folgt nehmen:
[code=html]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">[/code]
Aber das dürfte an sich noch nicht viel bewirken. Wichtig ist, dass du die Datei mit einem XML-MIME-Type versendest (am besten application/xhtml+xml). Hierzu reicht es aber nicht, das entsprechende META-Tag zu befüllen. Du musst den Typ schon am Webserver bestimmen (z.B. mit der PHP-Funktion header() oder der Apache-Direktive AddType).
Ein großes Problem tritt dabei aber auf: du sperrst sämtliche IE-Benutzer aus, da der IE zwar angibt, alle MIME-Types zu kennen, tatsächlich aber nur mit wenigen umgehen kann. Mit application/xhtml+xml; z.B. nicht.
Hallo,
du solltest einen DOCTYPE wie folgt nehmen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
Ich habe bereits die XHTML-Doctype am Anfang des Dokuments, soll man dann die 2. einfach darunter schreiben?
> Aber das dürfte an sich noch nicht viel bewirken. Wichtig ist, dass du die Datei mit einem XML-MIME-Type versendest (am besten application/xhtml+xml). Hierzu reicht es aber nicht, das entsprechende META-Tag zu befüllen. Du musst den Typ schon am Webserver bestimmen (z.B. mit der PHP-Funktion header() oder der Apache-Direktive AddType).
Mit dem MIME-Typen habe ich quasi noch garkeine Erfahrung.
Ich habe lediglich diesen Tag im Header:
`<meta http-equiv="content-type" content="text/xml; charset=UTF-8">`
Auch in selfhtml habe ich nicht sonderlich viel über das "richtige" Verwenden von MIME-Typen gefunden.
> Ein großes Problem tritt dabei aber auf: du sperrst sämtliche IE-Benutzer aus, da der IE zwar angibt, alle MIME-Types zu kennen, tatsächlich aber nur mit wenigen umgehen kann. Mit application/xhtml+xml; z.B. nicht.
Das heißt im Klartext, der IE kann garkein MathML interpretieren? Schade.
Damit sieht die Funktion meilenweit besser aus (optisch).
Zwar hätte sich das ursprüngliche Problem damit "gelöst", aber die Sache mit dem MIME-Typen würde ich gerne lernen,
Danke für die Antwort!
Für die reine Begrifflichkeit kannst du gerne selbst googlen.
Wenn du keine Ahnung von PHP hast, empfehle ich dir eine .htaccess-Datei mit einer AddType-Direktive (http://httpd.apache.org/docs/1.3/mod/mod_mime.html).
Also MIME-Type muss dann application/xhtml+xml angegeben werden.
Ob der IE MathML kennt oder nicht, weiß ich nicht. Ich meine aber, dass es ein Modul gibt, das diese Funktion nachrüsten kann, aber das kannst du ja von keinem User verlangen. Fakt ist jedenfalls, dass der IE den benötigten MIME-Type nicht kennt und die Datei deshalb nicht mit seinem XML-Parser verarbetiet. Stattdessen bietet er sie zum Download an.
Hallo Manko
Also nur damit du dich nicht wunderst. Ich habe mich verklickt und daher ist deine Frage nun "fachlich hilfreich".
Ich habe bereits die XHTML-Doctype am Anfang des Dokuments, soll man dann die 2. einfach darunter schreiben?
Nein es darf immer nur eine geben. Und du brauchst die, die für Math-ML verbindlich vorgeschrieben ist.
Mit dem MIME-Typen habe ich quasi noch garkeine Erfahrung.
Ich habe lediglich diesen Tag im Header:
<meta http-equiv="content-type" content="text/xml; charset=UTF-8">
Dazu wirst du hier in der Hilfe viel finden können.
Auch in selfhtml habe ich nicht sonderlich viel über das "richtige" Verwenden von MIME-Typen gefunden.
Such mal nach "content-type" und text/xml und dann nach den anderen Mime-Typen.
Das heißt im Klartext, der IE kann garkein MathML interpretieren? Schade.
Mit dem FF schon aber Opera und IE schießen dir da ins Knie.
http://httpd.apache.org/docs/1.3/content-negotiation.html
Herzliche Grüße
Wolfgang