Как проверить идентификатор электронной почты в xml-схеме

Привет, я создал схему для проверки идентификатора email. который может проверить, является ли id электронной почты [email protected] и [email protected] и [email protected] Но я хочу проверить только [email protected] и [email protected], потому что я думаю, что электронная почта может иметь максимум 2 точки после символа @ поэтому третий будет неверным идентификатором электронной почты Итак, как проверить идентификатор электронной почты, используя схему Ниже приведена схема

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

                                      

Спасибо Сунил Кумар Sahoo

Ответ 1

Вам нужно будет определить шаблон для соответствия действительным электронным письмам. Шаблоны определяются с помощью синтаксиса регулярных выражений. После того как вы определили простой тип (на основе xs:string) с соответствующим шаблоном, вы можете использовать его для своего типа электронной почты.

В Интернете есть несколько мест, в которых приведены некоторые примеры таких типов и шаблонов. Пример типа электронной почты предоставляется здесь.

Приведенный ниже пример выглядит следующим образом (я немного отредактировал его, чтобы сделать вещи немного яснее):

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

Ответ 2

Вы можете использовать <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

Ответ 3

Используйте приведенный ниже валидатор схемы для проверки подлинности электронной почты

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

Ответ 4

Используйте этот валидатор для проверки электронной почты с помощью апострофа:

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

Он будет работать как подтверждение электронной почты с апострофом: -)