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 :

[XML SCHEMA] L'équivalent de ^ (negative)


Sujet :

Valider XML

  1. #1
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut [XML SCHEMA] L'équivalent de ^ (negative)
    Voilà je cherche à spécifier dans un pattern qu'un mot ne peut pas terminer pas un character (par ex "-") mais qui peut le contenir. Malheureusement je n'arrive pas à trouver le signe signifiant "Ne pas" Je pensais que ce pourrait être ^ ou ! mais apparemment c'est pas le cas

  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,

    Tu avais raison pour ^, pour mais il ne faut pas oublier les crochets qui va contenir la liste des caractères qui ne doivent pas être "matchés" ; par exemple, pour "matcher" tout autre caractère que "a" :

  3. #3
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut


    Je viens de le tester et cela fonctionne parfaitement.

  4. #4
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Maintenant je veux spécfier qu'un nom est composé de 2 mots. Mais les mots "Mr", "Prof" et "Ms" ne sont pas autorisé ???

    Dans la logique des choses, je ferais: [^"Mr","Prof,"Ms"] mais celà ne fonctionne pas Cela rejecte aussi le cas où mon mot comment par M ou r ou P ou ....

  5. #5
    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
    Là, c'est un peu plus compliqué...

    Ceci devrait convenir je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([^MP]|M[^rs]|Mr|Ms|Prof)\w+\s+\w+

  6. #6
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    Citation Envoyé par GrandFather
    Là, c'est un peu plus compliqué...

    Ceci devrait convenir je pense :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([^MP]|M[^rs]|Mr|Ms|Prof)\w+\s+\w+
    humm pas sûr ... si je comprends bien [^MP] signifie "ne peut pas commencer par M ou P, exact?
    que signifie \w+ et \s+??

  7. #7
    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 be_tnt
    humm pas sûr ...
    As-tu testé, au moins ?
    Citation Envoyé par be_tnt
    si je comprends bien [^MP] signifie "ne peut pas commencer par M ou P, exact?
    C'est cela.
    Citation Envoyé par be_tnt
    que signifie \w+ et \s+??
    Littéralement :
    \w+ -> "Au moins 1 caractère pouvant entrer dans la composition d'un mot, autrement dit un caractère appartenant à l'ensemble [a-zA-Z_0-9]"
    \s+ -> "Au moins 1 caractère comptant comme un espace, c'est à dire un caractère appartenant à l'ensemble [ \t\b\n\r]"

  8. #8
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    J'avoue que je n'ai pas essayer l'entièreté de l'expression. Mais en fait, si mon mot commence par M ou P, il est valide. Donc c'est pour ça que je disais qu'il ne me semblait pas que cela réponde à mes attentes

    Ci-dessous le pattern que j'utilise pour le moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (\p{L}[\p{L}\p{Nd}\p{Pd}_\.]*[^\.])(\p{Zs}[\p{L}\p{Nd}\p{Pd}_\.]+)*(\p{Zs}[\p{L}\p{Nd}\p{Pd}_\.]+[\p{L}\p{Nd}])
    Celui-ci parsera:
    John Smith mais aussi Mr John Smith

    Je ne dois pas permettre le Mr.
    Si au lieu de John Smith, j'ai Martine Smith (sûrement sa femme ), c'est toujours valide même si cela commence par un M.

  9. #9
    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 be_tnt
    J'avoue que je n'ai pas essayer l'entièreté de l'expression. Donc c'est pour ça que je disais qu'il ne me semblait pas que cela réponde à mes attentes
    Evidemment, si tu tronçonnes le pattern que je t'ai donné, ça ne risque pas de fonctionner...
    Citation Envoyé par be_tnt
    Mais en fait, si mon mot commence par M ou P, il est valide.
    Si tu lis l'intégrité du pattern, tu obtiens "prends tout ce qui ne commence pas par M et P ou ce qui commence par M mais n'est pas suivi d'un r ou d'un s ou ce qui égal à Mr ou Ms ou Prof, puis qui est suivi par au moins 1 caractère pouvant composer un mot, puis suivi par au moins 1 espace, puis est suivi par au moins 1 caractère pouvant composer un mot".

    La présence de Mr, Ms ou Prof comme choix possibles pour le début de l'expression peut surprendre, puisque c'est justement cela qu'on veut éviter, mais ça s'explique par la suite du pattern : \w+\s+... La chaîne matchée par l'expression entre parenthèses doit être séparée des espaces par au moins un caractères ; donc "Professeur Machin" passera, tandis que "Prof Machin" ne passera pas.

  10. #10
    Membre régulier Avatar de be_tnt
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 84
    Points
    84
    Par défaut
    okidoki. Cela marche parfaitement.

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

Discussions similaires

  1. XML Schema et inclusions de fichiers XML
    Par monk31 dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 08/10/2003, 14h17
  2. [XSD] XML Schema
    Par sleepy2002 dans le forum Valider
    Réponses: 3
    Dernier message: 15/09/2003, 09h33
  3. [DEB.] - Transposer une table SQL en XML SCHEMA ???
    Par oulahoup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2003, 15h11
  4. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55
  5. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25

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