我正在研究 TCL GUI,我从 XML 模式获取 GUI 的数据树结构,并且我必须验证 XML 模式中的限制的输入字段。在我正在使用的 XML 模式中,我有简单的类型 NMTOKEN Name 和 NCName ,它们分别具有模式限制 ' \c+
' 、 ' \i\c*
' 和 ' [\i-[:]][\c-[:]]*
' 。我用来检查的代码是
method validatePatternValue { value } {
set patternCheck 1
set pattern "^($patternValue)\$"
set patternCheck [regexp $pattern $value]
if {$patternCheck == 0} {
tk_messageBox -message "Only Characters within range $patternValue for $patternValueType is\
accepted "
return 0
}
return 1
}
并且每当 $pattern 是这些 ' \c+
' 、 ' \i\c*
' 和 ' [\i-[:]][\c-[:]]*
' 之一时,我的文本字段不接受任何输入并不断抛出错误异常对话。
只是为了添加更多信息,我遇到了这个网站,其中提供了一些关于我关于处理“ \i
”和“ \c
”组合的问题的好信息。但是除了以下链接中建议的方法之外没有其他方法:XML Schema Character Classes