可以在XML文档中重用相同的命名空间吗
两次使用相同名称空间前缀的XML文档有效吗 在下面的文档中,可以在XML文档中重用相同的命名空间吗,xml,xml-parsing,Xml,Xml Parsing,两次使用相同名称空间前缀的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:Declaratio
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中,前缀必须具有唯一的映射(没有针对它的标准,映射对于每个XMLDOM实现都是特定的)
例如,对于本文中的第一个XML,您不能使用类似于XML的XPath,例如“/a:r/a:p/a:c”,因为每个前缀必须映射到不同的命名空间。Xpath看起来像“/p1:r/p2:p/p3:c”,前缀映射为{p1->urn:one,p2->urn:two,p3->urn:three}