Avatar billede tangveje Nybegynder
26. april 2007 - 11:19 Der er 12 kommentarer og
1 løsning

MathML problemer i IE

Hej. Jeg forsøger at sætte mig ind i MathML, og har til det formål lavet en lille test fil (mathml.xml) med følgende indhold:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="xsl/pmathml.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>MathML Test</title>
</head>

<body>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
        <msup>
            <mn>x</mn>
            <mi>2</mi>
        </msup>
    </math>
</body>
</html>

Ganske simpelt: Siden virker fint i Firefox, men ikke i IE. Jeg tænkte det bare var fordi IE ikke understøtter MathML, men W3C's MathML test side på http://www.w3.org/Math/XSL/pmathml2.xml virker helt som den skal både i Firefox og IE hos mig.

Jeg har søgt, og experimenteret, men kan ikke finde noget svar på hvorfor det ikke virker. Det eneste jeg kan se er at IE giver en script fejl på linie 8, hvor den påstår at "Den krævede egenskab har ikke en gyldig værdi".

Nogen der har en ide om hvad problemet kan være?
Avatar billede janegil Nybegynder
27. april 2007 - 10:19 #1
Kunne du legge eksemplet ditt online? For det første gjør det det lettere å se på i diverse verktøy. For det andre kan problemet ligge i HTTP-headeren, og ikke i selve koden.
Avatar billede janegil Nybegynder
27. april 2007 - 10:24 #2
Sette på en doctype?

http://www.w3.org/QA/2002/04/valid-dtd-list.html:

XHTML + MathML + SVG - DTD
    <!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">
       
SVG-biten har du ike bruk for, men den gjør nok ingen skade.
Avatar billede tangveje Nybegynder
27. april 2007 - 11:38 #3
Ok. Her er først den originale, uden doctype
http://www.tangveje.dk/mathml/no_doctype.xml

Her er den samme, med doctype
http://www.tangveje.dk/mathml/with_doctype.xml

Her er den originale, uden doctype, men med PHP header*
http://www.tangveje.dk/mathml/header.php

Her er med både PHP* og doctype
http://www.tangveje.dk/mathml/header_doctype.php

Alle sammen virker i firefox, ingen virker i IE. I hvert fald ikke hos mig.

* PHP koden i begge de to sidste links er:

<?php
    header( 'Content-type: text/xml' ) ;

    echo '<?xml version="1.0"?>' ;
    echo '<?xml-stylesheet type="text/xsl" href="xsl/pmathml.xsl"?>' ;
?>
Avatar billede janegil Nybegynder
27. april 2007 - 14:09 #4
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.tangveje.dk%2Fmathml%2Fheader_doctype.php

Jeg kan ikke forstå at tegnsettet er et problem for ditt tilfelle, men prøv

header( 'Content-type: text/xml; charset=ISO-8859-1' ) ;

Eventuelt
header( 'Content-type: text/xhtml+xml; charset=ISO-8859-1' ) ;
?

Eksemplet fra W3C har forresten MIME application/xml, så blir det

header( 'Content-type: application/xml; charset=ISO-8859-1' ) ;

og application insisterer ikke på tegnsett i HTTP-headeren, så

header( 'Content-type: application/xml' ) ;

kan være nok.


http://www.garshol.priv.no/download/httptest.cgi?URL=http%3A%2F%2Fwww.w3.org%2FMath%2FXSL%2Fpmathml2.xml&REQTYPE=HEAD
Avatar billede tangveje Nybegynder
27. april 2007 - 15:51 #5
Ingen af dem ser ud til at gøre nogen forskel, desværre.

header.php og header_doctype.php er opdateret. De har nu
header( 'Content-type: application/xml; charset=ISO-8859-1' ) ;
Avatar billede janegil Nybegynder
27. april 2007 - 18:05 #6
Vel, nå blir den i hvert fall godkjent av validatoren, så nå har vi rett til å bli sure på IE...
Avatar billede tangveje Nybegynder
02. maj 2007 - 16:36 #7
Jeg fandt problemet. Hvis jeg placerer xsl filerne i samme mappe som xml filen virker det også i IE. IE vil dog ikke godkende doctypen, men jeg kan nok leve uden en doctype hvis det skal være

Tak for hælpen. Vil du have points?
Avatar billede janegil Nybegynder
02. maj 2007 - 17:47 #8
Nei takk.

Men jeg skulle ha moro av å vite om den feiler hvis du erstatter
href="pmathml.xsl"
med
href="http://www.tangveje.dk/mathml/pmathml.xsl"

Vi forstår i grunnen ennå ikke hvorfor det ikke virket? Du har bare funnet ut hvor du skal sparke for å få det til å virke. Men det stemmer - jeg har visst alltid hatt for vane å legge stilarket i samme mappe. Det er jo god organisering i test. Men ikke fullt så godt i storskala produksjon.
Avatar billede tangveje Nybegynder
02. maj 2007 - 18:02 #9
Har ændret den, og det ser ikke ud til at gøre en forskel.
Avatar billede tangveje Nybegynder
09. maj 2007 - 14:40 #10
Fik endelig taget mig lidt tid til at se på det igen. Problemet synes at ligge i linie 59 i pmathml.xsl :

xsl.load("pmathmlcss.xsl");

IE vil tilsyneladende have mappen med i stien, således :

xsl.load("xsl/pmathmlcss.xsl");

Hvorimod Firefox ikke lader til at bekymre sig om det er det ene eller det andet. Jeg går ud fra at det mest sikre vil være at bruge den absolutte sti, det er bare ikke særlig fleksibelt.
Avatar billede janegil Nybegynder
09. maj 2007 - 15:29 #11
Det lyder som om IE og Firefox har byttet personlighet? IE insisterer på at ting skal være riktig, mens Firefox, i god gammel Microsoftstil, sier at "er den ikke i denne mappen, så la oss se om vi kanskje finner den i en undermappe som heter xsl?"

Hvis jeg oppfatter dette rett, så er
xsl.load("xsl/pmathmlcss.xsl");
en korrekt relativ sti, og fungerer i 'begge' browsere?
Avatar billede tangveje Nybegynder
09. maj 2007 - 15:44 #12
Det er korrekt. Det virker ret underligt, det må jeg give dig ret i
Avatar billede tangveje Nybegynder
10. maj 2007 - 11:45 #13
Må hellere lukke, nu da jeg har fundet svaret. Tak for hjælpen med at finde det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester