什么是XML有用,什么时候应该使用它?

Har*_*ldo 26 php xml architecture json data-structures

我很好奇,我一直在开发非常强大的网站/网络应用程序,我从来没有学过XML,甚至更奇怪我从来没有真正感觉到需要.这不像卷曲或准备陈述,在知道他们做了什么以及他们如何工作之前,我有一种感觉'必须有一种更简单的方法来做到这一点!' 或者'必须有为此设计的东西!'.

目前我使用MySQL和JSON,我没有'我需要学习'(XML)这种感觉,这一定是错的!

我真的很想听听XML的一些令人信服的论点,并了解它可以做的事情比JSON或MySQL(或web开发的其他方面)以及什么时候我应该使用它!

4im*_*ble 13

JSON非常轻量级,因此更适合将数据传递到前端.

XML具有描述性标签(我个人认为)可以更容易地以原始格式阅读.如果我想要从我的程序中加载任何类型的设置文件,我会以XML文件格式.

无论如何,这是我对它的看法,但我确信有更多深入的理由来选择一个而不是另一个.其中我没有足够的经验列出:)

但是我确实找到了几个可以提供一些优点的网站.

http://ajaxian.com/archives/json-vs-xml-the-debate (评论中的一些好处)

http://webignition.net/articles/xml-vs-yaml-vs-json-a-study-to-find-answers/

  • 你是什​​么意思`xml不支持数组??!?!? (2认同)
  • 羞耻你摆脱了关于数组的部分.确实,XML不支持数组(如:它没有提供内置的特定功能来使它们自我描述).相反,XML(ab)对具有有序未命名成员的两个数组和具有命名成员的类似记录的对象使用相同的语法.XML需要架构的首要原因是克服这个限制! (2认同)
  • 这是我第一次尝试回答某个人的问题而我是一个人(我感觉不好只是一直在问,但是嘿,我正在学习),这是一些很好的信息.谢谢你为我清理它. (2认同)

Pet*_*ham 12

在可以应用通用工具并且需要一些冗余的情况下,XML对于存储异构树结构很有用.如果您正在进行现代Web开发,那么很有可能您正在生成XHTML而不是HTML,并且正在生成RSS或Atom,所以您应该已经使用它了.最常见的RDF格式使用它.

JSON对于Web上的数据更容易使用,但是没有相同的功能集 - 您不能在JSON中拥有属性,因此数据和元数据之间没有隐含的差异,而您没有具有处理指令或为重复的文本块创建实体的能力.另一方面,XMLl的许多用途也不使用这些功能.SQL数据库具有固定的模式,并且不能很好地表示树.

大多数情况下,XML用于互操作性.

  • 如果他正在进行Web开发,那么他很有可能会生成以`text/html`发送的无效`XHTML`.恕我直言 :) (2认同)
  • *"你不能拥有JSON中的属性"*怎么样:`{"firstAttribute":"value1","secondAttribute":"value2","content":[/*blah*/]}`?这些属性本身可以是对象,而在XML中,它们仅限于字符串. (2认同)

Gui*_*ume 6

XML优于其他序列化格式的优势之一是可用工具的数量.另一种是形式化数据描述(XML Schema)的能力.

工具的可用性允许您使用XML编辑器,变换器,可视化器......例如,在我工作的地方,我们让通信团队使用XML编辑器来编辑内容和元数据.它们的技术性不足以手工编写JSON(或XML),但很容易为它们提供一个带有一个很好的通用前端的模板来编辑所需的文档.

有办法描述格式(XSD,DTD,Relax NG,...)意味着您还可以自动验证您的文档.它还可以很好地记录文档中允许的内容和不允许的内容.


Rod*_*man 5

XML仅用于以(表面上)应用程序无关的结构化方式存储消息.这就是全部.换句话说,XML提供了一种在不同应用程序之间进行通信时保留数据语义(含义)的方法.它也是一种配置格式,因为(1)配置文件只是不同应用程序会话之间的消息*和(2)几乎每种语言都有成熟的标准XML库.

*您还可以将此视为应用程序之间通信的简并情况.