firefox et les feuilles de style xslt

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
vissant29

firefox et les feuilles de style xslt

Message 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 :oops: 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
PsyDk
Lézard à collerette
Messages : 317
Inscription : 23 sept. 2003, 09:41

Message par PsyDk »

Ton serveur Web doit envoyer le type mime « text/xml » en même temps que ton fichier xslt.
nomade
Iguane
Messages : 985
Inscription : 03 sept. 2003, 04:15

Message 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 :)
La liberté des uns commence là où commence celle des autres.
Invité

Message 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.
Invité

Message 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.
PsyDk
Lézard à collerette
Messages : 317
Inscription : 23 sept. 2003, 09:41

Message 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 ».
Invité

Message 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.
PsyDk
Lézard à collerette
Messages : 317
Inscription : 23 sept. 2003, 09:41

Message 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 ?
Invité

Message 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.
PsyDk
Lézard à collerette
Messages : 317
Inscription : 23 sept. 2003, 09:41

Message 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/
vissant29

Message 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.
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

Avec le serveur apache, tu peux rajouter un .htaccess à la racine du site contenant :

Code : Tout sélectionner

AddType text/xml .xslt
Pour le serveur 4D machin, ben je sais pas du tout ...
vissant29
Arias
Messages : 4
Inscription : 08 déc. 2004, 11:14

hello apres test

Message 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 ?? :idea:
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message 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.
PsyDk
Lézard à collerette
Messages : 317
Inscription : 23 sept. 2003, 09:41

Re: hello apres test

Message 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 ? :shock:

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).
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités