您如何在web应用程序中使用XML?

您如何在web应用程序中使用XML?,xml,web-applications,comparison,messaging,Xml,Web Applications,Comparison,Messaging,背景 我正在研究当代web应用程序中消息传递的效率,研究XML替代品的使用。这是一个大学项目,其结果将公开发布——社区的参与程度越高,返回的结果的价值就越大 我需要尽可能多的实际使用的XML示例,以便: 完全理解主机A与主机B对话时使用XML的内容 我当然可以想象XML应该/可能被如何使用。现实可能大不相同。 对实际而非假设的数据执行测试XML与技术X在一组实际数据上的性能对比与XML与技术X在任意一组数据上的性能对比同样重要 识别和测量XML的任何使用模式例如,仅元素、元素加上一些属性或最小

背景
我正在研究当代web应用程序中消息传递的效率,研究XML替代品的使用。这是一个大学项目,其结果将公开发布——社区的参与程度越高,返回的结果的价值就越大

我需要尽可能多的实际使用的XML示例,以便:

  • 完全理解主机A与主机B对话时使用XML的内容
    我当然可以想象XML应该/可能被如何使用。现实可能大不相同。
  • 对实际而非假设的数据执行测试
    XML与技术X在一组实际数据上的性能对比与XML与技术X在任意一组数据上的性能对比同样重要
  • 识别和测量XML的任何使用模式
    例如,仅元素、元素加上一些属性或最小元素和重属性使用
问题

如何在web应用程序中使用XML

当主机B通过HTTP向主机A返回XML结构化数据时,会返回什么?这可能是在AJAX环境中返回数据的服务器,也可能是从一个或多个其他服务器整理数据的服务器

理想的答案包括:

  • HTTP响应中XML的真实示例
  • 请求上述内容的URL(如果相关)
  • 如果需要,说明数据代表的内容
  • 如果不明显,说明交换此类消息的原因(例如,为了满足用户请求;主机X向主机Y返回健康状态报告)
我更喜欢您制作、开发或使用的应用程序/服务的示例,尽管欢迎使用任何示例。从一个5行XML文档到一个10000行的怪物,任何东西都会很棒

您自己对示例中使用XML的看法也很好(例如,我们实现了XML结构化响应,因为需求X/人Y,尽管我认为JSON会更好,因为…;或者,我们使用XML来实现这一点,因为[非常好的理由],这正是工作的最佳选择)

更新
总体而言,我非常感谢所有关于XML主题的答案,但是我真正要寻找的是包含XML的HTTP响应体的真实示例

我目前非常了解XML的历史,了解可能存在哪些常见的替代方案,以及它们在特性和适用性方面如何与给定场景进行比较


更大的好处是,无论当前的使用是否正确或合适,都可以看到XML当前如何用于HTTP主机之间的数据交换。误用XML的例子与正确应用XML的例子一样有价值。

我建议您也学习JSON,它是XML的替代品,因其紧凑性而被广泛使用。

可能不是您想要的答案,但我从不使用XML,因为它太复杂(无论如何,对于我的简单需求而言),但是,即使我的需求很复杂,XML也太复杂了,以至于我不敢在复杂的问题中使用它。

是一个检索汽车登记数据的web应用程序。后端使用XSD类型的XML数据作为请求和响应消息。

不幸的是,出于业务/法律原因,我无法提供任何真实数据

根据我的经验,xml已经成为我近年来从事的90%以上的后端服务器到服务器通信的标准格式,这纯粹是因为使用xml的工具非常普遍,而且大多数开发人员都有使用xml的经验

像谷歌的协议缓冲区这样的东西对于许多任务来说可能更有效,但是大多数有“enterprisey”经验的程序员已经知道如何使用这种格式的方便性和安全性很难成为商业案例

如果您要向外部世界销售服务,那么如果您提供基于xml的接口,销售就会容易得多,CIO读到“基于xml的web服务”,CIO说“很好,我的团队知道……”


Xml并不总是(有些人可能会争辩说永远不会)这项工作的最佳工具,但它的普遍性,以及使用它的现有代码库和技能集(好的、坏的和一般的)的数量,常常将它推到候选队列的最前面

我的建议是跳过XML,看看更简单的东西,比如JSON。XML只提供两件事:

1) 序列化复杂数据的“标准化”方法 2) 验证(通过DTD)上述序列化正确性的方法

请注意,“标准化”在引号中。唯一标准化的是设置标记格式的方法。标签的意思根本不是标准的。最后,XML提供给您的唯一东西是一个好的解析器,您不必自己编写


如果您传递的数据可以表示为简单的字符串、数组或关联数组(或散列),那么XML就太过分了。

我尽量不过度使用它。在客户端和服务器互不了解且独立实现的体系结构中,它作为传输协议肯定占有一席之地,或者API是独立于任何客户端开发的。它在持久性中也有一个位置,同样的推理也适用于此,而我对它的反对在该领域要少得多

但是,如果客户机和服务器由同一个团队实现,那么以人类可读的形式在两者之间来回转换就没有什么意义,而且几乎总是有更快、更便宜(在处理方面)的替代方案,即使客户机和服务器技术不同

在XML进入“糟糕”的旧客户机/服务器时代之前,带宽和处理能力都很宝贵,我的重点是传输协议,架构师的工作是设计一个协议(n