在 XSD 中限制令牌类型定义中的空间

Limiting spaces in token type definition in XSD

我有点困惑,我的 XSD 验证编辑器 (IntelliJ) 允许它有空格,一般来说我从来没有遇到过 IntelliJ 验证的问题所以我相信这个定义实际上必须表示允许空格。

但我不明白为什么。有人可以解释发生了什么以及我如何将其限制为无空格吗?

 <xs:simpleType name="SymbolWord">
    <xs:restriction base="xs:token">
        <xs:minLength value="3" />
        <xs:pattern value="[A-Za-z0-9\._]+"/>
    </xs:restriction>
  </xs:simpleType>

因为你的基础是 xs:token,你实际上是在指定

  <xs:whiteSpace value="collapse"/>

因此导致 前导和尾随空格被修剪

将您的基数更改为 xs:string 以按照您的期望强制前导和尾随空格 无效 SymbolType

如果您看到允许嵌入 空格,那么post a Minimal, Complete, and Verifiable Example;那不应该发生。