如何保证url元素以“http://”开头?
<xs:element name="url" type="xs:anyURI"/>
您可以使用
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>
这将匹配以
http://
开头的任何内容。它将会匹配:
http://www.stackoverflow.com
http://somethingsomethingsomething
http://123456789!!!!!
http://0
它将不匹配
https
网址:
https://github.com
如果你也想匹配
https
,你可以将模式更改为
https?://.+
这意味着
s
是允许的并且是可选的。
如果您只想匹配有效的 URL,那么您需要改进它以检查字符,后跟一个点、更多字符、有效的域后缀等。如果您通过正则表达式搜索 URL 验证,您会发现几个示例。您也可以尝试此资源。要试验正则表达式,Regex 101 是一个很好的资源。
XSD 中的模式匹配有一些限制。检查这个SO问题/答案,其中讨论了这一点。
我如何在我的 JSON-LD VP JSON 中使用它。
我尝试了以下方法,但它不起作用,
{
"type": "ex:TermsAndConditions",
"gx:url": "http://www.stackoverflow.com",
"gx:hash": "d8402a23de560f5ab34b22d1a142feb9e13b3143"
}
Please help me with the correction