为什么xmlns:xsi,而不仅仅是XML文档中的xsi?

时间:2016-08-14 09:31:58

标签: xml xml-namespaces

据我所知,按照惯例,默认命名空间在XML文档的根元素中被命名为xmlns属性。其他名称空间被命名为其他名称。现在,我想知道为什么XML Scheme Instance命名空间总是被命名为xmlns:xsi而不仅仅是xsixsi是否与xmlns:xsi相同?如果是,为什么是?如果不是,为什么不呢?

不是来自默认命名空间的元素和属性名称始终以命名空间的名称开头。让xmlns:xsi告诉我xsi是在命名空间xmlns中定义的属性,它是冲突的,因为默认命名空间中的属性名称不应该在命名空间之前。< / p>

1 个答案:

答案 0 :(得分:2)

默认命名空间未命名为xmlns

xmlns是声明命名空间前缀的方法(即短名称,句柄)。语法为xmlns[:prefix]="namepace-uri"

每个XML元素只能有一个名称空间声明,您可以在其中省略前缀(xmlns="namespace-uri"),如果以这种方式声明,则称为&#34;默认名称空间&#34;。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"声明URI http://www.w3.org/2001/XMLSchema-instance在此元素中应称为xsi

您可以自由选择任何您喜欢的前缀,您可以声明xmlns:bob="http://www.w3.org/2001/XMLSchema-instance",这意味着URI http://www.w3.org/2001/XMLSchema-instance在此元素中应被称为bob

按照惯例,许多广泛使用的XML命名空间URI在任何地方都有相同的前缀,但这不是技术要求。