Как проверить идентификатор электронной почты в 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>
Он будет работать как подтверждение электронной почты с апострофом: -)