xml:mstns在以下xsd-header中表达什么?
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="config" targetNamespace="http:/tempuri.org/config.xsd" elementFormDefault="qualified" xmlns="" xmlns:mstns="http://tempuri.org/config.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="config"> ...
这是一个XML命名空间声明.
原文链接:https://www.f2er.com/xml/292280.htmlXML命名空间真的由URI定义,因此限定名称由命名空间(任意URI)和本地名称(NCName规则之后的简单字符串)组成.但是,每次都不能完全写出这些命名空间,所以命名空间通过命名空间声明映射到前缀,它始终采用以xmlns开头的属性的形式,并为包含该元素的所有元素定义该前缀.元素.
以我们的案例为例.
我们有一个属性xmlns:mstns =“http://tempuri.org/config.xsd”,只是说前缀mstns被映射到命名空间URI http://tempuri.org/config.xsd;这意味着所有名称以mstns开头的元素和属性(注意冒号)都在该命名空间中.在你的例子中,我们也看到xmlns =“”,它将没有前缀的所有元素(棘手点:不是属性!)映射到空的URI.
显然,你不能使用xmlns本身作为前缀(它是神奇的),实际上所有以xml开始的前缀都是保留的.在模式中使用tns前缀来表示目标名称空间是一个常见的习惯.