IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

MSXML4 - <!DOCTYPE> Problème avec <!ENTITY> exte


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 70
    Points : 52
    Points
    52
    Par défaut MSXML4 - <!DOCTYPE> Problème avec <!ENTITY> exte
    Bonjour j'ai un problème avec MSXML4 qui dirait-on ne prend pas en compte les <!DOCTYPE>. Sur ma machine j'ai MSXML3 et MSXML4 d'installées.

    voilà le détail.

    j'ai le fichier XML suivant

    Accueil.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!DOCTYPE ACCUEIL [
      <!ENTITY xml "extended markup language">
    ]>
     
    <ACCUEIL>
       <IMAGE>images/logoCA.jpeg</IMAGE>
       <TEXTE>On utilise du &xml; </TEXTE>
    </ACCUEIL>
    Que j'aimerais faire appliquer au fichier XSL suivant:
    Accueil.xsl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
       <xsl:output method="html"/>
     
     
       <xsl:template match="ACCUEIL">
         <p>
           <img src="{IMAGE}" align="left"/>
           <xsl:value-of select="TEXTE"/>
         </p>       
       </xsl:template>
     
    </xsl:stylesheet>
    Je sais que c'est pas conseillé d'utiliser le parseur sur le client mais là j'en ai besoin.
    Donc j'utilise un fichier HTML et JScript pour XMLDOM:
    accueil.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <html>
      <head>
        <title>ACCUEIL</title>
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <script language="javascript">
          function init()
          {
            // Document XML
            var source = new ActiveXObject("Msxml2.DOMDocument.4.0");
            source.async = false;
            source.resolveExternals = true;
            source.validateOnParse = true;
            source.load("Accueil.xml");
     
            // Document XSL
            var stylesheet = new ActiveXObject("Msxml2.DOMDocument.4.0");
            stylesheet.async = false;
            stylesheet.load("Accueil.xsl");
     
            // transformation
            target.innerHTML = source.transformNode(stylesheet);
          }
        </script>
      </head>
     
      <body onload="init()">
        <div id="target" />
      </body>
    </html>
    Et bien rien ne se passe à cause du <!DOCTYPE> et le pire c'est que je n'ai pas de message d'erreur.

    Dans la partie JScript on dirait que le fichier n'est pas chargé en dépit du fait que j'utilise resolveExternals et validateOnParse.

    Est-ce un bug connu de MSXML?
    Quand j'enlève le <!DOCTYPE> et l'<!ENTITY> et la référence à l'entité &xml; de Accueil.xml, ca fonctionne.

    Merci par avance.

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    ta DTD est incomplète, il faut qu'on y trouve les définitions de tous les éléments de ton XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!DOCTYPE ACCUEIL [ 
      <!ELEMENT ACCUEIL (IMAGE, TEXTE)>
      <!ELEMENT IMAGE (#PCDATA)>
      <!ELEMENT TEXTE (#PCDATA)>
      <!ENTITY xml "extended markup language"> 
    ]>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Effectivement, ça fonctionne pour les entités non externes.
    Mais comment déclarer la ou les DTD si une partie de mon document accueil.xml est un document XML externe.

    C'est à dire:
    Soit parametres.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!DOCTYPE PARAMETRES [
      <!ELEMENT PARAMETRES (ONGLET)>
      <!ELEMENT ONGLET (#PCDATA)>
    ]>
    <PARAMETRES>
      <ONGLET>0</ONGLET>
    </PARAMETRES>
    J'aimerais qu'il soit incorporé dans accueil.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!DOCTYPE ACCUEIL [
      <!ENTITY parametres SYSTEM "parametres.xml">
      <!ELEMENT ACCUEIL (IMAGE,TEXTE)>
      <!ELEMENT IMAGE (#PCDATA)>
      <!ELEMENT TEXTE (#PCDATA)>
     
     
    ]>
     
    <ACCUEIL>
       <IMAGE>images/logoCA.jpeg</IMAGE>
       <TEXTE>Le texte</TEXTE>
       &parametres;
    </ACCUEIL>
    Du coup plus rien ne marche, et ce que je comprends pas c'est qu'aucun message d'erreur n'apparait.
    Dois-je redéclarer comme élément de la DTD de accueil.xml la structure de parametres.xml? ou celle-ci sera-t-elle héritée?


    Merci.

Discussions similaires

  1. Problème avec un Entity Bean
    Par Johnny P. dans le forum Persistance des données
    Réponses: 1
    Dernier message: 28/01/2013, 15h55
  2. Problème avec JPA Entity et l'annotation Column
    Par riadhhwajdii dans le forum JPA
    Réponses: 5
    Dernier message: 07/01/2011, 10h23
  3. Réponses: 8
    Dernier message: 03/05/2007, 17h31
  4. [DOCTYPE / IE / CSS] Menu déroulant / problème avec IE
    Par gb-ch dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 05/04/2007, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo