2010-01-27 6 views
12

안녕하세요 전자 메일 ID를 확인하기위한 스키마를 만들었습니다. 전자 메일 ID가 [email protected][email protected]이고 [email protected]이 맞는지 확인 할 수 있습니다. 하지만 [email protected][email protected] 만 유효성을 검사하고 싶습니다. 내가 이메일 @ 기호 후 최대 2 점을 가질 수있다 생각하기 때문에 그래서 세 번째는 유효하지 않은 이메일 ID 됩니다에 어떻게 스키마XML 스키마의 전자 메일 ID를 확인하는 방법

<xsd:element name="SSEM" minOccurs="0"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="CNT" minOccurs="0" maxOccurs="unbounded"> 
       <xsd:complexType> 
        <xsd:sequence> 
         <xsd:element name="EM" minOccurs="1" nillable="true" type ="singleEmailID"/> 
        </xsd:sequence> 
       </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

에게 스키마 아래 이다 사용하여 이메일 ID를 확인하는

감사합니다. Sunil Kumar Sahoo

+1

:-) 아포스트로피 이메일 확인으로 작동합니다. 추측하고 임의로 유효성 검사를 실패하는 대신 관련 RFC를 읽을 수 있습니까? 'abc @ 10.0.0.0' 역시 완벽하게 유효한 이메일입니다. http://davidcel.is/posts/stop-validating-email-addresses-with-regex/ –

답변

29

유효한 전자 메일과 일치하도록 패턴을 정의해야합니다. 패턴은 정규식 구문을 사용하여 정의됩니다. 적절한 패턴으로 간단한 유형 (xs:string 기준)을 정의한 후에는 해당 유형을 전자 우편 유형으로 사용할 수 있습니다.

인터넷에는 이러한 유형 및 패턴의 몇 가지 예가 나와 있습니다. 전자 우편 유형의 예는 here입니다.

다음과 같이이 주어진 예제 (나는 약간 조금 더 명확 것들을 만들기 위해 편집 한) : 당신은 확인하기 위해 문자열 및 정규식 패턴을 기반으로 <xs:simpleType>을 사용할 수

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > 

    <xsd:element name="A" type="emailAddress"/> 

    <xsd:simpleType name="emailAddress"> 
    <xsd:restriction base="xsd:string"> 
     <xsd:pattern value="[^@][email protected][^\.]+\..+"/> 
    </xsd:restriction> 
    </xsd:simpleType> 
</xsd:schema> 
+0

def.com과 def.co.in 만 원한다면이 표현으로 조금 놀아야합니다. –

+0

그래, 가장 확실합니다. –

6

당신의 전자 메일 주소 :

<xsd:simpleType name="emailAddress"> 
    <xsd:restriction base="xsd:string"> 
     <xsd:pattern value="([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})"/> 
    </xsd:restriction> 
</xsd:simpleType> 

사용하면 :-) 원하는 전자 메일 정규식, RegexLib.Net에 대한 몇 가지 샘플을 참조하십시오. https://www.corefiling.com/opensource/schemaValidate.html

+6

다른 RegEx 라이브러리와 달리 XML 스키마 패턴은 ^로 시작하지 않고 $로 끝납니다. 이것은 원자 문자열에 함축되어 있습니다. –

1

를 사용하여 이메일 ID 확인

<xsd:simpleType name="emailAddress"> 
    <xsd:restriction base="xsd:string"> 
     <xsd:pattern value="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"/> 
    </xsd:restriction> 
</xsd:simpleType> 
0

에 대한 아래의 스키마 검증 :

<xsd:element name="email" type="emailAddress" /> 

온라인 검사기에 의해 확인에 의해 수 :

그런 다음 기본 XML 스키마 유형을 사용 아포스트로피가 포함 된 전자 메일 유효성 검사에도이 유효성 검사기를 사용하십시오.

내가 이메일 @ symbol` 후 최대 2 점을 가질 수있다 생각하기 때문에 10
<xsd:simpleType name="emailAddress"> 
    <xsd:restriction base="xsd:string"> 
     <xsd:pattern value="^([0-9a-zA-Z_\.\'\-]+)*@[0-9a-zA-Z\-]+[a-zA-Z\.]+Dollar symbol"/> 
    </xsd:restriction> 
</xsd:simpleType> 

그것은`

관련 문제