我正在尝试为其中一个标签的
id
属性定义一个 ID。文档和 xsd 模式要求使用 xs:id
确认 id 集。
我尝试了
"ID_123"
,但当我尝试"123"
时,却没有。我在谷歌上搜索了很多选项和一些例子,但除了here写的文字之外找不到任何东西。
请在此提供一些示例以及允许使用哪些字符?据我了解,任何字母数字字符都应该有效,但似乎应该是字母(或单词
ID
?)和数字的组合。
W3C XML 架构定义语言 (XSD) 1.1 第 2 部分:数据类型 定义
xs:ID
:
[定义:]
表示来自[ID
XML] 的ID
属性类型。 ID 的“值空间”是与“匹配”的所有字符串的集合[XML 中的命名空间] 中的生成。 ·词汇空间· ID 是与NCName
匹配的所有字符串的集合 [XML 中的命名空间] 中的生成。 ID 的·基本类型·是NCName
.NCName
NCName 制作限制了可以使用的字符:
[4] NCName ::= NCNameStartChar NCNameChar* /* An XML Name, minus the ":" */ [5] NCNameChar ::= NameChar - ':' [6] NCNameStartChar ::= NameStartChar - ':' [4] NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] [4a] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
在众多限制中,请特别注意,
xs:ID
s 名称中的任何位置都不能有 :
字符,并且不能将数字作为名称的第一个字符。
因此,您的
ID_123
是正确的 NCName
,但 123
不是,因为它以数字开头。