• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Juggernaut
V2EX  ›  程序员

谁能介绍下 XML 的 namespace 是什么鬼~

  •  
  •   Juggernaut · Nov 18, 2015 · 2683 views
    This topic created in 3854 days ago, the information mentioned may be changed or developed.
    看了这个文章( http://www.w3school.com.cn/xml/xml_namespaces.asp ),觉得还是不太清楚。
    譬如如下的 XML ( XML Namespace (xmlns) 属性):
    <f:table xmlns:f="http://www.w3school.com.cn/furniture">
    <f:name>African Coffee Table</f:name>
    <f:width>80</f:width>
    <f:length>120</f:length>
    </f:table>
    跟这个比较(默认的命名空间( Default Namespaces )):
    <table xmlns="http://www.w3school.com.cn/furniture">
    <name>African Coffee Table</name>
    <width>80</width>
    <length>120</length>
    </table>
    二者有啥区别吗?
    现在手头有个 web app ,原本期待的输出是第二种格式的 xml 内容,但是现在一直输出第一种格式的 xml 内容,而且更奇特的是,不管在什么环境测试,甚至换服务器, namespace-prefix 这个字符串内容都丝毫不变。

    求专家指点~
    4 replies    2015-11-18 11:16:07 +08:00
    feuvan
        1
    feuvan  
       Nov 18, 2015   ❤️ 3
    不要看 w3school *3

    前后两种输出是等价的,对于能处理 xml 的库是一样的,人肉去读也一样。你在序列化的时候把 "http://www.w3school.com.cn/furniture" 设为默认的 namespace ,且 不要加 f 作为 prefix name 。在代码里找找。
    至于 namespace 是啥,你学过 C++的话就理解为那个 namespace 就好了
    A namespace 下的老王和 B namespace 下的老王不是同一个老王。
    至于 XML 为什么会引入 namespace ,据信是为了解决 element/attribute name 相同但实际标识不同又不想用 prefix postfix 这种丑陋的解决方案,同时也可以分离不同域的数据。
    一般来说也建议 xml doc 有个默认的 namespace 。

    要严谨的技术回答请看链接
    1.为什么有 namespace http://www.w3.org/TR/REC-xml-names/#sec-intro
    2.一些复杂点的例子 http://www.xmlmaster.org/en/article/d01/c10/
    3.较为知名的 namespace http://www.informit.com/articles/article.aspx?p=31837&seqNum=10
    yyfearth
        2
    yyfearth  
       Nov 18, 2015
    如果只有一个 namespace 就没区别了 除非解析器不标准不支持 namespace
    但是 namespace 从来都是为了解决同名冲突用的
    所以当你遇到多个 namespace 的时候 就很必要了
    当然 用的最多的那个 namespace 作为 default namespace 对人的可读性好很多 大小也会小一些
    应该是你在 xml 处理里面要做一些配置 看看你用的 lib 的文档吧
    hqs123
        3
    hqs123  
       Nov 18, 2015
    命名空间而已没什么的...
    kaedea
        4
    kaedea  
       Nov 18, 2015
    类似于包路径吧……
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2902 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    ♥ Do have faith in what you're doing.