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 :

Comment mettre un facte qui permet à la fois de valider une adresse http et/ou une adresse email


Sujet :

XML/XSL et SOAP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 23
    Points
    23
    Par défaut Comment mettre un facte qui permet à la fois de valider une adresse http et/ou une adresse email
    Bonjour,
    Je butte sur cette instruction et n'arrive pas à trouver de solution
    <xs:restriction base="xs:string">
    <xs:pattern value="(([A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*((\(at\))|@)[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*)|(\+[0-9]{1,3}-[0-9()+\-]{1,30})|(^^http(s)?://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*/?|/[a-zA-Z0-9]+\.[a-zA-Z0-9]{1,4})?$))" />
    </xs:restriction>
    Le pattern sert à valider dans une donnée (la même) au choix une adresse email ou une adresse URL
    Merci par avance de qui pourra m'aider

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    <xs:restriction base="xs:string">
    <xs:pattern value="(([A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*((\(at\))|@)[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*)|(\+[0-9]{1,3}-[0-9()+\-]{1,30})|(^^http(s)?://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*/?|/[a-zA-Z0-9]+\.[a-zA-Z0-9]{1,4})?$))" />
    </xs:restriction>
    [1] Je peux me tromper : il me semble le pattern commence par (( et termine par )) ? Pourquoi ça ? Ne doit-il pas plutôt employer les parenthèses pour regrouper chacun de sous-patterns alternatifs liés par le symbol "|" ?

    [2] Le pattern de w3c schéma ne supporte qu'un sous-ensemble de regex : en particulier, les symboles ^ et $ n'acquièrent le sens specifique du langage regex et s'ils sont pris au sens litéral, ils demandent d'échappement. Il est évident là, la dernière partie me parâit incorrecte.

    En tout cas, essayez ceci.

    <xs:pattern value="([A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*((\(at\))|@)[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*)|(\+[0-9]{1,3}-[0-9()+\-]{1,30})|(http(s)?://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*/?|/[a-zA-Z0-9]+\.[a-zA-Z0-9]{1,4})?)" />

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    Avec ce facet

    <xs:pattern value="([A-Za-z0-9_]+([-+.'][A-Za-z0-9_]+)*((\(at\))|@)[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*\.[A-Za-z0-9_]+([-.][A-Za-z0-9_]+)*)|(\+[0-9]{1,3}-[0-9()+\-]{1,30})|(http(s)?://([a-zA-Z0-9-]+.)?([a-zA-Z0-9-]+.)?[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(:[0-9]+)?(/[a-zA-Z0-9-]*/?|/[a-zA-Z0-9]+\.[a-zA-Z0-9]{1,4})?)" />
    Le problême est le même , la validation est en erreur

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Le problême est le même , la validation est en erreur .
    "Le problème est le même" - j'ai des choses à dire mais ça n'a pas d'importance pour vous. Ce que je sais aussi c'est que le pattern original est incorrect : ça j'en suis sûr. Si vous n'arrivez pas à valider une élément du type xs:string contenant un url le plus banal possible comme point de départ avec le pattern ainsi corrigé, c'est que vous ne savez pas où le problème est.

  5. #5
    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
    Autrement dit : "et c'est quoi le problème, au juste" ?

    À la base, il n'y a pas de regex pour valider des emails ou des URLs. Mais plein de gens utilisent des regex pour valider certains types d'emails et certains types d'URLs. Pas tous, puisque ce n'est pas possible, mais certains.
    Au départ tu nous as montré une regex qui est invalide en XML Schema. tsuji t'en as filé une qui fait la même chose mais qui est valide en XML Schema.

    Si "la même chose" ne marche pas, on va pas deviner ce qui marche. Il faut nous dire de quoi tu as besoin.
    (Et il faudrait peut-être que tu travailles un peu aussi.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 38
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Autrement dit : "et c'est quoi le problème, au juste" ?

    À la base, il n'y a pas de regex pour valider des emails ou des URLs. Mais plein de gens utilisent des regex pour valider certains types d'emails et certains types d'URLs. Pas tous, puisque ce n'est pas possible, mais certains.
    Au départ tu nous as montré une regex qui est invalide en XML Schema. tsuji t'en as filé une qui fait la même chose mais qui est valide en XML Schema.

    Si "la même chose" ne marche pas, on va pas deviner ce qui marche. Il faut nous dire de quoi tu as besoin.
    (Et il faudrait peut-être que tu travailles un peu aussi.)
    J'ai résolu le problême, l'expression teste bien comme il faut une adresse email ou au choix une adresse internet. Je ne saurasi pas vraiment dire pourquoi ça marche maintenant sinon que je penses qu'il s'agit d'une erreur de programmation dans mon logiciel et non pas dans l'expression fourni par Thidji qui elle est bonne/

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/04/2008, 16h02
  2. Réponses: 8
    Dernier message: 16/03/2007, 16h43
  3. Comment mettre virtual et override à la fois ?
    Par WebPac dans le forum Langage
    Réponses: 8
    Dernier message: 23/11/2004, 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