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

Dotnet Discussion :

Erreur (DTD) pour lire .xml avec Dataset.ReadXml


Sujet :

Dotnet

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Erreur (DTD) pour lire .xml avec Dataset.ReadXml
    Bonjour,

    J'utilise un simple fichier .xml pour récupérer des paramètres, à l'aide du code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim ds As DataSet
    ds = New DataSet
    ds.ReadXml("C:\monfic.xml")
    Cela fonctionne bien depuis plusieurs années, sauf que depuis 2 jours un nouvel utilisateur (Windows VISTA Familial SP2) m'indique une erreur et bien sûr je n'arrive pas à reproduire le problème sur une machine Vista Pro SP2.

    Avec le fichier .xml (sans DTD) de la forme :

    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
     
    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <fichier>
       <FIC>Z00</FIC>
       <ANNEE>2011</ANNEE>
       <niveau>
          <CODE>888888</CODE>
          <LIBN>xxxxx</LIBN>
          <KEY>AAA</KEY>
       </niveau>
       <niveau>
          <CODE>9999</CODE>
          <LIBN>yyyyyyyyyyy</LIBN>
          <KEY>BBB</KEY>
       </niveau>
       <package>
          <PACK>900</PACK>
          <LIBP>zzzzzzzz</LIBP>
          <KEY>CCC</KEY>
       </package>
    </fichier>
    L'erreur est :
    Vous devez définir la DTD avant l'élément racine du document.
    (et indique Ligne, position du dernier caractère du fichier)


    Alors pour tester, j'ai rajouté un DTD en début de fichier (et validé avec XmlValidatingReader :
    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
    31
    32
    33
    34
     
    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <!DOCTYPE fichier
    [
     <!ELEMENT fichier (FIC, ANNEE, niveau+, package+) >
     <!ELEMENT FIC (#PCDATA) >
     <!ELEMENT ANNEE (#PCDATA) >
     <!ELEMENT niveau (CODE, LIBN, KEY) >
     <!ELEMENT package (PACK, LIBP, KEY) >
      <!ELEMENT CODE (#PCDATA) >
      <!ELEMENT LIBN (#PCDATA) >
      <!ELEMENT KEY (#PCDATA) >
      <!ELEMENT PACK (#PCDATA) >
      <!ELEMENT LIBP (#PCDATA) >
    ]>
    <fichier>
       <FIC>Z00</FIC>
       <ANNEE>2011</ANNEE>
       <niveau>
          <CODE>888888</CODE>
          <LIBN>xxxxx</LIBN>
          <KEY>AAA</KEY>
       </niveau>
       <niveau>
          <CODE>9999</CODE>
          <LIBN>yyyyyyyyyyy</LIBN>
          <KEY>BBB</KEY>
       </niveau>
       <package>
          <PACK>900</PACK>
          <LIBP>zzzzzzzz</LIBP>
          <KEY>CCC</KEY>
       </package>
    </fichier>
    Alors l'erreur est :
    Impossible d'avoir plusieurs DTD.
    (Ligne et position indique le dernier caractère du fichier)

    J'ai du mal à comprendre d'où cela peut venir, puisque normalement ça fonctionne bien sans DTD ..., peut être un comportement particulier de Vista Familial ?
    Si vous avez une piste ... je prends !
    Merci pour votre aide,
    G

  2. #2
    Bz
    Bz est déconnecté
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 176
    Points : 127
    Points
    127
    Par défaut
    et en mettant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE interface SYSTEM "fichier.dtd">
    ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci Bz pour ta suggestion ... sous cette forme, ça fonctionne !?

    Entre temps, j'avais testé avec un poste en Windows Vista Edition Familiale Premium 2007, sans pouvoir reproduire le problème de lecture du fichier .xml.
    C'était mal parti pour aider cet utilisateur !

    Donc la solution du DTD externe fonctionne, sans comprendre ce qu'il y a de particulier sur le poste qui pose problème ... si ça inspire quelqu'un je suis curieux de savoir le pourquoi du pb !

    UN GRAND MERCI Bz

  4. #4
    Bz
    Bz est déconnecté
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 176
    Points : 127
    Points
    127
    Par défaut
    nan, un merci Grand Bz

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DTD] Valider un XML avec Oracle
    Par ghostdog dans le forum Valider
    Réponses: 5
    Dernier message: 14/12/2012, 14h25
  2. lire xml avec attributs dans balises
    Par cd090580 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/01/2008, 19h27
  3. Besoin d'aide pour lire son avec SDL
    Par Spooky6900 dans le forum SDL
    Réponses: 1
    Dernier message: 28/02/2007, 18h12
  4. [XML][DTD] Générer un XML avec une DTD ?
    Par elitost dans le forum Valider
    Réponses: 6
    Dernier message: 04/05/2005, 12h48
  5. Lire XML avec ASP
    Par Tops dans le forum ASP
    Réponses: 4
    Dernier message: 04/04/2005, 15h40

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