XML中的名称空间和前缀有什么区别?

XML中的名称空间和前缀有什么区别?,xml,xml-namespaces,Xml,Xml Namespaces,我被迫与外部XML作斗争,我不理解XML文件中名称空间和前缀之间的区别。我的意思是,我使用名称空间和标签的名称来获取这个文件中的一个值。但我不知道这两者之间的区别 -<a:RoutePointsMeteoData z:Id="31" z:Size="10"> -<b:anyType z:Id="32" i:type="a:WaypointFLMeteoData"> <a:DevISA>0</a:DevISA> <a:Displ

我被迫与外部XML作斗争,我不理解XML文件中名称空间和前缀之间的区别。我的意思是,我使用名称空间和标签的名称来获取这个文件中的一个值。但我不知道这两者之间的区别

-<a:RoutePointsMeteoData z:Id="31" z:Size="10">
-<b:anyType z:Id="32" i:type="a:WaypointFLMeteoData">
    <a:DevISA>0</a:DevISA>
    <a:DisplayTemperatureType>IsaDev</a:DisplayTemperatureType>
    <a:RelatedRoutePointName>1739276a822f8a919b</a:RelatedRoutePointName>
    <a:TemperatureSource>NotDefined</a:TemperatureSource>
    <a:WindDirection>0</a:WindDirection>
    <a:WindSource>NotDefined</a:WindSource>
    <a:WindSpeed>0</a:WindSpeed>
-
-
0
伊萨德夫
1739276a822f8a919b
未定义
0
未定义
0
有人能告诉我在标签中使用前缀的主要目的吗?例如:

<a:DevISA>0</a:DevISA>
0

这是什么意思?这是检测标签的一种独特功能吗?

XML名称空间前缀是完整XML名称空间的缩写。

因为名称空间是用来区分非限定的XML名称的,所以名称空间本身最好足够长,以便在非限定名称之前创建一个词汇上不同的新名称。与URI所有权相一致的组织所有权是一个很好的属性,它也会增加名称空间的长度

为了避免将完整的XML名称空间与非限定的XML名称进行笨拙的连接,引入了缩写机制

xmlns:a="http://example.com/some/full/namespace/name"
允许将
RoutePointsMeteoData
作为
a:RoutePointsMeteoData
写入此命名空间,而不是(比如)将
{http://example.com/some/full/namespace/name}RoutePointsMeteoData
。(这种被称为的替代符号不是标准化的——它不直接与XML兼容,但通常用于元描述、JAXP API规范中的参数名称等)

进一步说明:

  • XML名称空间前缀本身是任意的;只有通过他们的 绑定到其派生的完整XML命名空间名称 意义
  • 必须声明XML名称空间前缀,才能将XML文档视为可用

XML名称空间前缀是完整XML名称空间的缩写。

因为名称空间是用来区分非限定的XML名称的,所以名称空间本身最好足够长,以便在非限定名称之前创建一个词汇上不同的新名称。与URI所有权相一致的组织所有权是一个很好的属性,它也会增加名称空间的长度

为了避免将完整的XML名称空间与非限定的XML名称进行笨拙的连接,引入了缩写机制

xmlns:a="http://example.com/some/full/namespace/name"
允许将
RoutePointsMeteoData
作为
a:RoutePointsMeteoData
写入此命名空间,而不是(比如)将
{http://example.com/some/full/namespace/name}RoutePointsMeteoData
。(这种被称为的替代符号不是标准化的——它不直接与XML兼容,但通常用于元描述、JAXP API规范中的参数名称等)

进一步说明:

  • XML名称空间前缀本身是任意的;只有通过他们的 绑定到其派生的完整XML命名空间名称 意义
  • 必须声明XML名称空间前缀,才能将XML文档视为可用

另一个要点是,不同的人可以对同一名称空间使用不同的前缀(缩写)。如果您的
p
与my
q
绑定到与my
q
相同的名称空间,那么您的
p:foo
可以与my
q
相同,这是前面提到的关于名称空间前缀任意性的注释,但其含义值得强调。谢谢。另一点很重要,不同的人可以对同一名称空间使用不同的前缀(缩写)。如果您的
p
与my
q
绑定到与my
q
相同的名称空间,那么您的
p:foo
可以与my
q
相同,这是前面提到的关于名称空间前缀任意性的注释,但其含义值得强调。谢谢。可能是重复的。你读了问题乔吗?我读了。您要求解释XML名称空间和前缀,而链接的问题有一个很好的答案。您是否阅读了Joe的问题?我阅读了。您要求解释XML名称空间和前缀,链接的问题有一个很好的答案。