XML 中的命名空间和前缀有什么区别?
What is the difference between namespace and prefix in XML?
我被迫与外部 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>
谁能告诉我在标签中使用前缀的主要objective?例如:
<a:DevISA>0</a:DevISA>
这个 a: 的目的是什么?这是一种检测标签的显着特征吗?
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 规范中的参数名称等)
补充说明:
- XML 命名空间前缀本身是任意的;只有通过他们
绑定到他们派生的完整 XML 命名空间名称
意义。
- XML 命名空间前缀 必须 声明才能使 XML 文档被认为是namespace-well-formed.
我被迫与外部 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>
谁能告诉我在标签中使用前缀的主要objective?例如:
<a:DevISA>0</a:DevISA>
这个 a: 的目的是什么?这是一种检测标签的显着特征吗?
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 规范中的参数名称等)
补充说明:
- XML 命名空间前缀本身是任意的;只有通过他们 绑定到他们派生的完整 XML 命名空间名称 意义。
- XML 命名空间前缀 必须 声明才能使 XML 文档被认为是namespace-well-formed.