什么是xmlns:XSD中的mstns?

lei*_*ren 12 xml xsd

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">
...
Run Code Online (Sandbox Code Playgroud)

Don*_*ows 11

那是一个XML命名空间声明.

XML命名空间实际上是由URI定义的,因此限定名称由命名空间(任意URI)和本地名称(遵循NCName规则的简短字符串)组成.但是,每次都无法完全写出来,因此名称空间通过名称空间声明映射到前缀,名称空间声明始终采用以...开头的属性的形式,xmlns并定义包含它的元素的前缀及其所有子元素.

我们以你的情况为例.

我们有一个属性xmlns:mstns="http://tempuri.org/config.xsd",它只是说前缀mstns被映射到名称空间URI http://tempuri.org/config.xsd; 这意味着名称以mstns:(注意冒号)开头的所有元素和属性都在该命名空间中.在您的示例中,我们还看到xmlns="",它将没有前缀的所有元素(棘手点:不属性!)映射到空URI.

显然,你不能将xmlns自己用作前缀(它是神奇的),实际上所有以前缀为前缀的xml都是保留的.tns在模式中使用前缀来表示Target NameSpace 有一个共同的习惯.

  • 那个确切的命名空间(mstns)怎么样?它在Visual Studio或.NET中有什么特殊含义吗?(默认情况下,它在Visual Studio中创建的所有模式文件中声明.) (4认同)