如何解决XML中的字符串模式
我想为元素照片写一个图案,该照片的名称以 png 或 jpg 结尾 我尝试了这段代码,但无法正常工作
<xs:simpleType name="Photo">
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]([.png] | [.jpg])"/>
</xs:restriction>
</xs:simpleType>
解决方法
我以前没有在XSD中使用正则表达式,但是假设它只是一个正则表达式,您需要:
[a-z]+\.(png|jpg)
这意味着:
- 至少一个(但可选)许多a-z字符
- 然后一段
- 然后
png
或jpg
请注意,您可能希望在第一部分中允许其他字符,例如数字和大写字母。您还应该考虑使用非ASCII字符。
,由于您使用的是XSD 1.1,因此可以使用断言使验证逻辑更加明确。创建起来容易得多,维护起来也容易得多。
检查一下。
XSD 1.1
<xs:simpleType name="Photo">
<xs:restriction base="xs:string">
<xs:assertion test="ends-with($value,'.jpg') or ends-with($value,'.png')"/>
</xs:restriction>
</xs:simpleType>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。