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

Valider XML Discussion :

[XSD] element texte non parsé


Sujet :

Valider XML

  1. #1
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut [XSD] element texte non parsé
    Bonjour,

    Voila mon probleme: j'ai defini dans un schema XML un element contenant du texte.

    Il est possible que ce texte contienne des carateres du genre "&" et je ne voudrais pas que cela soit parse..

    Si je definis mon element comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <xs:element name="monElement" >
      <xs:complexType>
        <xs:simpleContent>
          <xs:extension base="xs:string">
            <xs:attribute name="name" type="xs:string" use="required" />
          </xs:extension>
        </xs:simpleContent>
      </xs:complexType>
    </xs:element>
    L'element suivant plante au parsing:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <monElement name="elt">
    un texte avec un &
    </monElement>
    Pour info le fichier est parse avec Castor, une librairie java qui fait du mapping XML.

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  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,

    Dans ton fichier XML tu n'as pas moyen de remplacer & par l'entité XML &amp; ?
    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
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Bonjour,

    l'utilisation de & et < seuls (notamment) est interdite dans tout fichiers xml, cela relève, non pas, de la validation, mais du "bien-formé" d'un xml, les & servent pour les entités, et les < pour les ouvertures de balises...

    il vous faudrait remplacer & par &amp;

    ou alors, inclure vos & ou < dans une section CDATA :
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  4. #4
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Je savais qu'on allait me repondre ca

    Le probleme c'est que mon fichier XML va contenir des templates de scripts unix par exemple et il arrive que le caractere & apparaisse.

    Le &amp; est une solution mais c'est un poil degeu au milieu d'un script, j'aurais preferre une option du schema qui precise que le texte de l'element ne doit pas etre parse, du genre d'un CDATA ...

    Enfin je vais voir ce que ca donne ...

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  5. #5
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Bon il semblerait que le &amp; soit encore ce qu'il y a de moins crade.. ce probleme est donc regle ..

    Par contre j'avais lu dans une doc que normalement le texte restait le meme dans le cas d'un type xs:string, et la je m'apercois que ce sagouin m'a viré tout les carriage return

    J'ai raison de trouver ca anormal et castor se fout de moi.. ou alors j'ai encore tout compris de travers .. :

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  6. #6
    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
    Citation Envoyé par bulbo
    Le &amp; est une solution mais c'est un poil degeu au milieu d'un script, j'aurais preferre une option du schema qui precise que le texte de l'element ne doit pas etre parse, du genre d'un CDATA ...
    Dans ce cas, pourquoi n'utilises-tu pas <![CDATA[]]> ? Et tu n'as rien à préciser au niveau du Schema.
    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

  7. #7
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Citation Envoyé par GrandFather
    Citation Envoyé par bulbo
    Le &amp; est une solution mais c'est un poil degeu au milieu d'un script, j'aurais preferre une option du schema qui precise que le texte de l'element ne doit pas etre parse, du genre d'un CDATA ...
    Dans ce cas, pourquoi n'utilises-tu pas <![CDATA[]]> ? Et tu n'as rien à préciser au niveau du Schema.
    Bonne idee, j'ai colle tout le template dans le <![CDATA[]]> et ca marche nickel .. c'est pas super joli ce crochet qui se referme 10 lignes plus bas.. mais mon script est preserve alors on pardonne

    Par contre les retours chariots sont toujours aux abonnes absent qqun a une idee ??

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  8. #8
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    pour les retours chariots, je n'arrive pas à très bien comprendre ce que tu veux dire ?? quand est-ce qu'il sautent ? dans le XML lui-même ?

    au moment du parsage ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  9. #9
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    C'est apres le parsing ..

    Le texte est sur plusieurs lignes mais lorsque je le recupere apres le parsing tout est sur une ligne

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <![CDATA[
    Voici un texte sur
    plusieurs ligne & avec
    des caracteres a ne pas parser
    ]]>
    Me donne apres le parsing la chaine de caractere suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Voici un texte surplusieurs ligne & avecdes caracteres a ne pas parser
    Autant dire que dans le cas qui me preoccupe, un script genere a partir d'un template sur une ligne risque fort de m'exploser au visage

    A mon avis c'est Castor qui ne parse pas bien ce genre de chose ou alors je dois ruser et essayer de passer des options au parser SAX utilisé par Castor...

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  10. #10
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    je sais pas, moi, à chaque fois que j'ai du texte, il me le sors tel quel, nouvelles lignes, espace, tabulations comprises...
    désolé de ne pouvoir aider sur ce point...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  11. #11
    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
    Citation Envoyé par bulbo
    A mon avis c'est Castor qui ne parse pas bien ce genre de chose ou alors je dois ruser et essayer de passer des options au parser SAX utilisé par Castor...
    Ce ne doit pas être au niveau du parseur qu'est le problème ; le contenu du <![CDATA[]]> n'est pas parsé ce qui garantit une restitution intégrale du contenu de la balise.

    Le problème doit plutôt se trouver au niveau de Castor, ou peut-être la différence de codage des saut de lignes entre Unix et Windows ?
    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

  12. #12
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Citation Envoyé par GrandFather
    Le problème doit plutôt se trouver au niveau de Castor, ou peut-être la différence de codage des saut de lignes entre Unix et Windows ?
    pourquoi pas, possible, pour assurer une copatibilité, il faut s'assurer que les saut de ligne sont bien représenter par des \r\n (0x0A+0x0D)...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  13. #13
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Merci encore pour votre aide ..

    Pour ce qui est des retours chariots ce n'est pas un probleme Unix/windows, le fichier xml a ete ecris sur la meme machine que le programme et c'est un windows donc a priori \r\n pour les retours ...

    Je pense aussi que c'est un probleme castor .. pour en avoir le coeur net je vais ecrire un petit parser SAX utilisant xerces, le parser utilise par defaut par castor, et on va voir ce qu'il en est ..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  14. #14
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    C'est bon, j'ai resolu mon probleme de retour chariot ..

    Il s'agissait bien d'un bug de la version 9.5.3 de Castor, c'est corrige dans la 9.5.4 ..

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

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

Discussions similaires

  1. [IE] Lien absolu par dessus image/text non détecté
    Par GxiGlon dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 23/01/2012, 14h53
  2. Réponses: 3
    Dernier message: 28/11/2010, 19h56
  3. Réponses: 3
    Dernier message: 19/02/2008, 14h34
  4. [XSD]Elements par defaut
    Par bochecha dans le forum Valider
    Réponses: 4
    Dernier message: 02/08/2007, 11h45
  5. [JDOM] Element Text non souhaité dans la construction
    Par alex.nd dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 24/10/2006, 14h38

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