我被迫与外部XML斗争,我不明白XML文件中命名空间和前缀之间的区别。我的意思是,我使用标签的名称空间和名称来获取Linq库在此文件中的值。但我不知道它们之间的区别。
-<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>
有人可以告诉我在标签中使用前缀的主要目的吗?例如:
<a:DevISA>0</a:DevISA>
这可能是这个的一个小问题:?这是检测标签的一种显着特征吗?
答案 0 :(得分:2)
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
。 (此备用表示法,称为Clark Notation,未标准化 - 它与XML不直接兼容,但通常用于元描述,JAXP API规范中的参数名称等)
补充说明: