Nous utilisons JAXB 1.0.6 (le projet a commencé avec JDK1.4 et c'est la dernière version compatible) pour créer des fichiers XML à partir d'une spécification XSD. Le XSD définit un attribut "email" avec le motif regexp suivant.Quelqu'un a aussi des problèmes avec la validation de JAXB, quand XSD contient la classe de caractères d'expression régulière w?
<xs:simpleType name="EmailAddress">
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="60"/>
<xs:pattern value="([\w%\.\-][email protected][\w%\.\-]+\.[a-zA-Z]{2,6})?"/>
</xs:restriction>
</xs:simpleType>
si vous essayez d'entrer dans un e-mail [email protected] la validation échoue avec le message suivant:
attribute "email" has a bad value: the value does not match the
regular expression "([\w%\.\-][email protected][\w%\.\-]+\.[a-zA-Z]{2,6})?
à mon humble avis, la classe de caractère \ w est équivalent à [a-zA-Z0-9_]
Donc [email protected] satisfait l'expression. Si vous omettez le trait de soulignement, la validation réussira. Pourquoi cela arrive-t-il?
Observe
J'étais tellement naïf de croire que l'implémentation de regexp est identique partout. Maintenant, je vois que le motif XSD \ w a une signification différente de celle de JAVA. Merci. – huo73
http://txt2re.com peut être utile pour des situations comme celle-ci. Il ne semble pas avoir "XML Schema" comme l'une de ses langues, mais peut-être l'un de ceux qu'il a est similaire ... – MatrixFrog