XSD 包含带有拉丁字符的电子邮件的字符串模式

XSD String pattern which inlcude email with Latin characters

<xsd:element name="MigrCustContactEmail" type="StringX50Email" minOccurs="0" maxOccurs="1"/>


<xsd:simpleType name="StringX50Email">
        <xsd:restriction base="xsd:string">
            <xsd:minLength value="1"/>
            <xsd:maxLength value="50"/>
            <xsd:pattern value="[A-Za-z0-9!#$%&amp;'*+/=?^_`{|}~.\-]+[@][A-Za-z0-9.\-]+"/>
        </xsd:restriction>
    </xsd:simpleType>

它对于普通电子邮件工作正常,但是当它在 XML "groupesÖtoureiffel.paris@maill.com"

中出现这样的字符串时

它给出错误: cvc-pattern-valid: 值 'groupes╓toureiffel.paris@mail.com' 对于模式 '[A-Za-z0-9!#$%&'*+/=?^_{|}~.-]+[@][A-Za-z0-9.-]+' 无效对于类型 'StringX50Email'`

任何人都可以帮我改变模式吗?

你可以使用

<xsd:pattern value="[\p{L}0-9!#$%&amp;'*+/=?^_`{|}~.-]+@[\p{L}0-9.-]+"/>

\p{L} 构造匹配任何 Unicode 字母。

详情:

  • [\p{L}0-9!#$%&amp;'*+/=?^_`{|}~.-]+ - 一个或多个 Unicode 字母、ASCII 数字、!#$%&'*+/=?^_`{|}~.-
  • @ - 一个 @ 字符
  • [\p{L}0-9.-]+ - 一个或多个 Unicode 字母、ASCII 数字、.-.