Skip to content

实际生活中的 XML

XML 用于各种场景中的数据存储、配置和交换。以下是一些示例:

虽然存在像 ‘XMLNews’ 这样的特定格式,但目前用于新闻和内容聚合的最常见 XML 格式是通过 RSS (Really Simple Syndication) 和 Atom 等格式。

这些基于 XML 的格式提供了一种标准方式,供网站(如博客和新闻网站)发布更新。称为“订阅阅读器”(feed readers)的应用可以聚合来自多个来源的内容。

一个简化的 RSS feed 条目可能如下所示:

<item>
<title>New Discovery in Quantum Physics</title>
<link>http://example.com/article/123</link>
<description>Scientists announce a breakthrough...</description>
<pubDate>Mon, 01 Jul 2024 10:00:00 +0000</pubDate>
<guid>http://example.com/article/123</guid>
</item>

使用标准的 XML 格式可以轻松实现内容发布者和消费者之间的互操作性,而无论其底层技术如何。

许多应用和框架(尤其是在 Java 和 .NET 生态系统中)使用 XML 作为配置文件。XML 的层次结构非常适合表示设置。

考虑一个假设的数据库连接配置:

<databaseConfiguration>
<connection type="mysql" id="main_db">
<host>db.example.com</host>
<port>3306</port>
<username>app_user</username>
<password encrypted="true">xY...</password>
<databaseName>production_data</databaseName>
</connection>
<connection type="postgresql" id="reporting_db">
...
</connection>
</databaseConfiguration>

这种结构易于阅读,应用可以轻松解析以加载其设置。

虽然 RESTful API 通常使用 JSON,但在基于 SOAP (Simple Object Access Protocol) 的 Web 服务中,XML 仍然普遍存在。SOAP 定义了一种标准化的 XML 消息格式,用于应用之间的通信,常用于企业环境中。

一个简单的 SOAP 请求可能涉及将特定的请求数据包装在标准的 SOAP XML 元素中:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<m:GetTemperature xmlns:m="http://www.example.org/weather">
<m:ZipCode>90210</m:ZipCode>
</m:GetTemperature>
</soap:Body>
</soap:Envelope>

其他用途包括矢量图形 (SVG)、文档格式 (DocBook, Office Open XML) 以及各种特定领域的数据交换标准。

尽管 JSON 变得非常流行,尤其是在 Web API 领域,但 XML 的特性如命名空间(namespaces)、模式(schemas)(DTD, XSD) 和转换能力(XSLT)使其成为处理复杂数据场景的健壮选择。