65.9K
CodeProject 正在变化。 阅读更多。
Home

Introducing GRML

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.54/5 (8投票s)

2004年9月3日

6分钟阅读

viewsIcon

47681

创建一种新的标记语言。

引言

GRML 是一种用于浏览网页的标记语言。它具有字符分隔文件和 XML 的数据定义功能,以及 HTML 的超链接和表单支持。

本文的目的是展示 GRML 存在的意义以及它如何补充 HTML、XML、RSS 和字符分隔格式。 

背景

GRML 并非特定计划的产物。它是作为另一个问题的解决方案而开发的,即重新使用来自 Web 服务的数据。它始于开发一个 Web 前端,用于从一些 Web 服务请求内容。需要一种数据格式来处理响应。以某种任意格式存储数据是有限制的。需要一些正式的格式。

考虑过 HTML 和 XML,但它们并不完全适合正在开发的前端。需要有另一种选择,即具有...

  • 支持多种视图(前端使用了一个具有 4 个视图的列表控件);
  • 一种为多维视图定义多个数据集的方法;
  • 可与其他格式相互转换的内容;以及
  • 区分表单视图的显示。

由于没有满足所有要求的格式,前端需要一些新的东西。利用前端,可以开发一种格式并对其进行测试以满足这些要求。换句话说,前端存在于标记语言之前!

由此产生的格式是 GRML。它被设计用于使用表单视图,支持多维视图,与现有 Web 服务器协同工作,并适应其他格式。一旦标记语言完成,Web 前端就变成了 Web 浏览器。

既然 GRML 的目标已经解释清楚,下一步就是详细了解为什么没有选择现有格式。

理解标记语言

在深入理解 GRML 的必要性之前,需要介绍现有的格式并确定它们的设计目标。这些格式从数据处理的角度进行考虑,因此不涉及游戏、电影、音乐、广告和娱乐的讨论。

为了创建标记语言,浏览网页的两个主要功能是表单视图支持。表单包含用户请求的任何输入控件。视图显示网页数据,不包含标记标签。

鉴于表单视图的要求,可以对每种格式进行比较。

HTML 是 Web 上最普遍的格式。它设计用于数据显示。它支持表单视图

XML 是 Web 上一种较小的格式。它设计用于数据定义。它缺乏表单视图支持。

RSS 是 Web 上一种较小的格式。它设计用于数据定义。它缺乏表单支持,但有视图

CSV字符分隔格式在 Web 上很少使用。它设计用于数据定义。它缺乏表单支持,但有视图

现在每种格式都已介绍完毕,就可以理解 GRML 在 Web 上的定位了。

让我们从...

HTML 开始。

在 Web 上真正广泛使用的标记语言(换句话说,99% 的网页都使用这种语言)只有一种,那就是超文本标记语言,即 HTML。HTML 描述数据的显示方式。它告诉 Web 浏览器网页在 Web 浏览器视图中的外观。使用 HTML,所有内容都显示在视图中,包括表单、文本和图像。HTML 决定如何显示网页。

使用 HTML 的网页内容仅为图像和超链接定义。文本内容未定义,使其无法在其他格式中使用。因此,将 HTML 内容适配到其他格式是所有考虑格式中最有限的。 

HTML 的单一视图方法阻止了在视图中动态切换内容。没有办法在视图中呈现相关的内容集(例如,消息板上的 2 个不同页面,或 4 个不同页面的新闻标题,或 8 个不同页面的拍卖结果等),而无需加载不同的页面并在它们之间导航。因此,HTML 不支持多维视图

由于 HTML 决定了网页显示,阻止了内容的多视图,不支持多维视图,不易适配到其他格式,并且在一个显示中结合了表单视图,因此它被证明是一个不合适的选择。

XML。

XML,即可扩展标记语言,设计用于适应性。数据库、电子表格、CSV 或字符分隔文件都有可能使用 XML 来格式化其数据。它定义了数据是什么,而不是它如何显示。这使得 XML 能够适应其他文件格式。

没有单一的 XML 文档格式。它是一个定义数据结构方式的标准。缺乏特定的数据格式阻碍了 XML 定义其内容的任何视图。它也不定义用于表单的输入控件。

XML 缺乏视图支持,导致无法实现多视图和多维视图。没有表单支持,用户无法发送请求。虽然 XML 可以适应其他格式,但它不是一个合适的选择。

到目前为止,HTML 和 XML 都被证明是不够的。接下来考虑的是...

RSS。

RSS,即 Really Simple Syndication,是一种 XML 数据结构的特定数据格式。因此,RSS 能够支持其数据的视图。此外,由于它基于 XML,它定义其数据而不是如何显示。带有数据定义的视图支持意味着 RSS 支持其内容的多个视图。

作为一种 XML 格式,RSS 缺乏任何表单支持。XML 中不存在输入控件,因此 RSS 中也缺失。出于这个原因,它是不够的。

只剩一种格式了,那就是...

CSV 或字符分隔。

CSV(逗号分隔值)或字符分隔格式由数据库、电子表格和许多其他面向数据的应用程序使用,用于将信息存储到文件中。它是一种可以适应其他格式的格式,因为它不使用任何显示标签。该格式几乎完全由内容组成,除了用于分隔符的字符。

此格式具有视图,因为它几乎完全是内容且不含标记标签。其对内容的关注意味着它是所有考虑格式中最可重用的。不使用显示标签,因此它支持多个视图

缺乏数据定义标签意味着无法区分数据集。因此,CSV 或字符分隔文件不支持多维视图。此外,无法为表单定义输入控件。这意味着没有表单支持。

因此,这种格式是不够的选择。这就是为什么有必要创建...

GRML。

GRML 分别定义表单视图表单的输入控件与视图中使用的内容分开定义。此外,在 GRML 中显式定义内容,文本与超链接和图像分开定义。GRML 中不存在显示标签。Web 浏览器决定如何显示网页。这意味着支持多个视图

使用数据定义标签使 GRML 能够适应其他格式(HTML、XML、RSS、CSV 或字符分隔)。它还允许命名不同集的内容,这意味着支持多维视图

结论。

在考虑了所有可用的标记语言格式后,每种格式都至少缺少一项列出的要求。没有一种满足 Web 前端的设计目标。因此,有必要创建一个新格式,即 GRML。

快速参考。

HTML 用于多表单、单视图、一维、面向显示的 Web 浏览器。
GRML 用于单表单、多视图、多维、面向数据的 Web 浏览器。
RSS 用于无表单、单视图、一维、面向数据的 Web 浏览器。

© . All rights reserved.