Xml XSD+regex。不正确的规则?

Xml XSD+regex。不正确的规则?,xml,regex,xsd,Xml,Regex,Xsd,我在XSD文件中写入了XML类型: <xs:simpleType name="refId"> <xs:restriction base="xs:ID"> <xs:maxLength value="30"/> <xs:minLength value="5"/> <xs:pattern value="^ref-"/> </xs:restriction> </xs:

我在XSD文件中写入了XML类型:

  <xs:simpleType name="refId">
    <xs:restriction base="xs:ID">
      <xs:maxLength value="30"/>
      <xs:minLength value="5"/>
      <xs:pattern value="^ref-"/>
    </xs:restriction>
  </xs:simpleType>

所有值必须以ref-text开头。但是我得到了字符串:ref title的错误结果。为什么会发生这种情况?

该模式应用于整个字符串,而不仅仅是在字符串中查找匹配项,您可能会发现

<xs:pattern value="ref-.*" />

将起作用。

在XSD正则表达式方言中,扬抑符^不代表字符串的开头,它代表它自己。因此,您的模式表示ID值必须以^开头,这当然会使它们成为无效ID。XSD模式是隐式锚定的,所以value=ref-.*是您所需要的。

您的正则表达式是什么?它与正则表达式有关吗?>你的正则表达式是什么?它与正则表达式有关吗?是的,是正则表达式。我不明白,为什么它不能正常工作。