gpt4 book ai didi

xml - 能否在 XML 文档中重用相同的命名空间

转载 作者:行者123 更新时间:2023-12-02 20:52:30 25 4
gpt4 key购买 nike

XML 文档两次使用相同的命名空间前缀是否有效?

在下面的文档中,s 前缀被使用了两次,但是在嵌套元素中,URI 是不同的。

有效吗?

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Declarations>
<s:MyObject xmlns:s="library://ns.mysite.com">
<s:Paragraph>hello world</s:Paragraph>
</s:MyObject>
</fx:Declarations>
</s:Application>

最佳答案

是的,前缀本身没有特别的意义——只是作为命名空间的别名。

完全有效的 XML,每个节点名称都具有唯一的命名空间,即使它们都具有相同的前缀也是如此:

<a:r xmlns:a="urn:one">
<a:p xmlns:a="urn:two">
<a:c xmlns:a="urn:three">
</a:c>
</a:p>
</a:r>

它也适用于空(默认)前缀,也可以为每个节点更改。以下是有效的 XML,每个节点都以自己的命名空间命名,甚至没有前缀:

<r xmlns="urn:one">
<p xmlns="urn:two">
<c xmlns="urn:three">
</c>
</p>
</r>

请注意,XPath 选择器中的前缀与任何给定 XML 文档中的前缀无关,并且必须具有单独的前缀到命名空间的映射。同样在 XPath 中,前缀必须有唯一的映射(没有标准,映射是特定于每个 Xml DOM 实现的)。

例如,对于本文中的第一个 XML,您不能使用类似于“/a:r/a:p/a:c”这样的 XML 的 XPath,因为每个前缀必须映射到不同的命名空间。 Xpath 看起来像“/p1:r/p2:p/p3:c”,带有前缀 {p1->urn:one, p2->urn:two, p3->urn:three} 的映射。

关于xml - 能否在 XML 文档中重用相同的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com