HTML 和 XML 之间有什么区别?

在应用程序开发和 Web 开发中,HTML 和 XML 是两种常用的标记语言。尽管名称相似,但它们有不同的应用场景。HTML 主要用于开发应用程序的用户界面,呈现网站或应用程序上看到的文本、图像、按钮、复选框和下拉框。相比之下,XML 的主要目的是交换和传输数据,以机器和人类均可读的格式对数据进行编码。XML 描述了数据是什么,而 HTML 决定如何向最终用户显示数据。

了解 XML »

HTML 与 XML 之间有什么相似之处?

XML 和 HTML 以及其他语言,例如 LaTeX、SVG、Markdown 和 SGML,都属于称为标记语言的编程语言系列。

标记语言是一种用于向人类和其他软件程序描述数据的系统。该语言使用易于阅读的语法来定义数据的结构、类型、属性、部件之间的关系、显示和含义。 

作为标记语言,HTML 和 XML 有几点相似之处。

Syntax

标记语言通常具有类似的语法,包括标签和属性。

标签

标签由括号、逗号和句点等符号表示。标签为数据元素提供结构和类型。它们定义了每个内容元素的开头和结尾。在 XML 和 HTML 中,标签以尖括号括起来,每个元素介于两个一组的起始和闭合标签之间。

属性

属性提供有关元素的更多信息,例如图像 URL。在 HTML 和 XML 中,可以在起始标签内定义元素的属性。

定义明确的结构

HTML 和 XML 文档都必须遵守给定语言的语法规则,才能得到正确处理。遵循规则的文档称为格式正确的文档。格式正确的文档需要满足以下条件:

  1. 单个根元素
  2. 所有元素的闭合(或自闭合)标签
  3. 以括在其他标签中的标签进行正确嵌套
  4. 正确描述特殊字符,例如 & 对应 & 符号

开发人员使用文本编辑器应用程序或集成式开发环境(IDE)来编写和检查语法。

了解 IDE »

使用情况

开发人员通常不会自己使用 HTML 或 XML 标记语言。这些语言与脚本语言结合使用,创建动态网页和应用程序。根据新传入的数据动态更改应用程序。

对于 HTML,应用程序页面通过生成新 HTML 的脚本语言动态更改。对于 XML,脚本语言使用新信息来更新参数。

平台独立性

平台独立性是指一种语言无需任何修改即可在不同的操作系统和平台上运行。XML 和 HTML 都是基于文本的,并且使用简单的语法。这使得不同的软件应用程序和操作系统可轻松解读这两种语言。XML 和 HTML 代码在浏览器和不同的移动平台上按原样运行。

主要语法差异:HTML 与XML

HTML 和 XML 的核心区别在于它们的标签。HTML 包含每个人必须使用的预定义标签。在编写 HTML 时,您不能自己建立标签。相比之下,XML 使用自定义标签,您可以定义为文档创建者。

接下来,我们将详细讨论 HTML 和 XML 的标签有何区别。

预定义标签

HTML 中提供预定义标签。这意味着标签本身来自 HTML 标准定义的集合列表。当前的 HTML 标准是 HTML5。 

以下是 HTML5 预定义标签的示例:

  • <header> 是文档标头的标签
  • <p> 是段落的标签
  • <h1><h6> 是六个标题级别的标签
  • <a> 是超链接的标签
  • <img> 是图像的标签
  • <div> 是用于对其他元素进行分组的容器元素的标签
  • <body> 是定义主要内容的标签

相反,对于 XML,标签是可扩展的,这意味着可针对文档的用途自定义这些标签。作为文档创建者,您需要定义标签和属性。它们可以是字母和数字的任意组合。

通常,文档创建者使用描述数据的简洁单词。您必须编写一个 XML 架构来定义用于验证文档和形成相同理解的标签与属性。

我们在下表中给出了一些 HTML 和 XML 语法的示例。

HTML

XML

<p class="body_paragraph">这是一个段落</p>

class= 表示该元素具有可用于应用样式的类属性 body_paragraph

<country language="English">加拿大</country>

country 表示国家/地区元素。language 表示该元素具有语言属性 English。

<body>

<h1>这是一个标题</h1>

<p class="body_paragraph">这是一个段落</p>

<div>

<h2>这是副标题</h2>

<p>这是另一个段落</p>

</div>

</body>

<continent name="Europe">

<country language="English">

英国

<currency>GBP</currency>

</country>

<country language="German">

德国

<currency>EUR</currency>

</country>

</continent>

自闭合标签

在 HTML 中,由于缺乏内容,某些元素可以使用自闭合标签(由闭合的正斜杠表示)。有限数量的 HTML 标签可以使用自闭合标签。

相比之下,XML 中的自闭合标签可以存在于任何没有内容的位置。

HTML

XML

<img src="my_image.jpg" alt="My image" />

<country name="United Kingdom" currency="GBP" />

其他主要差异:HTML 与XML

尽管 XML 和 HTML 有相似之处,但两者之间存在一些明显的区别。

目标

HTML 通常称为 Web 语言。HTML 的主要用途是在浏览器中以图形形式显示内容,这些内容在基于文本的文档中给出。

相比之下,XML 允许不同的应用程序以普遍理解的方式交换和存储数据及其结构。XML 的主要用途是允许不同类型的应用程序(例如数据库)理解和使用相同的数据及其结构。 

动态

HTML 使用动态类型化,即在运行时根据预期的数据类型检查属性类型。例如,如果一个属性应该是数字,但输入值为字符串,则它可能会导致网页在运行时出现错误或意外行为。借助动态类型化,可使用新的传入数据更改网页。

相比之下,XML 使用静态类型化,其中在 XML 架构中预定义属性类型,并在编译或处理之前进行检查。静态类型化会减少错误,但也会减少动态内容。

Schema

文档类型定义(DTD)或架构提供了一种可以针对类似文档进行验证和重复的结构。这些结构通常包含以下信息:

  • 正在使用的 HTML 或 XML 版本
  • 允许的元素和属性
  • 文档结构和元素关系规则

在 HTML 中,DTD 是包含在 HTML 文档开头的声明。

在 XML 中,DTD 是单独的文件。DTD 在 XML 中更为重要,因为 XML 标签由文档创建者定义。DTD 有助于数据发送方和接收方之间对标签有着相同的理解。

使用 HTML 与 XML 的时机

HTML 是一种称为演示语言的标记。之所以使用名称演示语言,是因为它是用于显示目的。可以使用 HTML 创建网页和客户端 Web 应用程序。HTML 通常与用于形成样式的层叠样式表(CSS)和用于动态行为的 JavaScript 编程语言结合使用。

相比之下,使用 XML 在两个应用程序或系统之间交换数据。为了理解相同的格式,应用程序共享定义 XML 文件内容的 XML 架构。

虽然 XML 仍在广泛使用,但目前,另一种用于数据交换的轻量级标记语言 JSON 由于其可快速解析而更受欢迎。可以阅读 JSON 和 XML 的对比,选择最适合自己的数据交换格式。

如何同时使用 HTML 和 XML

XML 可以嵌入 HTML 中,然后使用 JavaScript 编程语言进行解析,以创建动态网页。同样,如有必要,也可以使用纯文本的字符数据(CDATA)将 HTML 嵌入 XML 中。请参阅以下示例。

HTML 中的 XML

XML 中的 HTML

<html>

  <head>

<title>嵌入式 XML 页面</title>

    <script type="text/xml">

      <data>

        <item>

          <name>苹果</name>

          <price>1.00</price>

        </item>

        <item>

          <name>百香果</name>

          <price>2.00</price>

        </item>

      </data>

    </script>

  </head>

  <body>

<h1>动态水果价格</h1>

    <div id="output"></div>

    <script>

      var xml = document.querySelector('script[type="text/xml"]').textContent;

      var parser = new DOMParser();

      var doc = parser.parseFromString(xml, "text/xml");

      var output = document.querySelector('#output');

      var items = doc.getElementsByTagName('item');

      for (var i = 0; i < items.length; i++) {

        var item = items[i];

        var name = item.getElementsByTagName('name')[0].textContent;

        var price = item.getElementsByTagName('price')[0].textContent;

        output.innerHTML += '<div><strong>' + name + '</strong>: ' + price + '</div>';

      }

    </script>

  </body>

</html>

<embeddedHTML>

<title>嵌入在 XML 中的 HTML 代码</title>

    <description><![CDATA[

        <div>

<h1>嵌入式 HTML 标头</h1>

<p>嵌入式 HTML 段落。</p>

        </div>

    ]]></description>

</embeddedHTML>

可扩展超文本标记语言(XHTML)是另一种在语法上结合了 HTML 和 XML 的标记语言。

主要差异摘要:HTML 与XML

 

HTML

XML

它是什么?

一种主要用于在浏览器中显示结构化内容的标记语言。

一种主要用于在计算机系统之间交换结构化数据的标记语言。

发行年份

1998 年。

1993 年。

目的

演示语言。

数据交换语言。

使用时机

构建客户端网页或 Web 应用程序。

在两个系统之间交换数据(但请检查 JSON 格式是否更适合您)。

标签

预定义的标签。

可扩展的标签。

动态

类型化。

使用 XML 架构时固定。

AWS 如何支持您的 HTML 和 XML 要求?

所有 AWS(Amazon Web Services)数据集成服务都可以处理 XML 文件。以下是两个示例:

  • AWS Glue 是无服务器数据集成服务,您可以用于通过一个交互式、点击式可视化界面准备数据,而不需要编写代码。AWS Glue DataBrew 可以输入所有类型的文件格式,包括 XML。
  • Amazon Simple Queue Service(Amazon SQS)是一种完全托管的消息队列服务,您可以用于在任何卷的软件组件之间发送、存储和接收消息。Amazon SQS 消息可包含不超过 256 KB 的文本数据,包括 XML、JSON 和无格式数据。

同样,AWS 提供了一系列工具和服务,可大规模开发、部署和运行您的应用程序。例如,可以使用以下两项服务:

  • 借助 AWS Amplify Studio,您可以直观地构建像素完美的 UI。只需单击几下,即可将您的前端 UI 连接到云后端。
  • 借助 Amazon Lightsail,只需单击几下,即可使用预配置的开发堆栈创建自定义应用程序和网站。

立即创建账户,开始在 AWS 上开发应用程序。