Relax Ng 列表模式逗号分隔

Relax Ng list patterncomma separated

我正在使用 Relax Ng 验证 XML 文件

在我的 XML 文件中,我有一个标签,其中包含多个用逗号分隔的值

<mytage>01,02,03,04<mytage>

我可以在 .rng 文件中使用 <List> 模式,但它匹配以空格分隔的序列而不是逗号分隔的序列

可以用<param name="pattern">和正则表达式来指定;例如:

<data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <param name="pattern">[0-9][0-9](,[0-9][0-9])*</param>
</data>

或者在紧凑的语法中:

xsd:string {
    pattern = "[0-9][0-9](,[0-9][0-9])*"
}

如果你想让它成为<choice>的一部分:

<choice>
    <data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
      <param name="pattern">[0-9][0-9](,[0-9][0-9])*</param>
    </data>
    <data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
      <param name="pattern">…</param>
    </data>
</choice>

或者在紧凑的语法中:

(    xsd:string {
        pattern = "[0-9][0-9](,[0-9][0-9])*"
    }
|   xsd:string {
        pattern = "…"
    }
)