HTML+文档格式综述

David Raggett,惠普实验室<dsr@w3.org>

HTML+是超文本标记语言(HTML)的一组模块化扩展,它在万维网上广泛使用。使用SGML指定HTML+允许作者以多种方式创建文档:使用文本编辑器、,SGML创作工具和来自常见字处理格式(如Fram)的过滤器-emaker、Microsoft Word和LaTeX。论文通过查看扩展完成目前正在考虑并鼓励就需要什么燃料进行更广泛的辩论Web开发的下一个阶段。

介绍

1450年,Johannes Gutenberg将两个想法结合在一起:使用金属模具制造可移动的打字机和压力机,用于在纸张上获得清晰的压痕。印刷术的发明伟大发现时代的曙光加速了即将到来的经济、社会和意识形态的变革现代世界。

书籍、报纸、广播、电影和电视等传统媒体由少数人为多数人出版,而电话仅限于一对一对话。万维网是一种全新的媒体超文本、逻辑标记和全球网络。网络使任何人都可以很容易地发布向世界各地的人们提供信息。网络正在以非常快的速度增长——流量翻了一番每两到三个月。在写这篇文章的时候,每月大约有400 GB的容量。

现在在排版印刷文字方面有着丰富的经验。这种经历带来了与打印页面的固定。计算机的发展使这种定势得以延续:文字处理软件主要被视为准备打印文件的一种手段。全球网络现在让它变得简单以电子方式分发信息,现在是摆脱打印页面限制的时候了。

今天,许多信息电子分发格式都体现了印刷品的限制页面-文档被分解为一系列固定大小的页面,页面用标记来描述在指定位置制作,通常包括命名字体。这妨碍了信息。你们中的许多人都会在Postscript中看到这一点——由于某种原因,经常会出现问题当你试图打印出那张纸时,你刚从网上取回!

标准通用标记语言(SGML)就是为了解决这些问题而发明的。把重点放在文档中的逻辑元素上,信息的接收者就可以从通常不合适的内容中解脱出来发起者的选择。用户可以调整窗口大小,以最佳利用屏幕和打印软件可以布局文档以匹配本地纸张大小。使用SGML的其他好处包括:面对短暂的专有格式和可用性,保护信息提供商的投资用于创作和格式转换的工具。SGML是一种元格式,允许指定范围广泛的文档格式。超文本标记语言HTML是作为一种简单的非专有交付而开发的全局超文本的格式。HTML+是对HTML的一组模块化扩展,是为了响应这一需求而开发的越来越了解信息提供者的需求。这些扩展包括周围的文本流浮动数字、填充表格、表格和数学方程式。

浏览器是用于查看HTML文档的程序,现在可用于大多数平台。最好的已知的是美国国家超级计算应用中心的Mosaic浏览器系列适用于X11、Windows和Macintosh的浏览器。非图形浏览器可用于VT100终端等,例如Lynx和Emacs-W3。文档的外观因浏览器而异根据每个系统的功能和用户的偏好。

目前,大多数文档都是使用传统的文本编辑器创建的。键入标记所需的工作可以通过使用后处理工具来减少元素,以确保生成的文档符合HTML文档类型定义(DTD)。作者还可以使用通用的文字处理包并应用筛选以转换为HTML。过滤器可用于FrameMaker、LaTeX和Microsoft Word。其他人是使用标准SGML工具编写文档并从基于SGML的专有文档转换格式。

HTML概述

HTML包含以下标记元素:

下面是HTML文档的一个简单示例:

<title>HTML文档示例<h1>结构示例</h1>下面是一个典型的段落<ul><li>项目1有一个锚</a><li>下一项有一个超文本链接。</ul>

TITLE元素用于命名整个文档。有六级标题递减重要性范围从H1到H6。P元素表示分段。HTML支持四种样式字符突出显示:固定宽度电传字体TT、粗体B、斜体I和下划线U。浏览器可以选择以其他方式呈现它们,甚至完全忽略它们。此外,还有几种逻辑样式。

超文本链接用锚标记表示,并限制为单向二进制链接。文本开始标记<a>和结束标记</a>之间用作标题。链接通常作为一个整体,但也可以在文档中进行锚定。该示例显示了与一起使用的锚属性来声明此类链接的潜在目的地。HREF属性用于标识链接的通过通用资源定位器(URL)创建文档。这是用于引用位于URL以一个前缀开头,该前缀描述了用于检索引用的对象,通常后跟Internet主机名和路径。相对引用提供了缩写URL的便捷方法,并在当前完整URL的上下文中展开文档。本文档末尾的第5节中提供了URL规范的参考。

有几种列表:定义列表DL、有序(编号)列表OL、项目符号列表UL和普通列表(MENU和DIR)。列表不能嵌套,尽管实际上大多数浏览器都放宽了这一限制。预格式化文本用PRE标记表示,可以包括字符突出显示和超文本链接。引入的目的是便于导入现有计算机程序的输出,例如Unix手册页。HTML包含一个简单的搜索工具(<ISINDEX>标记),用户可以在其中键入字符串和将它们发送到服务器进行解释。

HEAD和BODY元素可用于将前端内容从文档正文中分离出来。这个文档头用于与整个文档相关的信息,例如标题支持搜索:ISINDEX,以及与其他文档的关系,用LINK元素表示。

HTML+与HTML的比较

HTML+添加了一些新功能,如图形、表格和表单。它还概括了HTML中的结构反映编写浏览器的实际经验,以及更容易在HTML+之间转换的愿望和其他格式。在介绍主要的新功能之前,下面将对这些更改进行回顾。这部分本文假设事先对HTML文档格式有所熟悉。

大多数浏览器现在支持嵌套列表。HTML+将其形式化,允许任意嵌套各种列表。列表项现在可以包括水平规则元素HR考虑是允许使用PRE元素在列表项中预格式化文本。DIR和MENU元素已被用于无序列表的更强大版本的UL元素所取代。PLAIN属性不显示项目符号,而WRAP属性指定多列列表的换行样式(垂直或水平)。项目符号也可以替换为图标,使用SRC属性为图像指定URL。

许多元素被制成容器。其中包括段落P,列出项目LI、DT和DD。此更改对作者几乎没有影响,但有助于文档转换,并使HTML与其他SGML格式。它还可以将属性与包含的文本相关联,例如字符集和段落对齐。现在,大多数元素都接受ID属性,该属性在其中提供了唯一的名称文档,并可以用作超文本链接的目的地。这是SGML中的常见技术文件。新的CHARSET属性可以用于逐个元素地指定字符集,例如,日语为ISO-2022-JP。

删除S是一种新的字符突出显示样式,特别适用于法律文档。高亮显示元素现在可以嵌套,例如对于粗体-斜体文本。其他创新包括下标SUB和上标SUP,内嵌引号Q,并支持更改栏CHANGED。用于长引号的元素具有缩写为QUOTE。现在可以使用BR元素强制换行。LaTeX样式的制表位可以使用TAB元素定义。字符实体的范围已经大大扩展,覆盖范围很广符号范围,例如:;用于非中断空格和&copy;用于版权标志。实体还为标准图标定义了名称,以用作目录列表中的注释,例如&folder;和其他应用。

使用现有的IMG元素支持类似字符的图像。ALT属性可用于提供非图形浏览器的文本描述。图像相对于基线的垂直位置可以是如前所述,使用ALIGN属性(顶部、中部或底部)指定,但使用新的基线属性,用于调整图像,使基线出现在指定数量的图像底部上方的像素。ISMAP属性允许用户将图像上的单击传递给服务器作为图像左上角的偏移量。这对于图形菜单或活动贴图非常有用。

一些新元素

FOOTNOTE元素用于附加信息,可以作为内部跳转来实现或作为弹出面板。MARGIN元素有助于吸引人们的注意力在页边空白处放上一个时髦的短语,或者用大字体将其作为单独的段落呈现,可能会有标记按水平规则进行。ABSTRACT元素按其名称使用,通常放在主要标题。NOTE元素用于警告。ROLE属性是一个简单的提示,注释、警告或错误。根据相应插入文本的ROLE属性。默认图标通常为:无代表简单,竖直的手伸出的手指代表提示,信息标志代表提示,交通警告标志代表警告错误的停止标志。可以使用SRC属性为图像指定URL来覆盖这些图标。

图形、文本流和事件的本地处理

图像可以包含为类似字符的元素,文本围绕图像流动,例如。

Tim Berners-Lee的照片,周围有文字

此示例由以下HTML片段生成+

<p>Tim Berners-Lee的照片在加入欧洲核子研究组织之前,蒂姆从事的工作包括。。。

FIG元素可以放在段落中的任何位置,并使用SRC属性将图像指定为URL。如果它放在开头之后,图形将一直浮动到下一个换行符。然后文本四处流动图形的左侧或右侧有足够的空间。图形周围的空白调整为补偿图形的高度是文本行的非整数。您可以控制水平使用ALIGN属性定位图形,例如左、中或右。已为禁用文本流居中的图形。CAPTION元素可用于指定图形的标题,可以放在上面或根据ALIGN属性(顶部或底部)位于图形下方。开始标记和结束标记之间的文本因为该图用于描述图像内容,并且仅在非图形显示器上显示:

<fig align=left src=“people/tbl.gif”><caption>Tim Berners-Lee</caption>这张照片是拍摄的在1993年7月的万维网向导研讨会上。</fig>

下图显示了另一个围绕图形的文本流示例,该示例来自作者正在开发的HTML+浏览器:

图形周围文本流的更大示例

与IMG一样,您可以使用ISMAP属性在传递给服务器的图形上单击鼠标。A类这种方法的缺点是,您通常需要等待相当长的时间才能知道是否成功单击在一个活动区域上或是你刚刚错过了!这个问题的解决方案是定义形状超文本锚定在图形本身。这是通过在A元素中包含锚点并使用SHAPE属性实现的将轮廓定义为闭合多边形。这些锚件放置在图形描述中,因此可供具有非图形显示的用户使用(与ISMAP机制不同)。建议使用鼠标光标主动更改形状,以指示当前光标何时位于图形的活动区域上。

填写表格

HTML允许用户输入字符串来搜索远程数据库。HTML+填写表单提供了界面更加丰富,具有多种字段类型:

HTML填写表单示例

此示例显示了单行和多行文本输入字段、单选按钮和复选框。按钮位于左下角用于将表单提交到服务器,或将字段重置为其初始值。其他类型的字段包括密码字段、选项列表和状态信息的隐藏字段。服务器上的脚本简化了处理表单内容并与数据库或其他软件接口。

上面的表单是由下面的一段HTML生成的+

<表单操作=“http://www.com/survey.html"><P> 你的组织<输入NAME=“org”SIZE=“48”><P> 商业教育<INPUT NAME=“commerce”TYPE=radio VALUE=“research”>研究<P> 有多少用户<INPUT NAME=“users”TYPE=int>输入名称=“users”TYPE=int><P> 你使用哪些浏览器?<UL><LI><INPUT NAME=“browsers”TYPE=checkbox VALUE=“xmosaic”>X-Windows的马赛克大提琴<LI><INPUT NAME=“browsers”TYPE=复选框VALUE=“others”>其他(请注明)<BR><TEXTAREA NAME=“others”COLS=48行=4></UL><P> 您站点的联系人:<INPUT NAME=“contact”SIZE=“42”><P> 非常感谢WWW中央支持团队。<P> <INPUT TYPE=提交></FORM>

当表单发送到服务器时,字段值将转换为名称和值的属性列表。作为示例显示,多个字段可以共享相同的NAME。单选按钮和复选框仅包含在选中时的属性列表。当前,属性列表编码为name=value元素序列由“&”字符分隔,并作为搜索字符串附加到URL。超文本传输协议(HTTP)用于将表单发送到服务器。HTTP使用多用途Internet邮件扩展(MIME)封装请求和响应,以及MIME多部分/相关消息有望从基于URL的表示法,尽管精确的细节仍在研究中。FORM中的ENCTYPE属性元素用于指定要应用的编码方法。多部分/相关消息的优点是声明每个消息部分的内容类型,并允许表单使用更高效的编码,例如JOT用于手写输入。

表单可以包含多个提交按钮。NAME属性允许服务器确定哪个按钮已按下。您还可以通过SRC属性使用图像代替提交按钮。在这种情况下,位置在图像上单击的图像与其他字段的内容一起发送到服务器。下的新字段类型考虑事项包括:允许您在图片上用“笔”涂鸦的涂鸦字段、语音输入、用于数据输入的表格小部件,以及用户可以在其中键入文件名以将本地文件传递给服务器的字段。

有时,您会希望创建这样的表单:单击一个字段会影响其他字段显示的值。可能希望限制输入到给定字段中的值,或者在相互依赖的字段上设置约束。搬运远程操作太慢,并且正在进行允许表单与由执行的脚本关联的工作浏览器响应于在键盘上键入或用鼠标点击。这项工作的重点是定义浏览器用来调用脚本解释器的标准API(应用程序编程接口)。这将允许单独指定脚本语言。API充当脚本和保证恶意脚本不会破坏客户端系统。FORM元素中的SCRIPT属性通过URL指定脚本。这将使浏览器能够使用HTTP格式协商来声明它们支持的语言。

桌子

使用TABLE元素指定表格。这允许您定义标题(在表上方或下方)以及区分标题和数据单元格。单元格可能包含文本、图像、多个段落、列表和标题。可以合并相邻单元格,例如定义跨两列的标题。一个简单的表可以如下所示:

表1:一个简单的表

简单表格示例

这是由标记定义的:

<表格边框><caption>一个简单的表格</caption>年月日1972年6月23日1982年10月7日</表格>

每一行都包含在TR元素中,尽管可以省略结束标记。BORDER属性起作用提示浏览器在每个单元格周围画线。TH元素位于标题单元格文本和TD之前元素位于数据单元格文本之前。默认情况下,文本在每个单元格中居中。标题文本应强调显示,例如,浏览器可以对标题使用粗体无衬线字体,对数据单元格使用衬线字体。下一个示例显示了如何将单元格与其相邻单元格合并:

表2:更复杂的表

更复杂的表示例

此表由标记定义:

<表格边框><caption>更复杂的表格</caption><tr><th rowspan=2><th colspan=2>平均<th rowspan=2>其他<br>类别身高体重男性<td>1.9<td>0.003<td>yyy雌性</表格>

第一个单元格(标题单元格)与它下面的单元格合并:<th rowspan=2>。请注意,此合并单元格为空-第一行的下一列的定义立即开始。再看第一排,第二列与第三列合并:。跳过第三列的定义因为它被合并的单元格覆盖了。第四列/第一行也被合并,这次是与下一行合并:第行span=2>。此处使用<BR>元素在其他和之间强制换行类别。请注意,行末尾的空单元格可以明确地作为下一个<TR>元素省略标记行的末尾。

第二行仅包含第二列和第三列的定义,因为其他列与合并前一行中的单元格。一般规则是避免将任何单元格定义两次。最后两行以headers和align=left属性确保浏览器将这些标题与单元格的左侧对齐。ALIGN属性可以是左、中或右属性之一。它可以与TH和TD一起使用。

浏览器使用prepass来调整每个表的大小,以匹配当前窗口的大小,尽管有时表是只是太宽了。过长而无法容纳一行的文本在每个单元格中的换行方式与文本相同通常在窗口中进行包裹。

数学方程式

HTML+提供了一种相对简单的表示公式的方法,旨在覆盖大多数用户需要,而不是以全面覆盖为目标。支持MATH元素的实验浏览器具有由欧洲核子研究所开发。

考虑以下等式:

这可以表示为:

<数学>H(s)=∑<sub>0</sub>∞</sup>e<sup>-st</sup>H(t)dt</math>

给出了数学符号及其标准ISO 8879-1986实体名称。SUB和SUP是用于指定下标和上标。对于整数和相关运算符,下标/上标文本居中于符号上方,否则它显示在右侧,如前一示例所示。盒子和OVER元素允许您定义更复杂的方程,如:

其表示为:

<数学>C<box>dV<sub>out</sub><over>dt</box>=I<sub>b</sub>&丹恩;(<box>κ(V<sub>in</sub>-V<sub>out</sub>)<over>2</box>)</math>
BOX元素通常可用于对项目进行分组,并可被视为非打印括号。这个OVER元素是可选的,它将框分为分子和分母。其他数学元素包括矩阵的数组和涉及根的表达式的根。

文件声明

使用DOCTYPE声明启动HTML+文档是一种好做法,例如。

<!DOCTYPE htmlplus系列[<!实体%HTML.tables“INCLUDE”><!实体%HTML.forms“INCLUDE”>]>

此前言标识文档类型定义并通知浏览器HTML的哪些扩展将在文档中使用。扩展分为以下类别:

HTML.emph打开新的字符强调类型,如删除线和内嵌引号,以及脚注和相关元素。HTML.过时元素(如DIR)上的过时开关和菜单。

可以通过以下方式动态扩展HTML+DTD,以添加新标签,以便在当前文档中使用重新定义特殊实体名称:cextra表示出现在文本中间的元素,pextra用于块状元素。要为专有名称添加一种新的强调标记,您可以写:

<!文档类型htmlplus[<!实体%cextra“|PROPNAME”><!元素PROPNAME---CDATA><RENDER tag=“PROPNAME”style=“I”>]>

RENDER元素指定如何根据以空格分隔的现有标记名。这些仅限于字符突出显示标记:I表示斜体,B表示粗体,U表示带下划线,S表示删除线,TT表示固定间距字体。新元素将按如下方式使用:

许多同龄人都对微笑感到好奇在斯芬克斯的脸上。

如果浏览器无法识别开始或结束标记,它将被忽略,并且内容将被处理,就像这些标记没有被识别一样存在。同样,未知属性也会被忽略。然而,正式宣布所有这将有助于使用SGML文档处理工具。

文件标题和正文

最简单的HTML+文档如下所示:

<!DOCTYPE HTMLPLUS系统“HTMLPLUS.DTD”><头部><车身>

HEAD和BODY元素用于从文档正文中标记文档前端。这个HEAD包含与整个文档相关的所有元素。其中包括TITLE、ISINDEX、BASE、,META和LINK。制作文档的本地副本时,浏览器会插入BASE元素,并且记录原始URL。随后,当从本地副本。服务器应读取文档头以生成HTTP头,如“Expires:”。这些从META元素初始化,例如:

<meta name=“过期”value=“1993年12月4日星期二21:29:02 GMT”>

其他可能的名称有“Keywords”、“Created”、“Owner”(姓名)和“Reply To”(电子邮件地址)。此信息用于维护HTML文档的本地缓存。

超文本路径

作者可以通过网络创建导游。这些是使用HTML+文档定义的,其中的链接指定要呈现给用户的文档序列。锚元素中的NODE属性用于表示特定链接应构成路径的一部分,例如。

<P> 这是一个示例路径:<UL><LI><P>这是<A HREF=node1.html“NODE>第一个节点<LI><P>,这是第二个节点</UL>

您可以使用PATH属性来组成路径,以指示链接引用另一个路径,例如。

<A HREF=“path.html”path>将链接路径插入到当前路径中

用户可以通过浏览器工具栏(或导航菜单)上的“下一步”和“上一步”按钮沿路径移动。可以使用LINK元素定义其他按钮,以指定指向目录和作者的链接定义的书签。该规范允许通过HTTP协议。路径机制使用它来暗示活动路径和上一个/下一个路径的链接元素该路径中的节点。这些更丰富的导航机制旨在减少用户感到浏览复杂材质时“迷失在超空间中”。

下一个位置

继NCSA在X Mosaic上的开创性工作之后,大多数浏览器现在都支持简单的填写表单。目前,对表格和数字的支持很少。Viola对表格和NCSA的支持有限正在将这些功能添加到Mosaic中。作者的X11 HTML+浏览器应该有助于加快速度过程。HTML+的互联网草案于5月初失效,目前正在被替换通过Web以超文本形式提供。

信息提供者感兴趣的是使其文档以特定的样式显示区别于其他信息提供者。正在研究HTML+如何支持样式不限制平台独立性的信息。样式提示可以表示为文档标题的一部分并涵盖字体系列、文本颜色和大小以及元素周围空白的使用等方面。用途以及设置背景颜色和纹理的机会提供了创建独特的风格。另一个想法是使用LINK元素定义文档特定的工具栏。自定义图像可以使用SRC属性进行链接。直线图像目前仅限于GIF格式。一个天然的扩展将支持JPEG甚至MPEG。网络也缺少合成图像的功能来自多个来源。最好能够在位图图像上覆盖线条图形,或者说静态图像上的小视频插入。如何组合和协调还有很多工作要做多媒体源。ISO HyTime标准可能与此工作相关。

扩展万维网以包括虚拟现实的可能性正在另一篇文章中讨论本次会议的论文。作者还参与了对万维网进行改造的工作ATM网络在速度上比当前网络技术有了显著提高新型多媒体应用的机会,例如与语音电话服务集成邮件和视频电话。Web看起来为用户提供了一种极好的浏览方式多播“广播”和“电视”频道。HTML+有望作为超文本粘合剂发挥重要作用弥补了这些服务之间的差距,例如通过为用户提供浏览内容的方法指导和跟踪特定频道或视频点播的链接。

全球部署的公钥加密。免费实现浏览器和服务器的许可证费用的免除是预计将加速这些技术的广泛采用。有效目录服务的开发是也将发挥越来越重要的作用。商业服务的部署反过来将提供用于开发改进的浏览器和文档转换工具的资源,并为继续超媒体文档格式的演变。

进一步阅读

“HTML+(超文本标记格式)”戴夫·拉格特,1993年11月。
(这是过期的Internet草稿和旧版本的HTML+)

“HTML+文档类型定义”Dave Raggett,1994年4月。(DTD的最新版本)

“超文本标记语言(HTML)”Tim Berners-Lee,1993年1月。

“统一资源定位器”Tim Berners-Lee,1992年1月。

“色情和超媒体信息检索和操作协议”
Tim Berners-Lee,1993年。(规范的旧版本)

“HyTime超媒体/基于时间的文档结构语言”,
史蒂文·纽科姆、尼尔·A·基普和维多利亚·T·纽科姆。
ACM通信/91年11月/第34卷第11期第67-83页

“SGML手册”,Charles F.GoldFarb,酒吧。1990年由牛津克拉伦登出版社出版。