命名空间检查是基于xml字符串还是基于URI?

命名空间检查是基于xml字符串还是基于URI?,xml,namespaces,Xml,Namespaces,我一直想知道XML解析器如何处理URI命名空间的检查。它是基于字符串还是基于URI?换句话说,这是SVG的标准URI xmlns="http://www.w3.org/2000/svg" 假设我改写 xmlns="http://www.w3.org/2000/../2000/svg" 或 甚至 xmlns="http://www.w3.org:8000/2000/svg" 这些情况会被识别为svg名称空间(基于URI)还是不被识别为svg名称空间(基于字符串) 谢谢 编辑:您可以使用URN

我一直想知道XML解析器如何处理URI命名空间的检查。它是基于字符串还是基于URI?换句话说,这是SVG的标准URI

xmlns="http://www.w3.org/2000/svg"
假设我改写

xmlns="http://www.w3.org/2000/../2000/svg"

甚至

xmlns="http://www.w3.org:8000/2000/svg"
这些情况会被识别为svg名称空间(基于URI)还是不被识别为svg名称空间(基于字符串)

谢谢

编辑:您可以使用URN(如uuid)这一事实让我觉得它是基于字符串的,因为您无法将正确的URL/URI注意事项应用于非URL类URI。但在这种情况下,它可能只是一个字符串


编辑:正如托莫指出的那样,它是通过字符串比较进行的。这让我想知道是否有定义URI的建议(比如:末尾没有斜杠,全部小写,等等)。还是只是免费的?

它们是基于字符串的。所有示例URI都解析为不同的名称空间

在确定一个名称是否属于给定名称空间以及两个名称是否属于同一名称空间时,将比较标识名称空间的URI引用。[定义:两个URI被视为字符串,当且仅当字符串相同时,即,如果它们是相同的字符序列,则它们是相同的。]比较区分大小写,不进行%转义或撤消转义

xmlns="http://www.w3.org:8000/2000/svg"