[XML/XSLT] J'ai la solution mais je comprend rien ...

J'ai la solution mais je comprend rien ... [XML/XSLT] - XML/XSL - Programmation

Marsh Posté le 06-05-2006 à 14:26:31    


Alors voilà,  
 
je débute en XML,XSLT et compagnie et je n'arrive à charger mon fichier XML avec mon fichier XSLT que je lance dans firefox. Voici l'entête de mon XML  
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <?xml-stylesheet type="text/xsl" href="file:/Users/kiki/Desktop/tutoriels/Projet/emploi.xsl"?>


 
et l'en-tête de mon xslt
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl-stylesheet  version="1.0"
  3. xmlns:xsl="http://ww.w3.org/1999/XSL/Transform">

 
 
Passé chacun dans le vérificateur de mon éditeur, y a pas de soucis.Lorsque je veux afficher mon xsl, j'ai l'erreur suivante :
 

Code :
  1. Error loading stylesheet: Parsing an XSLT stylesheet failed.


 
Je ne vous demande pas directement de corriger mon problème (quoique, si quelqu'un à une réponse)
J'ai fait des recherches. J'ai trouvé la réponse dans la faq de Mozilla  :bounce: ... mais en fait j'y comprends rien. Voici le texte :
 

Citation :

Make sure the mime type for both source and stylesheet are set to an XML mimetype, namely text/xml or application/xml. The XSLT namespace is http://www.w3.org/1999/XSL/Transform. Use the <?xml-stylesheet ?> processing instruction instead of the non-standard xml:stylesheet.
The most common cause is the mime type handling. To find out which MIME type your server sends, look at Page Info, use extensions like LiveHTTPHeaders or a download manager like wget.
Mozilla won't load XSLT stylesheets from a different domain for security reasons.


 
 :??:  
 
Je recherche des gens qui pourraient m'expliquer plus précisément ce qui ne va pas. Attention : je ne recherche pas de traducteur ou une réponse du style : "Ben, i suffit de modifier le mimetype de ton serveur !". Mais une réponse didactique ou suffisament précise pour que je puisse au moins avancé.
 
Allez merci d'avance pour toute réponse  :p

Reply

Marsh Posté le 06-05-2006 à 14:26:31   

Reply

Marsh Posté le 06-05-2006 à 14:44:34    

couleur cafe a écrit :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl-stylesheet  version="1.0"
  3. xmlns:xsl="http://ww.w3.org/1999/XSL/Transform">



Si c'est un copy&paste de ton code, le problème vient probablement du fait que tu as tapé "xsl-stylesheet" au lieu de "xsl:stylesheet". Ce "xsl" est le namespace de l'élement et doit être le même que le "xsl" dans "xmlns:xsl".
 
Pour l'explication de Mozilla, ça ne concerne à priori que les fichiers qui sont servis par un serveur web. Il me semble qu'il n'y a pas de problème de mime type quand il s'agit de fichiers venant du disque.

Reply

Marsh Posté le 06-05-2006 à 15:26:49    

mauvaise piste, c'est justement le xml-stylesheet qui est "homologué" et donc supporté par firefox.  
cependant xml:stylesheet marche sous ie. en fait j'ai essayé les deux de toute façon mais pour le :, j'ai carrément une erreur

Reply

Marsh Posté le 06-05-2006 à 20:58:31    

couleur cafe a écrit :

mauvaise piste, c'est justement le xml-stylesheet qui est "homologué" et donc supporté par firefox.  
cependant xml:stylesheet marche sous ie. en fait j'ai essayé les deux de toute façon mais pour le :, j'ai carrément une erreur


Attention, je parle de la stylesheet, pas du document xml qui fait référence à la stylesheet. L'élément principal d'une stylesheet est obligatoirement

Code :
  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


ou

Code :
  1. <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


ou, pour illustrer mon propos sur le namespace,

Code :
  1. <hippopotame:stylesheet version="1.0" xmlns:hippopotame="http://www.w3.org/1999/XSL/Transform">

Reply

Marsh Posté le 07-05-2006 à 13:34:04    

ben oui, la stylesheet. Ben ça marche pas, le problème ne vient pas de là.
Enfin j'ai peut être pas compris ce que tu me dis. si ce que tu me préconise c'est de remplacer xsl-stylesheet par xsl:stylesheet, je l'avais déjà essayé avant de poster. En fait, c'est même le premier truc que j'ai fait.

Reply

Marsh Posté le 07-05-2006 à 13:46:23    

Personne pour donner des explications sur le mime type ?

Reply

Marsh Posté le 07-05-2006 à 15:51:51    

hmmm, tu as tapé "http://ww.w3.org/1999/XSL/Transform"... c'est www.w3c.org

Reply

Marsh Posté le 07-05-2006 à 18:58:31    

s'pa ça ... :(

Reply

Marsh Posté le 08-05-2006 à 22:26:32    

Ben moi j'ai écrit ça et ça fonctionne sans problème...
 
xml

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <?xml-stylesheet type="text/xsl" href="foo.xsl"?>
  3. <foo>
  4.         bar
  5. </foo>


xsl

Code :
  1. <?xml version="1.0" ?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:template match="//foo">
  4.         <xsl:copy-of select="." />
  5. </xsl:template>
  6. </xsl:stylesheet>

Reply

Marsh Posté le 08-05-2006 à 22:57:34    

rx__ a écrit :

hmmm, tu as tapé "http://ww.w3.org/1999/XSL/Transform"... c'est www.w3c.org


Non, le Namespace officiel d'XSLT est bien en w3.org :

http://www.w3.org/1999/XSL/Transform

Reply

Marsh Posté le 08-05-2006 à 22:57:34   

Reply

Marsh Posté le 08-05-2006 à 23:04:52    

Pour ce qui est du type MIME :
 
Chaque fois qu'on demande un fichier à un serveur web, il envoie le type de fichier dans l'entête. Si on regarde par exemple sur ce forum lorsqu'une page est demandée, on retrouve :

Content-Type: text/html


Le type MIME d'une page html est donc text/html. Comme ça, quelque soit l'extension (.htm, .html, .php, .asp), le navigateur sait que ce qu'envoi le serveur est de l'html. Si le serveur envoie autre chose, ça fout évidemment le bordel.
 
Pour les documents XSLT, c'est pareil, faut le bon type mime. Donc les valeurs possibles sont text/xml ou application/xml (cf. fin de l'introduction).
 
Pour que le serveur soit au courant du type mime, faut lui associer extension/type. Pour Apache par exemple, faut mettre dans le fichier .htaccess la ligne suivante :

AddType text/xml .xsl

Reply

Marsh Posté le 09-05-2006 à 13:38:03    

FlorentG a écrit :

Non, le Namespace officiel d'XSLT est bien en w3.org :

http://www.w3.org/1999/XSL/Transform



Oui mais lui a tapé ww.w3c.org, avec seulement 2 w...

Reply

Marsh Posté le 09-05-2006 à 14:27:04    

Ah okaÿ :jap:


Message édité par FlorentG le 09-05-2006 à 14:27:16
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed