|
前页|后页| 目录|元素| 特性 SGML简要指导关于标准通常标注语言(Standard Generalized Markup Language, SGML,在[ISO8879] 定义),是一种用来定久标注记号的语言.HTML就是SGML的一 种"应用".一个SGML应用程式包含下列列部分
HTML语法在这部分中,我们讨论HTML元素,特性和注解的语法.统一地字符条目是可以被包含于一份HTML文档的数字或符号字 符名称.当你的作者工具在输入不常输入的字符时遇上困 难或根本无法输入时它就有用了.你可以在这份文档中看 到这些字符条目,它们以"&"符号开始并以分号(;)结束.我们将在以后的HTML字符条目 中讨论这些细节,参见HTML文档字符集的章节. 元素一个SGML的应用定义元素的结构和希望的行为.一个典型 的元素由三部分组成:一个开始标记,内容,一个结 束标记.一个元素的开始标记写作<element-name>,这里的
element-name是元素名称.一个元素的结束标记在开
始标记前加上一个斜杠:</element-name>.
一些HTML元素没有内容.如,换行元素BR 没有内容;它的唯一作用就是终止一行文字.如"empty"元素 从来没有结束标记.在参考手册中的每一个元素的定义都 指出是不可以为空(没有内容),如果能够有内容,则讨论什 么是合法内容. 元素名称经常是大小写无关的. 元素不是标记.某些人们不正确地 认为元素就是标记.(如说成"P标记").记住,元素是一件事, 而标记(无论是开始标记不是结束标记)则是另一件事.例 如,HEAD元素经常存在,而HEAD开始标记和结束标记甚至可 以不存在于标注中. 特性元素可能有相关的属性,叫做特性, 作者对分配值. 特性/值对出现在元素开始标记最后的">"之前.在元素开 始标记中可以出现任意数量的(合法的)特性数值对,用空 格分开.它们可以用任意次序出现. 此例中,为H1 元素设定align 特性:<H1 align="center"> This is a centered heading thanks to the align attribute </H1>缺省的,SGML要求你用双引号(")或单引号(') 括起所有的特性值.单引号可被用双引号括起的特性值包 含或反之.你也可以使用编号字符条目来显示双引号(") 和单引号(').对于双引号,你还可以使用命名字符 条目". 在一定情况下,可能在HTML中指定特性的值而无需任何 引号.特性值只能包含字母(a-z 和A-Z),数字(0-9),短线(10 进制ASCII码45)和小数点(10进制ASCII码46).我们建议即使 在可以无须的情况下也使用引号. 特性名称一直是大小写无关的. 特性值通常是大小写元关的.在参考手册中每个特性的 定义时指出它的值是否大小写无关. 注意:HTML文档可以被压缩得更小如果使 用小写字母来标识元素和特性名称.这个原因是压缩算法 的工作更流畅于重复的参数而对于大写字母来说小写字 母也更流畅. HTML注释HTML注释具有以下的语法:? <!-- this is a comment --> <!-- and so is this one, which occupies more than one line -->注释必须不作为文档的一部分被用户代理器渲染. 类似地, 用户代理器必须不渲染SGML处理指导(如 <?full volume>). 如何阅读HTML DTD这份说明明书在每个元素或特性定义处说明DTD片断.因 此,首先是隐藏的和阻止的,DTD片断给出关于元素和其特 性的简明信息.我们选择包含在这份说明书中的DTD片断 的超过更多相宜性的搜寻,但在元素描述里有或多或少的 精确含义.几乎所有的定义使用了充分的英语来使它们具 有全面性,对于那些需要定义信息的人们,我们完成了这 篇关于阅读HTML DTD的规格书.封闭级别和内层元素当其它的元素被叫做"内层(inline)"(也称之为"文本级(text level)")时一定的HTML元素被叫做"block level (封闭级)".它们 之间的区别有数个:
封闭级的和内层元素的典型展现习惯的轮替也有一个 对于双向文本运算法则的冲击.参见风格页对于双向性的影响 章节获得更多信息. DTD注释在DTD中,注释可以单独存在一行或更多行中.在DTD中,注 释通过一对"--"符号来包含,如.<!ELEMENT PARAM - O EMPTY -- named property value -->这里,注释"named property value"解释了PARAM 元素的使用.HTML的DTD注释没有标准的值. 条目定义HTML DTD开始于一系列的条目定义. 一个条目定义(不要与SGML条目混淆)这下为一种 可以DTD任意地方扩展的宏.当这个宏通过名称在DTD中被 指定,它扩展为一个字符串.一个条目定义以关键词<!ENTITY%开始后随条 目名称,引号包括了要扩展的条目,最后用一个结束符>. 下面的例程定义了一个%font条目并将被扩展. <!ENTITY % font "TT | I | B | U | S | BIG | SMALL"> 条目扩展的字串可以包含其它的条目名称.这些名称的户 展是恢复性的.下在的例程中,%inline条目被定义为 包含%font,%phrase,%special和%formctrl 条目. <!ENTITY % inline "#PCDATA | %font | %phrase | %special | %formctrl"> 你将会频繁地遇到两种DTD条目在HTML DTD中:%inline 和%block.它们在内容模块包含内层或封闭 元素时被使用. 元素定义HTML DTD 的主体由元素定义和它们的特性组成. <!ELEMENT> 关键词以一个元素定义开始并以>字符结束.在此之间则 定义了:
<!ELEMENT UL - - (LI)+>
<!ELEMENT IMG - O EMPTY>
内容模板定义内容模板描更述了元素中可以包含些什么.内容定义可以 包括:
内容模板使用下列的语法来定义哪些标记是元素内容 允许:
OPTION元 素只能包含文字和条目,如& <!ELEMENT A - - (%text)* -(A)>注意那个A元素 是DTD%inline条目的一部分,但被显式地因为-(A) 被排除了. 类似的,下例的FORM 定义阻止表单的嵌套: <!ELEMENT FORM - - %block -(FORM)> 特性定义<!ATTLIST>关键词开始一个元素可以使用的特性的定义. 下面是正在讨论的元素的特性定义列表.一个特性定义具 有三层涵义:
<!ATTLIST MAP name CDATA #IMPLIED ?>这个特性允许的值的类型为CDATA,一种SGML数据类型.CDATA 是一种可以包含字符条目的文本. 关于更多的"CDATA","NAME","ID"和共它的数据类型的信息, 请参见HTML数据类型章节. 下面的例程说明了可能的特性定义: rowspan NUMBER1--number of rows spanned by cell -- http-equiv?NAME#IMPLIED?--HTTPresponse header name?-- id ID#IMPLIED?--document-wide unique id --? valign (top|middle|bottom|baseline)#IMPLIEDrowspan特性需要NUMBER类型的值.缺省值"1"被显式 地给出.可选http-equiv特性需要NAME类型的值.可选 特性id需要ID类型的值.可选特性valign被 考虑为从集{top,middle,bottom,baseline}中取得值. 在特性定义中的DTD条目特性定义也可以包含DTD元素. 在此例中,我们看到LINK 元素的特性定义列表element begins with the %attrs entity.<!ATTLIST LINK ?%attrs;--id,class,style,lang,dir,title -- ?href %URL#IMPLIED?--URLfor linked resource -- ?...more of the definition... ?>%attrs 条目扩展为: <!ATTLIST P ?id ID #IMPLIED ?-- document-wide unique id -- ?class CDATA #IMPLIED?-- comma list of class values -- ?style CDATA #IMPLIED ?-- associated style info -- ?title CDATA #IMPLIED?-- advisory title/amplification --? ?lang NAME #IMPLIED?-- [RFC1766] language value -- ?dir (ltr|rtl)?#IMPLIED?-- direction for weak/neutral text -- ?align (left|center|right|justify)?#IMPLIED ?>%attrs 条目被合适地定义了大多数HTML元素的七种特性. 类似的,DTD定义了作为护展为CDATA的%URL条目. <!ENTITY % URL "CDATA" -- The term URL means a CDATA attribute whose value is a Uniform Resource Locator, See [RFC1808] and [RFC1738] -->这个例程说明,这个%URL条目提供DTD读者更多的特性期望 的数据类型信息.类似的条目定义为%color,%Content-Type,%Length, %Pixels 等等. 布尔特性某些特性担任布尔特性的角色(如selected). 它们在一个元素的开始标记中的出现暗示特性值为"true". 它们缺席则隐式表示"false".布尔特性可以有一个合法的简单值:特性名称本身.(如 selected="selected"). 这个例程定义了selected 特性为一个布尔特性. selected (selected)?#IMPLIED?--reduced interitem spacing --这个特性通过出现于元素开始标记被设为"true": <OPTION selected="selected"> ...contents... <OPTION>最小化布尔特性在HTML中,布尔特性 可能出现在一个"最小化表单"--特性的值出现于元素的 开始标记.因此: <OPTION selected>替代为 <OPTION selected="selected">作者应当知道许多用户代理器只识别最小化表单而非 完整表单. |