OPML 1.0 规范

2007-12-18 22:07:58

技术资料 OPML

关于本文档
本文档用于描述OPML(Outline Processor Markup Language)格式: 是一种用XML 1.0存储大纲内容的"大纲处理标记语言". "大纲"指满足这样条件的一棵树:其每个节点都有一组string类型的命名属性.

例子
"大纲"可用于规范, 法律条款, 产品计划, 演讲稿, 电影剧本, 通信录, 日记, 讨论组, 聊天系统和小说等."大纲处理器"是指使用户能读,写,识别"大纲"结构的程序.一些示例OPML文档: 播放列表, 规范, 演讲稿.

目标
OPML格式旨在为不同"大纲处理器"提供一种交换数据的方式.设计目标是简单,自描述,可扩展,人可阅读,能存储和表达很大范围内的数据,且能方便地浏览和编辑. 在版本的进化中将保持这种设计目标.一个技术人员在阅读一个网页后应该能完全理解这种格式.

这是一种开放的格式, 也就是说其他"大纲处理器"开发者和服务提供者可以为兼容Radio UserLand 或其他目的自由地使用此格式.

<opml>是什么?
<opml>是一个XML元素, 仅有一个必需的属性:version; 须具有一个<head>和一个<body>元素.version属性是一个版本信息字符串, 形如x.y, 其中x,y都是数字.

<head>是什么?
<head>包含如下所述的0个或多个属性:
<title> 文档标题.
<dateCreated> 文档创建时间.
<dateModified> 文档最后修改时间.
<ownerName> 文档拥有者.
<ownerEmail> 文档拥有者Email地址
<expansionState> 一个逗号分隔的展开行行号列表. 列表中的行号告知哪些标题(headline)是展开的. 顺序是很重要的. 如列表中的元素X, 则从头开始数X下, 那一行应该是展开的.
<vertScrollState> 是一个数字,它指示了大纲的哪一行应该在窗口的最上面.该数字是在考虑了"展开状态"后计算出来的.
<windowTop> 是一个数字,指示了窗口的上沿的位置.
<windowLeft> 是一个数字,指示了窗口的左侧的位置.
<windowBottom> 是一个数字,指示了窗口的下沿的位置.
<windowRight> 是一个数字,指示了窗口的右侧的位置.

<head>注意事项
<head>的子元素有可能被程序忽略. 如果一个大纲在另一个大纲中打开, 程序不能使用windowXxx元素, 因为这些元素只定义了该大纲自身在窗口中打开时大小和位置.

所有日期时间相关的元素,格式服从RFC 822.

你在程序中加载opml时, 可以自由决定是否使用expansionState. 定义它是因为有时可能需要用到.

<body>是什么?
<body> 包含一个或更多的<outline> 元素

<outline>是什么?
一个<outline> 是一个可能包含一个或多个属性及任意数目<outline>子元素的XML元素.

常用属性:
text: 在浏览或编辑大纲时显示的文字. 无长度限制.
type: 借以说明其他属性的意义.
isComment: 取值为"true" 或 "false"的字符串, 指示该outline是否是评论. 按惯例如果一个outline是评论,其子元素outline也都是评论. 如果无此属性,则表示非评论.
isBreakpoint: 取值为"true" or "false"的字符串, 指示该outline是否设置了断点. 该属性主要是用于编辑和运行脚本的outline. 如果无此属性,则表示未设置断点.

兼容性
1.0版本之前有个根元素outlineDocument. Radio UserLand会继续读取该元素outlineDocument. .

限制
<outline>元素的属性和子元素数目无限制.

注意
OPML是一种文件格式, 不是协议.

一般说来,通过HTTP 获取OPML文档时MIME类型为text/xml.

Copyright and disclaimer
&copy; Copyright 2000 UserLand Software, Inc. All Rights Reserved.