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 :

"Problème" d'espace dans un XML ?


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut "Problème" d'espace dans un XML ?
    Bonjour,

    je viens poster ici car je ne sais vraiment plus vers qui me tourner pour mon problème qui n'en est pas un.

    Je travaille sous .NET et je fais de la sérialisation / désérialisation XML.

    Quand je génère mon fichier XML, j'obtiens ceci (avec ou sans mise en page pour impression j'ai des espaces avant chaque />):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <AccountInterval>
           <Pos v="3" />
            <InQty v="3270.0" />
            <OutQty v="0" />
            <SettlementAmount v="3000.0" />
    </AccountInterval>
    et on me demande ce résultat (les espaces ne sont pas présents avant les />)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <AccountInterval>
            <Pos v="3"/>
            <InQty v="3270.0"/>
            <OutQty v="0"/>
            <SettlementAmount v="3000.0"/>
    </AccountInterval>
    Est-ce que quelqu'un aurait une idée du pourquoi mon XMLSerializer dotNet me génère un espace systématiquement ?
    Si besoin, je peux donner plus de détails techniques par rapport à .NET (utilisation d'un XmlWriterSettings, etc.)

    Merci pour votre aide, je suis désespéré de ne pas trouver d'explication autre que "ça doit être la faute à .NET framework"...

    a+

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Les espaces entre les attributs d'un noeud n'ont pas de significations, donc les parseur font un peu ce qu'ils veulent en la matière.
    Même si l'espace dans ce cas semble supperflux, ce n'est malgré tout pas un problème. Tous les applications devrait le gérer de la même façon.

    Je serais juste curieux de voir si l'espace est toujours présent avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = false;

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    les espaces sont présents dans les deux cas, avec ou sans indentation, en spécifiant le caractère de tabulation pour l'indentation ou non, en fait je crois avoir testé à peu près toutes les propriétés d'un XmlWriterSettings sans noter de changement de comportement du parseur sur ce point.

    Je suis d'accord qu'il ne s'agit pas là d'un problème, mais ce fichier à vocation a être publié sur le web en l'état, et on me demande d'enlever cet espace. Etant donné qu'il est hors de question de toucher au fichier "manuellement" (ça reviendrait à perdre la garantie constructeur de son ordinateur tout neuf juste à cause de l'ouverture de la tour pour y ajouter une barette de RAM), je pense qu'il n'y a rien à faire.

    J'ai noté cependant, qu'en utilisant IE8 pour ouvrir un fichier XML qui n'a pas ce problème (il n'est pas indenté -le fameux "pretty-printing" -) et qui n'a pas cet espace, et bien IE8 lui l'a ajouté, donc j'en conclus que le parser XML d'IE8 réagit de la même manière que le XMLSerializer du framework .NET...

    Celà dit ça ne fait pas trop avancer le schmilblick...

    Merci en tout cas pour le retour.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    C'est a ceux qui te demandent d'enlever l'espace de comprendre que eux portent une signification là où la norme XML n'en définit pas.

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par le-maraudeur Voir le message

    J'ai noté cependant, qu'en utilisant IE8 pour ouvrir un fichier XML qui n'a pas ce problème (il n'est pas indenté -le fameux "pretty-printing" -) et qui n'a pas cet espace, et bien IE8 lui l'a ajouté, donc j'en conclus que le parser XML d'IE8 réagit de la même manière que le XMLSerializer du framework .NET....

    ATTENTION, a moins d'un changement majeur en IE8, dont je ne vois pas l'intérêt, IE, comme firefox, n'affichent pas le XML.
    En réalité il lui adjoigne une feuille XSLT par défaut qui va transformer le XML en une représentation HTML.La seule manière de savoir comment est réellement un fichier XML c'est de l'ouvrir dans un éditeur texte comme blocnote.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par le-maraudeur Voir le message
    Etant donné qu'il est hors de question de toucher au fichier "manuellement" (ça reviendrait à perdre la garantie constructeur de son ordinateur tout neuf juste à cause de l'ouverture de la tour pour y ajouter une barette de RAM), je pense qu'il n'y a rien à faire.
    Bah, rien ne t'empêche de voir s'il n'y a pas d'autres bibliothèques XML en .Net, qui elles ne sérialisent pas avec cet espace. (Désolé, .Net moi pas connaître.)

    Et puis, faire son propre sérialiseur pour ça, a priori ça vaut pas le coup, en effet. Moi j'éviterais. Mais il faut mettre ça en balance avec le fait que sérialiser du XML, c'est quand même pas la mort non plus, et si on connaît bien c'est facile à tester.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Problème espace dans flux XML lors de unmarshal : outils JDOM et BorlandXML
    Par alextomas dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 29/07/2011, 16h41
  2. [SimpleXML] Problème avec les accents dans le XML
    Par trotters213 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 18/12/2006, 10h23
  3. Problème avec les espaces dans un tableau !
    Par remixtech dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/07/2006, 19h30

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