正则表达式无法针对xsd验证xml

时间:2015-06-12 09:35:29

标签: regex validation

我正在尝试修复多年前其他人写过的xsd文件中的错误。问题是xml没有验证xsd。

错误消息返回以下内容:

  

“值'0:0 | - ?\ d {0,3}。* [0-9] +: - ?\ d {0,3}。* [0-9] +'的方面'pattern'不是有效的正则表达式。“

     

“WXS架构fileName.xsd无法编译”

(我正在使用xmllint进行验证)

我对正则表达式不满意,所以有人能解释一下这是做什么的吗?

0\:0|\-?\d{0,3}\.*[0-9]+\:\-?\d{0,3}\.*[0-9]+

如果我在每列'\'之前删除':'(反斜杠),那么它看起来像这样:

0:0|\-?\d{0,3}\.*[0-9]+:\-?\d{0,3}\.*[0-9]+

然后错误消失,架构编译并且xml验证。但是这些变化是什么?正则表达式是否仍然保留了它原有的预期功能?

1 个答案:

答案 0 :(得分:1)

两个正则表达式都是相同的,冒号字符不需要反斜杠。

这是一个直观的解释:

enter image description here

这是:

  • 0:0

  • 0/1减去
  • 0/1/2/3位数
  • 0/1 dot
  • 1+数字
  • 1冒号
  • 0/1减去
  • 0/1/2/3位数
  • 0/1 dot
  • 1+数字