如何在xml架构中验证电子邮件ID

时间:2010-01-27 14:51:50

标签: xml validation email schema

您好我已经创建了一个模式来检查电子邮件ID。可以验证电子邮件ID是否为abc@def.com和adbc@def.co.in以及abc@def.co.in.pune 但我想只验证abc@def.com和adbc@def.co.in,因为我认为电子邮件在@符号后最多可以有2个点 所以第三个将是无效的电子邮件ID 那么如何使用模式验证电子邮件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>

                                                

由于 Sunil Kumar Sahoo

4 个答案:

答案 0 :(得分:29)

您需要定义一个模式以匹配有效的电子邮件。使用正则表达式语法定义模式。一旦您使用适当的模式定义了一个简单类型(基于xs:string),就可以将其用于您的电子邮件类型。

互联网上有几个地方提供了这种类型和模式的一些例子。提供了电子邮件类型的示例here

给出的例子如下(我稍微编辑了一下以使事情变得更清晰):

<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="[^@]+@[^\.]+\..+"/> 
    </xsd:restriction> 
  </xsd:simpleType> 
</xsd:schema>

答案 1 :(得分:7)

您可以使用基于字符串和正则表达式模式的<xs:simpleType>来验证您的电子邮件地址:

<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上的一些示例。

然后,在基本XML模式中使用该类型:

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

可以通过在线验证员检查:https://www.corefiling.com/opensource/schemaValidate.html

答案 2 :(得分:1)

使用以下架构验证程序进行电子邮件ID验证

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

答案 3 :(得分:0)

使用此验证器进行电子邮件验证,同时使用撇号:

<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>

它将与撇号一起用作电子邮件验证: - )