在XSD中,需要定义一个安装路径的数据类型,要求如下:
1. 使用斜线/分割路径,路径开头不能有斜线"/",路径中间不允许有空格,路径末尾可以有斜线,
形如: xxx/yy.yy/zz_zz/
解决办法:
1. 因为路径可能很长,但是他有规律,即我们首相匹配最短的一段,抽象出正则表达式:
[^/\s](a-zA-Z0-9_.]+[/]?
2. 使用xsd中的xsd:pattern来定义一个验证表达式,并且可以重复1中得正则式去做验证。
匹配最短路径的正则式我们已经写出来了,那么如何在xsd中重复使用这个式子去循环匹配后面的路径呢?
通过查找网上资料发现,在xsd中可以这么写,通过小括号把正则式括起来,然后添加上重复要求的字符就可以了,看最终的定义:
<!-- The definition of a install path -->
<xsd:simpleType name="installPathType">
<xsd:annotation>
<xsd:documentation>
The install path of the package element.
It must not be empty.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:token">
<xsd:pattern value="([^/\s][a-zA-Z0-9_.]+[/]?)+"/>
</xsd:restriction>
</xsd:simpleType>
我们使用+指示至少匹配1次,这样就可以保证数据中有最短合法路径,且对路径长度没有限制了。
本文详细阐述了如何在XSD中定义安装路径数据类型,包括使用正则表达式匹配路径并确保路径的有效性和格式正确性。通过设置模式和重复要求,实现了对路径的灵活验证。
288

被折叠的 条评论
为什么被折叠?



