我正在尝试定义以逗号分隔的数字类型匹配数字,例如111,111
或1111,1111
,其中逗号的位置是灵活的。我想要实现的是像xsd:string {length="4"}
那样,length
参数将限制匹配字符串的长度。所以在我的情况下,假设我的类型被称为myNumber
,参数名称为groupDigits
,因此当我xsd:myNumber {groupDigits="3"}
时,匹配的数字将是111,111
,如果它是&#39 ; s 4
匹配的数字为111,1111
。如何定义此groupDigits
参数?
答案 0 :(得分:0)
您可以定义一个schema regular expression,它将使用逗号分隔的数字类型匹配字符串。
通常情况下,当你编写这个正则表达式时,你将被迫在写正则表达式时提交你想要的单个逗号之间的数字。
现在,如果我正确理解了这个问题,您需要根据您提供的某些输入定义一个可变的正则表达式。我不认为这是可能的,因为架构中没有用于将变量传递给正则表达式的机制。也没有从其中一个正则表达式中引用外部变量的机制。
XML模式匹配上下文无关语法,并且通过引入此变量,您将使其变为上下文相关语言,因此无法正常工作。
如果你真的,真的必须拥有这个功能,你可以考虑使用XSLT动态生成模式本身。 XSLT将是一个程序,它接受您的参数并生成正确的正则表达式。它的输出将是一次性模式,它将根据您在给定上下文中所需的模式进行验证。