0

我在我的 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-”文本开头。但我得到的字符串结果不正确:“ref-title”。为什么会这样?

4

2 回答 2

0

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

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

将工作。

于 2012-04-05T12:31:44.253 回答
0

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

于 2012-04-05T18:04:38.763 回答