Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1055 connectés 

  FORUM HardWare.fr
  Programmation

  [JAVA - XALAN] bug

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JAVA - XALAN] bug

n°37596
prettysmil​e
Sourire est un devoir social
Posté le 07-06-2001 à 09:43:34  profilanswer
 

import javax.swing.*;
import java.io.*;
import javax.xml.transform.*;
public class generateClass
{
    generateClass(File f)
    {
         
        // 1. Instantiate a TransformerFactory.
        javax.xml.transform.TransformerFactory tFactory =javax.xml.transformerTransformerFactory.newInstance();
         
        // 2. Use the TransformerFactory to process the stylesheet Source and
        // generate a Transformer.
         
        javax.xml.transform.Transformer transformer = tFactory.newTransformer
        (new javax.xml.transform.stream.StreamSource("schema.xsl" );
         
        // 3. Use the Transformer to transform an XML Source and send the
        // output to a Result object.
        transformer.transform(new javax.xml.transform.stream.StreamSource(f),
        new javax.xml.transform.stream.StreamResult( new
        java.io.FileOutputStream"foo.out" )));
    }
}
 
 
voici mon code, quand je compile, forte ne trouve pas transformTransformerFactory, que j'ai pourtant placé dans le repertoire ext du jdk (donc, pas besoin de mettre à jour le ClassPath).  Qqu'un peut il m'aider

mood
Publicité
Posté le 07-06-2001 à 09:43:34  profilanswer
 

n°37677
prettysmil​e
Sourire est un devoir social
Posté le 07-06-2001 à 12:13:43  profilanswer
 

en fait le pb vient de la version de xalan.
le code correct est:
import javax.swing.*;
import java.io.*;
import org.apache.xalan.xslt.*;
 
 
public class generateClass
{
    generateClass(File f)
    {
        XSLTProcessor processor = XSLTProcessorFactory.getProcessor(new org.apache.xalan.xpath.xdom.XercesLiaison());
        XSLTInputSource input=new XSLTInputSource(f.getPath());
        XSLTInputSource style=new XSLTInputSource("schema.xsl" );
        XSLTResultTarget result=new XSLTResultTarget("result.html" );
        try
        {
        processor.process(input,style,result);
         }
         catch(org.xml.sax.SAXException e){}
    }
}
 
 
pb: quand j'execute, j'ai un message d'erreur m'indiquant que le fichier passé en paramètre n'a pas pu être parser.
???????????????,

n°37710
Cherrytree
cn=?
Posté le 07-06-2001 à 13:45:18  profilanswer
 

moi, j'sais pô


---------------
Le site de ma maman
n°37777
prettysmil​e
Sourire est un devoir social
Posté le 07-06-2001 à 15:21:17  profilanswer
 

:na: ca fait pas avancer mon schmilblik

n°37903
nabab
I'm blogging this.
Posté le 07-06-2001 à 19:09:15  profilanswer
 

Utilises avant d'executer ton programme un parseur afin de lire ton fichier xml et xsl afin de savoir si ces derniers sont au moins bien formé


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
n°38128
Cherrytree
cn=?
Posté le 08-06-2001 à 13:24:58  profilanswer
 

mon xsl et xml sont validé par xml spy, le pb ne vient apparemment pas de là (de plus je parcours le xml avec dom sa&ns pb)

n°38169
prettysmil​e
Sourire est un devoir social
Posté le 08-06-2001 à 14:24:47  profilanswer
 

je sais que ton fichier est correct, mais mon code aussi a priori.:gun:
est ce qqu'un d'exterieur au pb a une idée

n°38174
prettysmil​e
Sourire est un devoir social
Posté le 08-06-2001 à 14:29:52  profilanswer
 

j'ai une piste, quand je lance le .xml dans internet explorer 5, j'obtiens le squelette dessiné par mon xsl mais aucune donnée du xml ne s'affiche...

n°38176
nabab
I'm blogging this.
Posté le 08-06-2001 à 14:35:33  profilanswer
 

Donnez nous le code du fichier XSL car les templates ne sont peut etre pas bien definies ... ou alors un positionnement maladroit existe mauvais renvoie de gabarit  ....


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
n°38179
prettysmil​e
Sourire est un devoir social
Posté le 08-06-2001 à 14:43:54  profilanswer
 

<?xml version="1.0" encoding="ISO-8859-1"?>
 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/">
 
<html>
    <body>
 
 <h1>VI PRIMITIVES</h1>    
 
        <br/>   <xsl:for-each select="schema/primitive" >
    <p>
                            <h2><br>enum <xsl:value-of select="p_name"/>{</br></h2>
       
      <xsl:apply-templates select="list"/>
     <br>}</br>
                     </p>
             </xsl:for-each>
 
     <h1>VII CLASSES</h1>
             <br/> <xsl:for-each select="schema/class"  >
                  <p>
                     <h2><br><xsl:value-of select="c_name"/></br></h2>
     <br><xsl:value-of select="c_desc"/></br>
     <h3><br>SUBCLASS OF:</br></h3>
                            <xsl:apply-templates select="subclass"/>
     <h3><br>EXTENDED CLASS ATTRIBUTE </br></h3>
                       <xsl:apply-templates select="c_att"/>
       <h3><br>CONTENT : </br></h3>
     <xsl:apply-templates select="content"/>
                  </p>
               </xsl:for-each>
 
 <h1>VIII NODES</h1>
  <br/> <xsl:for-each select="schema/node" >
               <p>
                <h2> <br><xsl:value-of select="n_name"/></br></h2>
                 <br><xsl:value-of select="n_desc"/></br>
                 <h3><br>MEMBER OF:</br></h3>
      <xsl:apply-templates select="memberof"/>
                 <h3><br>INHERITED CLASS ATTRIBUTES</br></h3>
      <xsl:apply-templates select="in_att"/>
           <h3><br>EXTENDED NODE ATTRIBUTES</br></h3>
                       <xsl:apply-templates select="ext_att"/>
                  </p>
             </xsl:for-each>
   
</body>
  </html>
 
</xsl:template>
 
<xsl:template match="schema/primitive/list">
   <br><xsl:value-of select="."/></br>
</xsl:template>
 
<xsl:template match="schema/class/subclass">
 <br><xsl:value-of select="."/></br>
</xsl:template>
 
<xsl:template match="schema/class/c_att">
 <br><b><xsl:value-of select="./c_att_name"/></b></br>
 <br><xsl:value-of select="./c_att_desc"/>
primary : <xsl:value-of select="./c_att_pri"/> required : <xsl:value-of select="c_att/c_att_req"/></br>
 <br/>
</xsl:template>
 
<xsl:template match="schema/class/content">
   <br><xsl:value-of select="."/></br>
</xsl:template>
 
<xsl:template match="schema/node/memberof">
   <br><xsl:value-of select="."/></br>
</xsl:template>
 
<xsl:template match="schema/node/in_att">
 <br><b><xsl:value-of select="./in_att_name"/></b></br>
 <br><xsl:value-of select="./in_att_desc"/>
primary : <xsl:value-of select="./in_att_pri"/> required : <xsl:value-of select="./in_att_req"/></br>
 <br/>
</xsl:template>
 
<xsl:template match="schema/node/ext_att">
 <br><b><xsl:value-of select="./ext_att_name"/></b></br>
 <br><xsl:value-of select="./ext_att_desc"/>
primary : <xsl:value-of select="./ext_att_pri"/> required : <xsl:value-of select="./ext_att_req"/></br>
 <br/>
</xsl:template>
</xsl:stylesheet>
 
voila la bête

mood
Publicité
Posté le 08-06-2001 à 14:43:54  profilanswer
 

n°38181
nabab
I'm blogging this.
Posté le 08-06-2001 à 14:49:34  profilanswer
 

Oula cela me rappelle un precedent topic, envoies nous le fichier XML egalement car je crains que cela soit normal que rien ne s'affiche etant donné que tu ne fais pas attention au contexte lors du parsing par ton document XSL.
 
Exemple :

Code :
  1. <xsl:for-each select="schema/primitive" >
  2.                             <h2><br>enum <xsl:value-of select="p_name"/>{</br></h2>
  3.        
  4.       <xsl:apply-templates select="list"/>


 
Ici tu appelles le motif "list" et non pas le motif "schema/primitive/list" donc ton motif doit etre  

Code :
  1. <xsl:template match="list">
  2.    <br><xsl:value-of select="."/></br>
  3. </xsl:template>


Car le noeud xsl:for-each place le contexte sur le noeud schema primitive ....
 
[PS] Resolvons le probleme pour IE sachant que ce n'est pas le meme parseur pour XALAN ...


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
n°38182
prettysmil​e
Sourire est un devoir social
Posté le 08-06-2001 à 14:53:29  profilanswer
 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="schema.xsl"?>
<!-- edited with XML Spy v3.5 (http://www.xmlspy.com) by ismea (ismea) -->
<!DOCTYPE schema [
 <!ELEMENT schema (primitive*, class*, node*)>
 <!ELEMENT primitive (p_name, list+)>
 <!ELEMENT class (c_name, c_desc?, subclass*, c_att*, content*)>
 <!ELEMENT c_att (c_att_name, c_att_desc?, c_att_pri, c_att_req)>
 <!ELEMENT node (n_name, n_desc?, memberof*, in_att*, ext_att*)>
 <!ELEMENT in_att (in_att_name, in_att_desc?, in_att_pri, in_att_req)>
 <!ELEMENT ext_att (ext_att_name, ext_att_desc?, ext_att_pri, ext_att_req)>
 <!ELEMENT p_name (#PCDATA)>
 <!ELEMENT list (#PCDATA)>
 <!ELEMENT c_name (#PCDATA)>
 <!ELEMENT c_desc (#PCDATA)>
 <!ELEMENT subclass (#PCDATA)>
 <!ELEMENT content (#PCDATA)>
 <!ELEMENT n_name (#PCDATA)>
 <!ELEMENT n_desc (#PCDATA)>
 <!ELEMENT memberof (#PCDATA)>
 <!ELEMENT c_att_name (#PCDATA)>
 <!ELEMENT c_att_desc (#PCDATA)>
 <!ELEMENT c_att_pri (#PCDATA)>
 <!ELEMENT c_att_req (#PCDATA)>
 <!ELEMENT in_att_name (#PCDATA)>
 <!ELEMENT in_att_desc (#PCDATA)>
 <!ELEMENT in_att_pri (#PCDATA)>
 <!ELEMENT in_att_req (#PCDATA)>
 <!ELEMENT ext_att_name (#PCDATA)>
 <!ELEMENT ext_att_desc (#PCDATA)>
 <!ELEMENT ext_att_pri (#PCDATA)>
 <!ELEMENT ext_att_req (#PCDATA)>
]>
<schema>
 <primitive>
  <p_name>C_CV_Qualifier</p_name>
  <list>C_No_CV_QUALIFIER</list>
  <list>C_Const_CV_QUALIFIER</list>
  <list>C_Const_Volatile_CV_QUALIFIER</list>
  <list>C_Volatile_CV_QUALIFIER</list>
  <list>C_CV_QUALIFIER_Count</list>
 </primitive>
 <class>
  <c_name>C_TEMPLATE_INST</c_name>
  <c_desc> A class including nodes used to represent template instantiations. An instantiation references a C_TEMPLATE_ID (attribute has_template_id) node to specify actual argument to the associated template generic parameters. Such an instantiation is included in the namespace containing the template (has_enclosing_scope). Implicit instantiation are represented by C_IMP_TEMPLATE_INST subclass. </c_desc>
  <subclass>C_DECLARATION</subclass>
  <subclass>C_REGION_ITEM</subclass>
  <subclass>C_SEQUENCE_ITEM</subclass>
  <subclass>C_ANNOTABLE_ITEM</subclass>
  <subclass>C_UNIVERSE</subclass>
  <c_att>
   <c_att_name> has_template_id</c_att_name>
   <c_att_desc>a C_TEMPLATE_ID node which describes the association of actual arguments to the template generic parameter.</c_att_desc>
   <c_att_pri>true</c_att_pri>
   <c_att_req>false</c_att_req>
  </c_att>
  <content>C_IMP_TEMPLATE_INST</content>
  <content>c_func_inst</content>
  <content>c_class_inst</content>
 </class>
 <node>
  <n_name>c_literal</n_name>
  <n_desc>A C_EXPRESSION node used to describe C/C++ literal including integer literal, floating literal, and string literal. A C_STATIC_VALUE node referenced by has_value attribute represents the value of the literal. </n_desc>
  <memberof>C_EXPRESSION</memberof>
  <memberof>C_ACTUAL</memberof>
  <memberof>C_ANNOTABLE_ITEM</memberof>
  <memberof>C_UNIVERSE</memberof>
  <in_att>
   <in_att_name> has_temp</in_att_name>
   <in_att_desc> An attribute which points to an Int_32 value that, may be used to represent any temporary user-defined information. This attribute is always set to 0 upon saving the unit.</in_att_desc>
   <in_att_pri>true</in_att_pri>
   <in_att_req>false</in_att_req>
  </in_att>
  <in_att>
   <in_att_name> has_srcpos</in_att_name>
   <in_att_desc>The source file position (Source_Info) of the first token associated with the node.</in_att_desc>
   <in_att_pri>true</in_att_pri>
   <in_att_req>false</in_att_req>
  </in_att>
  <in_att>
   <in_att_name> has_type_id</in_att_name>
   <in_att_desc> Points toa C_TYPE_ID node representing the type of the expression.</in_att_desc>
   <in_att_pri>false</in_att_pri>
   <in_att_req>true</in_att_req>
  </in_att>
  <ext_att>
   <ext_att_name> has_value </ext_att_name>
   <ext_att_desc>An attribute which points to a C_STATIC_VALUE node denoting the literal value.</ext_att_desc>
   <ext_att_pri>true</ext_att_pri>
   <ext_att_req>true</ext_att_req>
  </ext_att>
 </node>
</schema>
 
voila la deuxieme bébête pour le coup du "." ou du schema/primitive/list, je veux bien croire que ca vient de là. Mais sur ce coup je suis en autoformation et je n'ai trouvé aucun document clair m'expliquant quand employer l'un ou l'autre, alors c'est possible que ca ressemble à de la bidouille.

n°38193
nabab
I'm blogging this.
Posté le 08-06-2001 à 15:19:39  profilanswer
 

Attention je ne te blame pas ... Point de salue dans la coryance, essaie ce que je t'expose et pour ce qui est de l'autoformation je ne peux que t'encourager et te donner un simple conseil qui est de faire les tutoriaux que tu peux trouver sur le Web comme ceux developpés par Microsoft msdn.microsoft.com/xml ou ceux sur le site http://www.w3schools.com ... sur le site sun pour le XML et java ... afin de mieux comprendre le formatage d'un fichier XML par une feuille de style.


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
n°38200
prettysmil​e
Sourire est un devoir social
Posté le 08-06-2001 à 15:44:02  profilanswer
 

ok, ce que je n'avais pas saisi c'est que les tags avait une action sur mon positionnement dans le doc.
j'ai donc corrigé cela  
par ex:
<xsl:for-each select="schema/primitive" >
<p>
          <h2><br>enum <xsl:value-of select="p_name"/>{</br></h2>
  <xsl:apply-templates select="list"/>
 <br>}</br>
         </p>
 </xsl:for-each>
 
<xsl:template match="list">
   <br><xsl:value-of select="."/></br>
</xsl:template>
 
et  
<xsl:template match="in_att">
 <br><b><xsl:value-of select="in_att_name"/></b></br>
 <br><xsl:value-of select="in_att_desc"/>
primary : <xsl:value-of select="in_att_pri"/> required : <xsl:value-of select="in_att_req"/></br>
 <br/>
</xsl:template>
 
mais IE5 ne veux toujours rien savoir...

 

[edit]--Message édité par prettysmile--[/edit]

n°38207
Otto
Posté le 08-06-2001 à 15:56:49  profilanswer
 

G esssayé ton code et il marche sans probleme sous mon IE, le probleme ne doit pas venir de la quand a ce que je t'expliquais je me pourfends car je me suis trompé car en fait la différence entre les motifs que je preconisais et les tiens c que toi tu te limite au fait que list doit etre fils de primitive et schema .... Désolé le probleme ne vient pas de la ... Peut etre un probleme de DLL pour IE5 quelle version de DLL pour le parseur XML il y a la version 3 disponible sur msdn.microsoft.com/xml ...
 
[CHGT de PSEUDO du à un flood ... sur blabla]

 

[edit]--Message édité par Otto--[/edit]


---------------
Autoregulation is a manifestation of local blood flow regulation. It is defined as the intrinsic ability of an organ to maintain a constant blood flow despite changes in perfusion pressure.
n°38211
prettysmil​e
Sourire est un devoir social
Posté le 08-06-2001 à 16:03:34  profilanswer
 

:pt1cable:  :crazy:  
j'ai ie5.5, et vraiement ca ne marche pas, le truc c'est que ca ne passe pas nom plus sur le pc voisin (ie5.0) :pt1cable:    :pt1cable:    :pt1cable:

n°38651
Otto
Posté le 11-06-2001 à 10:34:09  profilanswer
 

Il y a aucune erreur ?
Cela t'affiche quoi ?
Tu peux faire tourner xsl debugger present sur le site de Microsoft si tu veux connaitre chaque pas de ton XSL quand cela tourne ... msdn.microsoft.com/xml ...


---------------
Autoregulation is a manifestation of local blood flow regulation. It is defined as the intrinsic ability of an organ to maintain a constant blood flow despite changes in perfusion pressure.
n°38695
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 12:16:16  profilanswer
 

le fichier est validé par xml spy, il détecte juste l'absence de référence à une dtd (mais comme celle ci est interne...) et réussi la transformation.

n°38697
Otto
Posté le 11-06-2001 à 12:18:30  profilanswer
 

Et l'affichage cela donne koi, car sur ma machine aucun probleme ...


---------------
Autoregulation is a manifestation of local blood flow regulation. It is defined as the intrinsic ability of an organ to maintain a constant blood flow despite changes in perfusion pressure.
n°38699
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 12:26:47  profilanswer
 

Otto a écrit a écrit :

Et l'affichage cela donne koi, car sur ma machine aucun probleme ...




ben, à l'affichage, j'ai que le squelette du xsl, aucune donnée provenant du xml:
 
VI PRIMITIVES
enum {
 
 
}
 
VII CLASSES
 
SUBCLASS OF:
 
EXTENDED CLASS ATTRIBUTE  
 
CONTENT :  
 
 
VIII NODES
 
 
 
MEMBER OF:
 
 
INHERITED CLASS ATTRIBUTES
 
 
EXTENDED NODE ATTRIBUTES
 
primary : required :  
primary : required :  
primary : required :

n°38710
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 13:28:00  profilanswer
 

en fait, pour le pb xalan, je me demande si le pb ne viendrait pas de "new org.apache.xalan.xpath.xdom.XercesLiaison()"
mais je ne suis pas vraiement au point sur Xpath, j'étais sensée l'initialiser qqpart?

n°38742
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 14:52:14  profilanswer
 

:??:  soudain un doute m'assaille, Xalan java 1 est il compatible avec le jdk 1.3?

n°38809
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 16:43:53  profilanswer
 

:bounce:  :bounce:  :D  :bounce:  :bounce:  
XML+XSL=> HTML et enfin ca marche... en utilisant xalan 2. Mes fichiers xml et xsl etait bien valide, je pense donc qu'il existe des problèmes de compatibilité entre xalan 1 et le jdk 1.3
Merci à tous pour votre aide, voici le code qui marche pour les curieux:
 
 
import javax.swing.*;
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
//import org.apache.xalan.xslt.*;
 
 
public class generateClass
{
    generateClass(File f,JMenuItem m)
    {
      TransformerFactory tFactory =TransformerFactory.newInstance();      
        Transformer t=null;
        try
        {
        t =tFactory.newTransformer(new StreamSource("schema.xsl" ));
        }
        catch(TransformerConfigurationException e)
        {}
        try  
        {
            try
            {
            t.transform(new StreamSource(f),new StreamResult( new FileOutputStream("pipo.html" )));
     
            }
            catch(TransformerException e){}
        }
        catch(FileNotFoundException e){}
        }
     
    }
 
où f est le fichier xml
 
 :bounce:  :bounce:  :sol:

n°38810
Otto
Posté le 11-06-2001 à 16:44:27  profilanswer
 

Pour la compatibilité, il suffit de regarder cela sur apache.org ou javasoft mais sinon de toute maniere ce n'est pas normal que cela ne t'affiche rien ... Je ne comprends pas ...
 
Essaie  
<xsl:copy-of select="."> dans ton fichier XSL afin de connaitre ou cela le positionne :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
  3. <xsl:output method="html" omit-xml-declaration="yes"/>
  4. <xsl:template match="/">
  5. <xsl:copy-of select="."/>
  6. </xsl:template>


---------------
Autoregulation is a manifestation of local blood flow regulation. It is defined as the intrinsic ability of an organ to maintain a constant blood flow despite changes in perfusion pressure.
n°38815
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 16:58:51  profilanswer
 

Si je fais cela, j'obtiens une superbe feuille vierge sous ie.

n°38819
Otto
Posté le 11-06-2001 à 17:13:15  profilanswer
 

Ben la je ne comprends pas tout ... et si tu enleves cette ligne : <?xml-stylesheet type="text/xsl" href="schema.xsl"?>  
de ton fichier XML. Que te donne IE ?


---------------
Autoregulation is a manifestation of local blood flow regulation. It is defined as the intrinsic ability of an organ to maintain a constant blood flow despite changes in perfusion pressure.
n°38822
prettysmil​e
Sourire est un devoir social
Posté le 11-06-2001 à 17:20:26  profilanswer
 

ça m'affiche mon fichier xml avec des jolies couleurs.

n°38825
Otto
Posté le 11-06-2001 à 17:26:36  profilanswer
 

Cela peut venir d'une erreur inherente à IE corrigé depuis par XML version 3 peut etre :
 
Les règles modèles (templates) non implicites
La spécification XSLT 1.0  préconise que dans les moteurs XSLT deux règles modèles (templates) soient implicites ou "internes" (build-in) :  
   
<xsl:template match="/|*"><xsl:apply-templates/></xsl:template>  
<xsl:template match="text()"><xsl:value-of select="."/></xsl:template>
Or Microsoft a choisi de ne pas rendre ces règles modèles implicites dans son moteur -- voir sur le site de Microsoft Simulating Built-in Templates.  
Si vous voulez que votre feuille de style XSL fonctionne à la manière prévue par le W3C vous devez reproduire ces deux règles modèles en tête de votre feuille de style, avant tout autre règle modèle : c'est Microsoft lui-même qui vous le dit.  
 
Si vous ne le faites pas, vous devez vous attendre à un fonctionnement un peu particulier de votre feuille de style XSL.  
 
Faites l'essai : prenez un document XML quelconque et tranformez-le avec une feuille de style vide en utilisant successivement le moteur XSLT de MSIE5 et un autre logiciel XSLT, par exemple iXSLT. Que constatez-vous ?  
 
Vous constatez que le moteur XSLT de MSIE5 a produit un document vide, alors que le second logiciel a reproduit, dans l'ordre, tous les noeuds textuels de votre document (= votre document sans les balises).  
 
Si vous reproduisez en tête de votre feuille de style MSXSL les deux règles modèles non implicites reproduites plus haut (d'après la documentation de Microsoft) vous aurez d'abord la surprise de constater que la première de ces règles modèles provoque une erreur et doit donc être coupée en deux :  
 
<xsl:template match="/"><xsl:apply-templates/></xsl:template>  
<xsl:template match="*"><xsl:apply-templates/></xsl:template>  
<xsl:template match="text()"><xsl:value-of select="."/></xsl:template>
(En pratique, la première de ces règles modèles sera presque toujours redéfinie par vous et sera donc inutile.)  
Si vous reproduisez en tête de votre feuille de style MSXSL ces trois (ou ces deux) règles modèles non implicites, vous aurez enfin la satisfaction de voir que le moteur Microsoft produit enfin un résultat équivalent à celui de iXSLT.  
 
Que font ces trois règles modèles exactement ? Tout simplement ceci :  
 
première règle modèle : se positionner sur la racine  
seconde règle modèle : parcourir tout l'arbre XML  
troisième règle modèle : reproduire tous les noeuds textuels.  
Que se passera-t-il si vous n'avez pas ajouté ces règles modèles en tête de votre feuille de style. Eh bien vous devrez alors :  
forcer le moteur à parcourir votre arbre xml, ou du moins la partie de cet arbre qui vous intéresse. Pour ce faire il vous faudra :  
soit utiliser un mécanisme du type  <xml:for-each...> (ce qui ne convient que pour le XML régulier)  
soit faire des règles modèles (vides éventuellement) pour toutes les balises intermédiaires entre la racine et les balises que vous souhaitez exploiter  
soit faire depuis les règles modèles de niveau supérieur des branchements explicites vers les balises de niveau inférieur que vous souhaitez exploiter, du genre <xsl:apply-templates select="balise_à_exploiter" />, et non pas  <xsl:apply-templates /> qui ne brancherait que sur les balises de niveau immédiatement inférieur  
forcer le moteur à reproduire les noeuds textuels qui vous intéressent. Autrement dit la règle modèle ultime devra contenir <xsl:value-of /> et non pas <xsl:apply-templates /> qui ne produirait rien  
 
à voir sur cette page : http://www.chez.com/xml/astuces/index.htm#ie5xslt


---------------
Autoregulation is a manifestation of local blood flow regulation. It is defined as the intrinsic ability of an organ to maintain a constant blood flow despite changes in perfusion pressure.
n°39280
prettysmil​e
Sourire est un devoir social
Posté le 13-06-2001 à 09:23:18  profilanswer
 

merci pour l'@ et pur t'être interesse au pb
Pour ce qui est conseillé il me semble que c'est ce que j'ai appliqué dans mon code (utiliser des <xsl:for each> )
pour le pb d'ie je vois vraiement, j'aitesté sur tous les postes de l'école+ de la maison et ...rien  :??:  
Mais comme mon pb était de générer du HTML à partir de java et que ca ca marche, je chercherais à resoudre le pb ie pendant les vacances. :hello:

n°39301
nabab
I'm blogging this.
Posté le 13-06-2001 à 10:26:28  profilanswer
 

Ben c quand meme bizarre le probleme avec IE, jette un coup d'oiel sur MSXML.dll quand meme plus d'informations sur msdn.microsoft.com/xml sinon felicitations pour la reussite de ton programme ...

 

[edit]--Message édité par Nabab--[/edit]


---------------
Ce qui vaut la peine d'être fait vaut la peine d'être bien fait
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [JAVA - XALAN] bug

 

Sujets relatifs
Meilleur Outils de dev Java SVP!!!![java] dessin dans un canvas
[JAVA] : importer du swing sous J++ ????[java] utiliser JAXP
JAVA 2 et Applet!!!!API Java 3D
[JAVA Bdd] Ozone[JAVA] JProgressBar
Mon JAVA pour les sites ne marchent plus!! !!!!!!!!!!!!!![Java] Conversion graphique
Plus de sujets relatifs à : [JAVA - XALAN] bug


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR