“xmlns:xmpp”和“xmpp:xmlns”有啥区别?
Posted
技术标签:
【中文标题】“xmlns:xmpp”和“xmpp:xmlns”有啥区别?【英文标题】:"xmlns:xmpp" & "xmpp:xmlns" What is the Difference?“xmlns:xmpp”和“xmpp:xmlns”有什么区别? 【发布时间】:2010-07-31 13:18:55 【问题描述】:这个工作正常。
curl -H 'Content-Type: application/xml' -d " <body rid='2965554435' xmlns='http://jabber.o=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh' /> " https://dashboard.onsip.com/http-bind
这个返回的是一个空响应
curl -H 'Content-Type: application/xml' -d " <body rid='2965554435' xmlns='http://jabber.o=utf-8' ver='1.6' xmpp:version='1.0' xmpp:xmlns='urn:xmpp:xbosh' /> " https://dashboard.onsip.com/http-bind
有什么区别?第二个这样写合适吗?
附: XHR xml由OXJS库生成。
【问题讨论】:
【参考方案1】:仅:
xmlns:xmpp='urn:xmpp:xbosh'
声明一个命名空间。前缀xmlns:...
在XML With Namespaces 中具有预定义的含义,用于绑定文档中xmpp:...
前缀的使用。
这个:
xmpp:xmlns='urn:xmpp:xbosh'
不是命名空间声明,它是一个名为xmlns
的属性,前缀为xmpp
。 xmpp
前缀未绑定到本文档中的任何命名空间,因为没有 xmlns:xmpp
声明并且它不是预定义的前缀。
带有命名空间的 XML 解析器在获得 xmpp:...
属性并且没有 xmpp
的命名空间声明时会报错。此错误将是 Web 服务不给您响应的原因。
【讨论】:
谢谢,你是对的。事实上,我偶然发现了生成消息的来源,它恰好是一个 JSJAC 库,带有来自 OXJS 的示例,github.com/junction/OXJS/blob/master/examples/demo-jsjac/…(第 430 行)。我很惊讶一个人怎么能写成 =(。无论如何,你帮了我很多忙,向我保证第二个选项确实是一个缺陷 呃!是的,那很糟糕。这似乎已在 jsjac 上游修复,请参阅 github.com/sstrigler/JSJaC/commit/…以上是关于“xmlns:xmpp”和“xmpp:xmlns”有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
第三十一节:扫盲并发和并行同步和异步进程和线程阻塞和非阻塞响应和吞吐等
shell中$()和 ` `${}${!}${#}$[] 和$(()),[ ] 和(( ))和 [[ ]]
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
Java基础8---面向对象代码块和继承和this和super和重写和重载和final
JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()