问题描述
public static Long getValue(supplier<String> str,supplier<Long> defVal) {
return getValue(str.get(),defVal.get()); // calling implementation above
}
Long cpuVal = getValue(rt::getcpu,defaultPerContainer::getcpu);
Long memory = getValue(rt::getMemory,defaultPerContainer::getMemory);
它对于普通电子邮件来说工作正常,但是当它出现在 XML 中的字符串时,“groupesÖtoureiffel.paris@maill.com”
它给出错误:
cvc-pattern-valid:值 'groupes╓toureiffel.paris@mail.com' 对于模式 <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!#$%&'*+/=?^_`{|}~.\-]+[@][A-Za-z0-9.\-]+"/>
</xsd:restriction>
</xsd:simpleType>
{|}~.-]+[@][A-Za-z0- 不是方面有效的9.-]+' 用于类型 'StringX50Email'`
谁能帮我改变模式?
解决方法
你可以使用
<xsd:pattern value="[\p{L}0-9!#$%&'*+/=?^_`{|}~.-]+@[\p{L}0-9.-]+"/>
\p{L}
结构匹配任何 Unicode 字母。
详情:
-
[\p{L}0-9!#$%&'*+/=?^_`{|}~.-]+
- 一个或多个 Unicode 字母、ASCII 数字、!
、#
、$
、%
、&
、{{ 1}}、'
、*
、+
、/
、=
、?
、^
、{{1} }、_
、`
、{
、|
、}
或~
-
.
--
字符 -
@
- 一个或多个 Unicode 字母、ASCII 数字、@
或[\p{L}0-9.-]+
。