Page 1 sur 2
firefox et les feuilles de style xslt
Publié : 08 déc. 2004, 09:37
par vissant29
Bonjour,
j'ai un serveur web:
- qui sert une page xml dynamique "page.xml", associée à une base de données
- cette page appelle une feuille de style "feuille.xslt"
- qui est censée transformer la page xml en une belle page html lisible par l'internaute
J'ai débuggé ma feuille de style et ma page xml avec un éditeur xml, qui ne trouve pas d'erreur.
Quand j'ouvre ma page "page.xml" dans Firefox, j'obtiens

le message ci dessous:
Error loading stylesheet: An XSLT stylesheet does not have an XML mimetype:
suivi de l'URL de ma feuille de style.
Que signifie ce message
L'erreur est-elle:
- un mauvais paramétrage de firefox?
- une mauvaise déclaration de ma feuille xslt?
- autre chose????
merci de vos lumières
Publié : 08 déc. 2004, 10:17
par PsyDk
Ton serveur Web doit envoyer le type mime « text/xml » en même temps que ton fichier xslt.
Publié : 08 déc. 2004, 10:32
par nomade
Je ne peux pas t'aider mais ça serait bien que :
- tu donnes l'adresse de ton site pour que "ceux qui savent" puissent t'aider plus facilement et rapidement
- tu ais posté ce topic dans la rubrique développement web
bonne chance

Publié : 08 déc. 2004, 10:33
par Invité
PsyDk a écrit :Ton serveur Web doit envoyer le type mime « text/xml » en même temps que ton fichier xslt.
j'ai ça dans les deux premieres lignes de ma page xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="TD_4DOX_3.xslt"?>
c pas bon??
j'ai mis un suffixe .xslt à ma feuille bien que je ne crois pas que ce soit nécessaire.
Publié : 08 déc. 2004, 10:35
par Invité
nomade a écrit :Je ne peux pas t'aider mais ça serait bien que :
- tu donnes l'adresse de ton site pour que "ceux qui savent" puissent t'aider plus facilement et rapidement
ben pour le moment c'est tout sur mon intranet, en cours de mise au point.
quand ca marchera, si ca intéresse qqun, je pourrai poster le code des mes deux pages.
Publié : 08 déc. 2004, 10:40
par PsyDk
Anonymous a écrit :PsyDk a écrit :Ton serveur Web doit envoyer le type mime « text/xml » en même temps que ton fichier xslt.
j'ai ça dans les deux premieres lignes de ma page xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="TD_4DOX_3.xslt"?>
c pas bon??
j'ai mis un suffixe .xslt à ma feuille bien que je ne crois pas que ce soit nécessaire.
Attention, text/xml et pas text/xsl. Mais ce n'est pas la cause du problème. Quand un serveur Web envoie un fichier, il envoie aussi son type. Exemple quand tu vas sur Google :
Code : Tout sélectionner
GET / HTTP/1.1
Host: www.google.fr
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; fr-FR; rv:1.7.5) Gecko/20041108 Firefox/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: fr,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
HTTP/1.x 200 OK
Cache-Control: private
Content-Type: text/html
Content-Encoding: gzip
Server: GWS/2.1
Content-Length: 1203
Date: Wed, 08 Dec 2004 09:34:33 GMT
La page Google est de l'html, donc le serveur envoie comme type « text/html ». C'est l'attribut Content-Type.
Sur ton serveur Web, tu dois spécifier que les fichiers *.xslt doivent être envoyés avec le type « text/xml ».
Publié : 08 déc. 2004, 10:42
par Invité
Anonymous a écrit :PsyDk a écrit :Ton serveur Web doit envoyer le type mime « text/xml » en même temps que ton fichier xslt.
j'ai ça dans les deux premieres lignes de ma page xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="TD_4DOX_3.xslt"?>
je viens de tester avec type="text/xml", et c'est pas mieux: meme message d'erreur.
Publié : 08 déc. 2004, 10:47
par PsyDk
Ton serveur Web doit répondre : « Content-Type: text/xml »
C'est quoi comme serveur Web ? T'es chez un hébergeur ? Un truc à la maison ?
Publié : 08 déc. 2004, 10:54
par Invité
PsyDk a écrit :Anonymous a écrit :PsyDk a écrit :Ton serveur Web doit envoyer le type mime « text/xml » en même temps que ton fichier xslt.
j'ai ça dans les deux premieres lignes de ma page xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="TD_4DOX_3.xslt"?>
c pas bon??
j'ai mis un suffixe .xslt à ma feuille bien que je ne crois pas que ce soit nécessaire.
Attention, text/xml et pas text/xsl. Mais ce n'est pas la cause du problème. Quand un serveur Web envoie un fichier, il envoie aussi son type.
La page Google est de l'html, donc le serveur envoie comme type « text/html ». C'est l'attribut Content-Type.
Sur ton serveur Web, tu dois spécifier que les fichiers *.xslt doivent être envoyés avec le type « text/xml ».
Mon serveur est un peu spécial (c'est la base 4D qui fait elle mm serveur web), et je ne sais pas comment accéder au paramétrage des mime type.
Le probleme est qu'avec LE MM serveur web, j'ai une autre page xml, "page2.xml", avec les memes deux premieres lignes.. et qui marche.
Aussi j'ai un serveur Apache. Si je lui fais servir la meme page "page.xml", j'ai AUSSI l'erreur signalée par firefox.
Donc j'ai pas l'impression que ca vienne d'un mauvais paramétrage du serveur.
Publié : 08 déc. 2004, 11:02
par PsyDk
Anonymous a écrit :
Donc j'ai pas l'impression que ca vienne d'un mauvais paramétrage du serveur.
Pour en être sûr, vérifie les communications http avec l'extension Live HTTP Headers :
http://livehttpheaders.mozdev.org/
Publié : 08 déc. 2004, 11:11
par vissant29
PsyDk a écrit :Anonymous a écrit :
Donc j'ai pas l'impression que ca vienne d'un mauvais paramétrage du serveur.
Pour en être sûr, vérifie les communications http avec l'extension Live HTTP Headers :
http://livehttpheaders.mozdev.org/
merci, lézard à collerette.
Je vais tester ça dans l'apres midi.
Publié : 08 déc. 2004, 15:01
par martin
Avec le serveur apache, tu peux rajouter un .htaccess à la racine du site contenant :
Pour le serveur 4D machin, ben je sais pas du tout ...
hello apres test
Publié : 08 déc. 2004, 23:33
par vissant29
j'ai ajouté un fichier truc.htaccess, contenant "AddType texte/xml .xslt" à la racine du site servi par Apache.
j'ai installé les extensions FireFox permettant de trapper les headers.
Pour Apache: il n'indique aucun ContentType pour "page.xml". Puis pour la "feuille.xslt", il indique application/xslt+xml.
Pour mon autre serveur (4D_Webstar_D/2004), il donne pour "page.xml" le contenttype text/xml, et pour la "feuille.xslt" text/html.
Comme les pages servies sont identiques, je vois pas bien pourquoi ces différences.
Avec les deux serveurs, j'obtiens le fameux message XSLT stylesheet does not have an XML mimetype
.
N'est ce pas fun: si j'ouvre "mapage.xml" en tant que file:// avec FireFox, j'obtiens une magnifique page html avec ses tableaux et ses titres en couleurs juste comme je voulais. Je pense donc que mon code xml ou xslt est OK.
donc soit c'est un reglage de Firefox, soit un réglage des serveurs...?
Qqun a une idée ??
Publié : 09 déc. 2004, 11:08
par martin
j'ai ajouté un fichier truc.htaccess
Attention le fichier doit s'appeler
.htaccess , tel quel, si tu l'appelles truc.htaccess, çà ne marchera pas !!
Sinon, oui, ton code xml et xslt est surement juste, c'est bien un problème de content type envoyé par le serveur. Cà marche avec file:// car dans ce cas firefox ne s'attend pas à recevoir l'info d'un serveur, et donc se base uniquement sur l'extension.
Re: hello apres test
Publié : 09 déc. 2004, 13:05
par PsyDk
vissant29 a écrit :Pour Apache: il n'indique aucun ContentType pour "page.xml". Puis pour la "feuille.xslt", il indique application/xslt+xml.
Aucun Content-Type ?
Il devrait envoyer du Content-Type: text/xml pour page.xml
Pour feuille.xslt, application/xslt+xml ça roule.
vissant29 a écrit :
Pour mon autre serveur (4D_Webstar_D/2004), il donne pour "page.xml" le contenttype text/xml, et pour la "feuille.xslt" text/html.
Ok pour page.xml. En revanche pour feuille.xslt ça devrait être text/xml (ou application/xslt+xml).