组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:吴晓波(why_wxb why_wxb@sina.com) 译文发布时间:2001-6-15 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档 的翻译及版权信息。
Network Working Group M. Rose Request for Comments: 2629 Invisible Worlds, Inc. Category: Informational June 1999
用XML 写I-Ds 和 RFC文档 (RFC2629 Writing I-Ds and RFCs using XML)
关于本文档资料
本文档资料提供了一些关于网络通信的信息,没有详尽的描述某一种特定的标准。本文档资料的 可扩展性是无限的。
版权声明 Copyright (C) The Internet Society (1999). All Rights Reserved.
概述
本文档资料描述了使用可扩展标志语言(XML)为格式来描述I-Ds 以及RFC系列文档。
内容一览
简介 . . . . . . . . . . . . . . . . . . . . . . . 2
使用DTD描写I-Ds和RFCs . . . . . . . . . . . . . 2 2.1 XML 基础. . . . . . . . . . . . . . . . . . . . . . 2 2.2 开头(Front matter) . . . . . . . . . . . . . . . .. 4 2.2.1 title元素 . . . . . . . . . . . . . . . . . .. . . 5 2.2.2 author元素 . . . . . . . . . . . . . . . . . . . . . 5 2.2.3 gate元素 . . . . . . . . . . . . . . . . . . . . . . 5 2.2.4 Meta Data 元素 . . . . . . . . . . . . . . . . . . . 5 2.2.5 abstract元素 . . . . . . . . . . . . . . . . . . . . 6 2.2.6 note 元素 . . . . . . . . . . . . . . . . . . . . . . 6 2.2.7 状态, 版权声明, 内容列表 . . . . . . . . . . . . . . 6 2.2.7.1 顺应 RFC 2026 . . . . . . . . . . . . . . . . . . . 6 2.2.8 初始. . . . . . . . . . . . . . . . . . . . . . . . .7 2.3 中间层 . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.1 section元素 . . . . . . . . . . . . . . . . . . . . 8 2.3.1.1 t 元素 . . . . . . . . . . . . . . . . . . . . . . .8 2.3.1.2 list 元素 . . . . . . . . . . . . . . . . . . . . . .9 2.3.1.3 figure 元素 . . . . . . . . . . . . . . . . . . . . .9 2.3.1.4 xref 元素 . . . . . . . . . . . . . . . . . . . . . 10 2.3.1.5 eref 元素 . . . . . . . . . . . . . . . . . . . . . 11 2.3.1.6 iref 元素 . . . . . . . . . . . . . . . . . . . . . 11 2.3.1.7 vspace 元素 . . . . . . . . . . . . . . . . . . . . 11 2.4 附属资料 . . . . . . . . . . . . . . . . . . . . . 12 2.4.1 参考元素 . . . . . . . . . . . . . . . . . . . . . . 12 2.4.2 附录 . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.3 版权情况 . . . . . . . . . . . . . . . . . . . . . .13
处理XML源文件 . . . . . . . . . . . . . . . . . .. 13 3.1 编辑 . . . . . . . . . . . . . . . . . . . . . . . 13 3.1.1 检查 . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 转换成文本格式 . . . . . . . . . . . . . . .. . . . 14 3.3 转换成HTML 格式 . . . . . . . . . . . . . . . . . . 14 3.4 视图 . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 查找 . . . . . . . . . . . . . . . . . . . . . . . .14
安全问题 . . . . . . . . . . . . . . . . . . . . . . 4 参考 . . . . . . . . . . . . . . . . . . . . . . . . 15 作者地址 . . . . . . . . . . . . . . . . . . . . . . 15 A. rfc 元素 . . . . . . . . . . . . . . . . . . . . . .15 B. RFC DTD . . . . . . . . . . . . . . . . . . . . . . 16 C. 其他 . . . . . . . . . . . . . . . . . . . . . . . . 19 索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 全部版权声明 . . . . . . . . . . . . . . . . . . . . . . . . . 21
简介
本文档资料描述如何用可扩展标志语言[1] (XML)写I-D 和RFC文挡。本文档有三个目标:
对于类似RFC的结构简单的文档,使用简单的XML DTD(文档类型定义)就能满足处理要求,同时 也允许有复杂的描述性特征.
描述可处理XML源文件的软件,包括一些工具,可以产生符合RFC 2223 [2], HTML格式等的文档.
讨论使用XML作为RFC-like 文档的源格式的政治上的分支超出了本规章的范围. 我们宁愿说XML 只是在纯文本的基础上加上最少的变化:
o 允许使用所熟悉的编辑器编辑传统的类似 RFC 文档文本;
o 在已有的软件环境中需要加入一些东西,虽然很少;
o 允许使用有组织的或无组织的机制进行信息的组织,查询和抽取.
使用 DTD 写I-Ds 和 RFC
本章节没有提供对XML的正式的或全面的描述.而只是讨论了使用文档类型申明(DTD)写类似RFC 文 档所需要的内容.
如果你已经对XML很熟悉,那就跳到附录B直接去看DTD.
2.1 XML基础
写XML时得规则很少,语法也很简单.有以下五点需要注意:
一个 "元素"通常指一个开始标签, 一个结束标签, 及之间的所有字段,例:
"
一个"empty 元素" 包含了开始标签和结束标签,如"
"attribute"是元素的一部分. 如果有,它们出现在开始标签中,如 "
"entity"是一段以"&"开始的宏文本,不要感到麻烦,只有需要在文本中要有 "&"或 "<"符号时 才会用到它.
"token" 是字符型字段.以字母或下划线("_")开头. 后面的字符只能是字母,数字, 下划线或者 句点(".").
首先,你的XML源程序应从XML申明开始,接着是DTD引用,然后是"rfc" 元素.
<?xml version="1.0"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<rfc>
...
</rfc>
不用去管前两行—申明和引用—只要把它们看成是透明的就行了. ""标签之后不能再出现 其他任何东西.
其次,保证所有的元素是完全匹配且是正确嵌套的.
一个完全匹配的元素是以"
<outer>
...
<inner>
...
</inner>
...
</outer>
是正确嵌套的.
但是,
<outer>
...
<inner>
...
</outer>
...
</inner>
元素出现交叉, 所以元素没有正确嵌套.
第三,永远不要在文档里使用 "<" 或 "&" 等. 而应该分别使用 "<" 或 "&".
第四, XML中有两种引用特征符号, '单引号' 和 "引号". 要保证所有的属性值都是被引用的.例:
"
如果你想在源文件中加入注释,其语法如下:
最后请注意, XML 是区分大小写的.
2.2 开头部分
紧跟在"
(请注意在所有的例子中的文字缩进只是为了解释得更清楚.)
"front" 元素包含有一个 "title" 元素, 一个或多个 "author" 元素, 一个 "date" 元素, 一个或 多个可选的 "area" 元素, , 一个或多个可选的"workgroup" 元素, 一个或多个可选的 "keyword" 元 素, 一个可选的"abstract" 元素. 还有, 一个或多个可选的"note" 元素.
2.2.1 title 元素 "title" 元素标识了文档的标题. 因为标题是在文档的开头部分(符合[2]的格式), 如果标题长度超 过 42 个字符, 就需要提供一个简称,如,
<title abbrev="Much Ado about Nothing">
The IETF's Discussion on "Source Format of RFC documents"
</title>
2.2.2 author 元素
每一个 "author" 元素标识了一个文档的作者.因为一篇文档可能不只一个作者,所以可以出现一个
以上的"author" 元素. 如果作者是人名,则"
"author" 元素本身包含了一个"organization" 元素和一个可选的 "address" 元素.
"organization" 元素类似与 "title" 元素, 表示一串很长的组织名,其中用"abbrev" 属性表示它 的简称,如,
"address" 元素包含一个可选的"postal" 元素, 一个可选的 "phone" 元素, 一个可选的 "facsimile" 元素, 一个可选的 "email" 元素, 和一个可选的 "uri" 元素. "postal" 元素包括一个或多个"street" 元素,后面跟着以下元素的组合: "city", "region" (国 家或省份), "code"(缩略号或邮政编码), 和"country" 元素,如:
<postal>
<street>660 York Street</street>
<street>M/S 40</street>
<city>San Francisco</city> <region>CA</region>
<code>94110</code>
<country>US</country>
</postal>
这里的弹性机制兼容了不同国家不同格式的邮政地址.但要注意,这里虽然没有提及 "city", "region", "code", 和 "country" 元素的顺序, 大多数情况下每一个都会出现. 然而这些元素在XML 应用程序处理过程中不能重复出现. (如, 显示程序应能保持包含在这些元素的信息的顺序).
最后, "country" 元素的内容应该是符合ISO 3166的双字节码. "phone", "facsimile", "email", 及"uri" 元素都只能出现一次,如:
<phone>+1 415 695 3975</phone>
<email>mrose@not.invisible.net</email>
<uri>http://invisible.net/</uri>
2.2.3 date 元素 "date" 元素标识了文档的出版时间,它包括一个"month" 和一个"year", 如:
"area" 元素标识了文档的大致范畴, (如, "Applications", "General", "Internet", "Management", "Operations", "Routing", "Security", "Transport", 或 "User"中的一个), 而 "workgroup" 元素标识了制订本文档的IETF工作组,"keyword" 元素标识了一些有用的搜索条件.
2.2.5 abstract 元素
一篇文档可能有一个 "abstract" 元素,它包含了一个或多个 "t" 元素(见2.3.1.1).一般地说,只 有一个"t" 元素会出现,如,
2.2.6 note 元素
一篇文档可以有一个或多个 "note" 元素, 其中每一个元素可以包含一个或多个"t" 元素 (见
2.3.1.1). 其中有一个必须的"title"属性.一般地说, "note" 元素包含从IESG来的文本, 例:
<note title="IESG Note">
<t>The IESG has something to say.</t>
</note>
2.2.7 状态, 版权申明,目录
注意到有关文档状态, 版权申明,或目录等内容并没有包含在文档中 –当XML应用程序创建文本文 档或HTML文档时,它会被自动插入到XML应用程序中.
2.2.7.1 与 RFC 2026相一致
如果提出了Internet草案,则 "ipr"必须在文件开始处加入到"
noDerivativeWorks2026: 说明此文档是完全顺应 RFC 2026第10章规定,但没有经过授权不能有相 关派生工作. 或:
none: 说明此文档不是顺应 RFC 2026第10章规定的,除了作为Internet草案出版之外,作者不提供 予其它任何权利. 后面这种情况, XML应用程序在创建过程中不会自动插入版权申明.
更多详细情况请参阅 [3].
最后,如果该Internet草案是被提交到自动处理过程中, 则 " docName "必须在文件开始处加入到
"
<rfc ipr="full" docName="draft-mrose-writing-rfcs-01">
...
</rfc>
2.2.8 开始中的一切 现在, 把它们连在一起,我们有下例,
<front>
<title>Writing I-Ds and RFCs using XML</title>
<author initials="M.T." surname="Rose"
fullname="Marshall T. Rose">
<organization>Invisible Worlds, Inc.</organization>
<address>
<postal>
<street>660 York Street</street>
<street>M/S 40</street>
<city>San Francisco</city> <region>CA</region>
<code>94110</code>
<country>US</country>
</postal>
<phone>+1 415 695 3975</phone>
<email>mrose@not.invisible.net</email>
<uri>http://invisible.net/</uri>
</address>
</author>
<date month="February" year="1999" />
<area>General</area>
<workgroup>RFC Beautification Working Group</workgroup>
<keyword>RFC</keyword>
<keyword>Request for Comments</keyword>
<keyword>I-D</keyword>
<keyword>Internet-Draft</keyword>
<keyword>XML</keyword>
<keyword>Extensible Markup Language</keyword>
<abstract>
<t>This memo presents a technique for using XML
(Extensible Markup Language) as a source format
for documents in the Internet-Drafts (I-Ds) and
Request for Comments (RFC) series.</t>
</abstract>
</front>
2.3 Middle
"middle" 元素包含文档的除参考书目和附录之外的所有章节:
...
</front>
<middle>
<section ...>
<section ...>
<section ...>
</middle>
<back>
...
"middle" 元素包含一个或多个"section" 元素s.
2.3.1 section 元素
每一个"section" 元素包含了文档的一个章节. 有一个必须的属性,就是 "title",标识了该章节的 标题.还有一个可选的属性"anchor", 它和 "xref" 元素一起使用,以能进行联结. (见 2.3.1.4), 例:
<section anchor="intro" title="Introduction">
...
</section>
"section" 元素是可以递归的 – 每一个元素可以包含以下 "t", "figure", 和 "section" 元素的 任意组合,如,
<section title="The Middle">
...
<section title="section 元素">
...
<section title="t 元素">...</section>
<section title=" list 元素">...</section>
<section title=" figure 元素">...</section>
<section title="xref 元素">...</section>
<section title=" eref 元素">...</section>
<section title=" iref 元素">...</section>
</section>
</section>
2.3.1.1 t 元素
"t" 元素可包含任意段落,列表和图片的组合. 如果在章节,图片或者参考中需要有交叉联结 (cross-reference),则可以使用 "xref" 元素 (见2.3.1.4) ;同样,如果有外部联结,则使用"eref" 元 素(见 2.3.1.5). "iref" 元素可以提供文本的索引 (见 2.3.1.6).
2.3.1.2 list 元素
"list" 元素包含一个或多个条目.每一个条目是一个 "t" 元素, 允许递归, 如,
<list style="numbers">
<t>The pfirst item.</t>
<t>The second item, which contains two bulleted sub-items:
<list style="symbols">
<t>The first sub-item.</t>
<t>The second sub-item.</t>
</list>
</t>
</list>
"list" 元素有一个可选的属性"style",其值可以为"numbers" (数值型列表), "symbols" ( 子弹
型列表), "hanging" (悬挂型列表), 或, "empty" (锯齿型列表). 如果 "list" 元素是嵌套的,它的 缺省值来自于它最近的父元素,否则它的缺省值是 "empty".
嵌套了"hanging list" 元素时, "t" 元素有一个可选属性 "hangText",它标识了被插入的文本,
如:
<list style="hanging">
<t hangText="full2026:">indicating that the document is in
full conformance with all the provisions of Section 10 of RFC
2026;</t>
<t hangText="noDerivativeWorks2026:">indicating that the
文档 is in full conformance with all the provisions of
Section 10 of RFC 2026 except that the right to produce
derivative works is not granted; or,</t>
<t hangText="none:">indicating that the document is NOT
offered in accordance with Section 10 of RFC 2026, and the
author does not provide the IETF with any rights other than
to publish as an Internet-Draft.</t>
</list>
2.3.1.3 figure 元素
"figure" 元素组合了一个可选的"preamble" 元素, 一个"artwork" 元素, 及一个可选的
"postamble" 元素."figure" 元素还有一个可选的属性 "anchor" ,它和 "xref" 元素一起使用用来进 行交叉联结 (见 2.3.1.4).它还有一个可选属性,用来标识图片的标题.
"preamble和 "postamble" 元素如果出现,只是简单的文本. 如果在章节,图片或者参考中需要有交 叉联结(cross-reference),则可以使用 "xref" 元素 (见2.3.1.4) ;同样,如果有外部联结,则使用 "eref" 元素(见 2.3.1.5). "iref" 元素可以提供文本的索引 (见 2.3.1.6).
"artwork" 元素是必需的,它包含 "ASCII artwork". 它不象在"t", "preamble",或 "postamble" 元 素中包含文本, "artwork" 元素中水平和垂直的whitespace 都是有意义的.
现在, 把它们连在一起,我们有下例,
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8