我总是想知道XML解析器如何处理URI命名空间的检查.是基于字符串还是基于URI?换句话说,这是SVG的标准URI
xmlns="http://www.w3.org/2000/svg"
Run Code Online (Sandbox Code Playgroud)
假设我写了
xmlns="http://www.w3.org/2000/../2000/svg"
Run Code Online (Sandbox Code Playgroud)
要么
xmlns="http://www.w3.org/2000/svg/"
Run Code Online (Sandbox Code Playgroud)
甚至
xmlns="http://www.w3.org:8000/2000/svg"
Run Code Online (Sandbox Code Playgroud)
这些情况是否会被识别为svg名称空间(基于URI)或不基于字符串(基于字符串)?
谢谢
编辑:您可以使用URN(如uuid)这一事实让我觉得它是基于字符串的,因为您无法将正确的URL/URI注意事项应用于非类似URL的URI.但也许在这种情况下,它只是作为一个字符串工作?
编辑:正如Tormod指出的那样,它是用字符串比较的.这提示我想知道是否存在定义URI的建议(例如:最后没有斜杠,全部小写等等).或者它只是一个免费的?
它们是基于字符串的.您的所有示例URI都解析为不同的名称空间.
http://www.w3.org/TR/REC-xml-names/#NSNameComparison
在确定名称是否属于给定名称空间以及两个名称是否属于同一名称空间时,将比较标识名称空间的URI引用.[定义:两个URI被视为字符串,当且仅当字符串相同时,它们是相同的,即,如果它们是相同的字符序列.]比较区分大小写,并且没有完成或取消%-escaping.