cvc-pattern-valid:关于模式'^ [A-Za-z],值'A'不是facet-valid?'''类型'what'

neu*_*ert 14 regex xml xsd

这是验证失败的特定XML标记:

<MiddleName>A</MiddleName>
Run Code Online (Sandbox Code Playgroud)

该标记的XSD:

<xsd:element name="MiddleName" type="MiddleInitial" />

<xsd:simpleType name="MiddleInitial">
    <xsd:restriction base="xsd:string">
        <xsd:pattern value="^[A-Za-z]?$" />
    </xsd:restriction>
</xsd:simpleType>
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

cvc-pattern-valid: Value 'A' is not facet-valid with respect to pattern '^[A-Za-z]?$' for type 'MiddleInitial'.
Run Code Online (Sandbox Code Playgroud)

我正在使用的验证器:

http://tools.decisionsoft.com/schemaValidate/

正则表达式看起来很好.^匹配开始,$,结束,?是字母AZ或az的零或一倍.

有任何想法吗?

Jim*_*son 19

从w3规范正则表达式(附录D):

...表达式与整个词法表示形式匹配,而不是用户范围的词汇表示形式,如行和段落.出于这个原因,表达式语言不包含元字符^和$,尽管^用于表示异常,例如[^ 0-9] x

即拿出来^$.