2013-05-07 4 views
4
를 사용하여 나를 위해 작동하지

나는이 XSD 패턴 다음 작성한 간단한 XSD를 작성했습니다XSD -xml 정규식 유효성 검사 JAXB

<xsd:element name="xx"> 
<xsd:simpleType > 
    <xsd:restriction base="xsd:string"> 
     <xsd:pattern 
      value="^[a-z]+"> 
     </xsd:pattern> 
    </xsd:restriction> 
</xsd:simpleType> 
</xsd:element> 

난 항상 오류가 XX 태그의 발생 JAXB를 사용하여 XML-XSD 유효성 검사를 실행하면 . 예 :

<xx>abcd</xx> 

왜 이렇게 이상한 행동입니까? 내 정규 표현식이 정확하고 위의 예제에서 validation을 통과해야한다. 아무것도 없다.

답변

6

식에서 앵커 ^를 제거해야합니다. XSD 유효성 검사기는^또는 $ 앵커를 인식하지 못하지만 리터럴 문자로 해석합니다. XML을 <xx>^abcd</xx>으로 변경하고 현재 XSD에 대해 유효성을 검사하여이를 확인할 수 있습니다.

이 이유는 패턴이 자동으로 문자열의 시작과 끝으로 연결되기 때문입니다. 값을 매치하려고하는 regexes와는 달리,이 정규식은 요소의 전체 내용을 검증하므로 필드에 나타나는 모든 것을 완전히 일치시키는 패턴을 만들어야합니다.