XML元素值中的命名空间?

时间:2016-08-03 14:03:18

标签: xml soap xml-namespaces

我最近偶然发现了这个:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing">
    <s:Header>
        <a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/04/discovery/Probe</a:Action>
        <a:MessageID>uuid:21859bf9-6193-4c8a-ad50-d082e6d296ab</a:MessageID>
        <a:ReplyTo>
            <a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address>
        </a:ReplyTo>
        <a:To s:mustUnderstand="1">urn:schemas-xmlsoap-org:ws:2005:04:discovery</a:To>
    </s:Header>
    <s:Body>
        <Probe xmlns="http://schemas.xmlsoap.org/ws/2005/04/discovery">
            <d:Types xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:dp0="http://www.onvif.org/ver10/network/wsdl">dp0:NetworkVideoTransmitter</d:Types>
        </Probe>
    </s:Body>
</s:Envelope>

困扰我的一件事是: -

<d:Types xmlns:d="http://schemas.xmlsoap.org/ws/2005/04/discovery" xmlns:dp0="http://www.onvif.org/ver10/network/wsdl">dp0:NetworkVideoTransmitter</d:Types>

命名空间dp0实际上是在元素值中使用的,这是否意味着什么?

1 个答案:

答案 0 :(得分:2)

在XML级别,不,名称空间前缀在内容中没有意义 - 名称空间和名称空间前缀是纯粹的标记级构造。

此外,在内容中使用名称空间前缀的任何应用程序都必须注意只关注绑定前缀的名称空间,而不是前缀本身。

最后,由于名称空间前缀(dp0,此处)除了通过与名称空间值(http://www.onvif.org/ver10/network/wsdl)的关联之外是无关紧要的,因此名称空间前缀的数字0后缀也是微不足道的。通常,它只是一个以编程方式附加的计数器,以确保名称空间前缀是唯一的。