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

Format d'échange (XML, JSON...) Java Discussion :

Validation et category escape [XSD]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut Validation et category escape
    Bonjour,

    La question a peut-être déjà été posée, mais je ne l'ai pas trouvé :/

    Je veux valider des fichiers XML avec une XSD, jusque là rien de spécial. Dans ma XSD, je veux définir une string avec un pattern spécifique, pour définir une chaine alphanumérique, avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <xs:restriction base="xs:string">
          <xs:pattern value="\p{Alnum}"/>
        </xs:restriction>
    Bon, j'ai une erreur qui me dit en gros
    "is not a valid regular expression . unknown property. "
    En remplaçant par le pattern
    ça marche bien ...

    J'ai donc deux questions :
    1) Y a-t-il une différence entre ces 2 patterns (en lisant les docs je ne crois pas, pour moi ils sont identiques)
    2) Pourquoi en "mode" escaped category ça ne fonctionne pas ?

    Merci merci

  2. #2
    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
    Ben c'est surtout qu'il n'y a aucune catégorie nommée Alnum, quoi.
    Et puis bon, en termes de catégories Unicode, en chercher une qui corresponde à la fois aux lettres et aux chiffres est un peu contradictoire. L'idée c'est que les deux concepts lettre et chiffre soient mutuellement exclusifs.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    oui effectivement j'ai mal lu, j'ai confondu la doc java et la doc xml schema

    Mais en terme de java alors (pas xml schema vu que alnum n'existe pas), est-ce que ces 2 patterns sont bien équivalents ?

    En fait, je peux mettre plus élégamment [\p{L}\p{N}]

  4. #4
    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
    En termes de Java, avec les regex basées sur la classe Pattern, la JavaDoc confirmera que c'est équivalent.

    Par contre [\p{L}\p{N}], outre le fait que c'est super pas pratique, n'est pas totalement équivalent aux deux autres. Les deux autres ne s'intéressent qu'aux caractères ASCII, alors que ce pattern acceptera aussi les lettres accentuées, grecques, russes, arabes, les idéogrammes et tout le toutim, et tous les chiffres des autres systèmes d'écritures que le nôtre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    bah pas super pratique, j'aime bien moi

    Merci pour la précision en tout cas, effectivement c'est une différence de taille ... En suivant la doc Java on voit bien que c'est ASCII, par contre j'étais passé à coté en ce qui concerne [\p{L}\p{N}], je l'avais pas vu sur la doc de xmlschema ...

    pour résumer, sur ce lien, je trouve les équivalence :

    [a-zA-Z0-9] (ascii) [\p{L&}\p{Nd}] (unicode) \p{Alnum} (java)
    ça devient clair, merce

  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
    Je ne sais pas trop où tu as vu \p{L&}, mais \p{Nd} accepte bien plus de choses que [0-9]. Il accepte toute sorte de chiffre de n'importe quelle langue et n'importe quel système d'écriture, à condition qu'il soit décimal (fasse partie d'un système de décompte à 10 chiffres dont le zéro.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    Là, ça m'a un peu retourné la tête

    http://www.regular-expressions.info/posixbrackets.html

    je pense qu'ils mettent une sorte de comparaison de différentes catégories, sans que ce soit une équivalence ...

  8. #8
    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
    Apparemment. Aussi, ils ne se focalisent pas sur un langage de regex en particulier, et présentent à la place un joyeux melting pot des différents langages de regex semblables à celui de POSIX.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 506
    Points : 248
    Points
    248
    Par défaut
    Oui c'est un peu confusant tout ça, heureusement qu'ils y a des forums pour en parler

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

Discussions similaires

  1. test et validation de votre programme!!!
    Par l'indien dans le forum C
    Réponses: 8
    Dernier message: 25/06/2003, 15h43
  2. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25
  3. est ce un XSchema Valide?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 06/03/2003, 14h01
  4. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  5. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46

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