在xsd中将模式添加到anyURI数据类型

grv*_*grv 5 xsd xsd-validation

如何保证url元素以"http://"开头?

<xs:element name="url" type="xs:anyURI"/>
Run Code Online (Sandbox Code Playgroud)

hel*_*cha 8

您可以使用xs:restriction以下命令为正则表达式添加xs:pattern:

<xs:element name="url">
    <xs:simpleType>
        <xs:restriction base="xs:anyURI">
            <xs:pattern value="http://.+" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

这将匹配任何开头的东西http://.它匹配:

http://www.stackoverflow.com
http://somethingsomethingsomething
http://123456789!!!!!
http://0
Run Code Online (Sandbox Code Playgroud)

匹配https网址:

https://github.com
Run Code Online (Sandbox Code Playgroud)

如果您想匹配https,也可以将模式更改为

https?://.+
Run Code Online (Sandbox Code Playgroud)

这意味着s允许并且是可选的.

如果您只想匹配有效的URL,则需要对其进行改进以检查字符,后跟一个点,更多字符,有效的域后缀等.如果您通过正则表达式搜索URL验证,您将找到几个示例.您也可以尝试使用此资源.为了试验Regex,Regex 101是一个很好的资源.

XSD中的模式匹配有一些限制.检查这个讨论的问题/答案.