XSD 사양에서 XML 파일을 만들 때 JAXB 1.0.6을 사용하고 있습니다 (이 프로젝트는 JDK1.4에서 시작되었으며 마지막 호환 버전입니다). XSD는 다음 정규식 패턴으로 "email"속성을 정의합니다.XSD에 정규 표현식 문자 클래스 w가 포함되어 있으면 JAXB 유효성 검사에 문제가있는 사람도 있습니까?
<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>
당신은 검증이 다음 메시지와 함께 실패합니다 이메일 [email protected] 입력하려고하면 :
attribute "email" has a bad value: the value does not match the
regular expression "([\w%\.\-][email protected][\w%\.\-]+\.[a-zA-Z]{2,6})?
IMHO, 캐릭터 클래스 \ (W)가 [a-zA-Z0-9_]
에 해당을 그래서 [email protected]은 표현을 만족시킵니다. 밑줄을 생략하면 유효성 검사가 성공적으로 통과합니다. 왜 이런 일이 일어나는 걸까요?
감사합니다.
정규식 구현이 모두 동일하다고 생각하는 것은 순진합니다. 이제 XSD 패턴 \ w가 JAVA에서와 같은 의미가 다르다는 것을 알았습니다. 고맙습니다. – huo73
http://txt2re.com은 이와 같은 상황에 유용 할 수 있습니다. 그것은 하나의 언어로 "XML 스키마"를 가지고있는 것 같지 않지만, 아마 가지고있는 것들 중 하나는 비슷합니다 ... – MatrixFrog