文章摘要
这篇文章简要介绍了Atom(一种网络内容联合格式)的基本概念和文档结构,包括Atom feed的必需、推荐和可选元素,以及entry元素的分类和常见结构。文章还提供了示例feed和相关文档链接,帮助用户了解Atom的语法验证和使用方法。
文章总结
Atom格式简介
什么是Atom?
Atom是一种基于XML的Web内容与元数据联合格式,同时也是用于发布和编辑周期性更新网站资源的应用层协议。所有Atom订阅源都必须是符合规范的XML文档,并使用application/atom+xml媒体类型标识。
文档说明
本文档重点介绍由IETF AtomPub工作组制定的《Atom联合格式》。若与互联网草案存在差异,以互联网草案为准。
关键规范要求:
- 所有元素必须位于http://www.w3.org/2005/Atom命名空间
- 时间戳需符合RFC 3339标准
- 默认使用纯文本值(不包含HTML实体编码)
- 可通过xml:lang标识人类可读文本的语言
- 可通过xml:base控制相对URI解析方式
订阅源示例
xml
<feed xmlns="http://www.w3.org/2005/Atom">
<title>示例订阅源</title>
<link href="http://example.org/"/>
<updated>2003-12-13T18:30:02Z</updated>
<author><name>张三</name></author>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry>
<title>Atom驱动的机器人失控</title>
<link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>示例文本</summary>
</entry>
</feed>
订阅源元素
必需元素
| 元素 | 说明 |
|---------|----------------------------------------------------------------------|
| id | 使用永久唯一URI标识订阅源,建议使用长期有效的域名(如<id>http://example.com/</id>) |
| title | 人类可读的订阅源标题,不应为空(如<title>示例公司</title>) |
| updated | 最后修改时间(如<updated>2003-12-13T18:30:02Z</updated>) |
推荐元素
| 元素 | 说明 |
|---------|----------------------------------------------------------------------|
| author | 至少包含一个作者信息,除非所有条目都包含作者(包含name/email/uri子元素) |
| link | 相关网页链接,必须包含指向订阅源自身的链接(如<link rel="self" href="/feed" />) |
可选元素
| 元素 | 说明 |
|--------------|-----------------------------------|
| category | 分类标签(如<category term="体育"/>) |
| contributor | 贡献者信息 |
| generator | 生成订阅源的软件信息 |
| icon/logo | 标识图标/标志图像 |
| rights | 版权信息 |
| subtitle | 副标题/描述 |
条目元素(适用于单篇内容)
必需元素
| 元素 | 说明 |
|---------|----------------------------------------------------------------------|
| id | 唯一标识符(如<id>http://example.com/blog/1234</id>) |
| title | 人类可读的条目标题(如<title>Atom驱动的机器人失控</title>) |
| updated | 最后修改时间(如<updated>2003-12-13T18:30:02-05:00</updated>) |
推荐元素
| 元素 | 说明 | |----------|----------------------------------------------------------------------| | author | 作者信息(当订阅源未指定作者时必须包含) | | content | 完整内容(若无替代链接则必须提供) | | link | 相关链接(若无内容元素则必须提供替代链接) | | summary | 内容摘要(当内容非内联或为base64编码时应提供) |
可选元素
| 元素 | 说明 | |--------------|-----------------------------------| | category | 分类标签 | | contributor | 贡献者信息 | | published | 首次发布时间 | | rights | 条目版权信息 | | source | 源订阅源元数据(适用于复制内容) |
通用结构
- 分类:包含必选属性term,可选属性scheme和label
- 内容:可通过type属性指定文本/HTML/XHTML类型,或通过src引用外部内容
- 链接:包含href属性,可通过rel指定关系类型(alternate/enclosure/related等)
- 人员信息:包含必选name元素,可选uri和email元素
- 文本:通过type属性控制编码方式(text/html/xhtml)
扩展机制
Atom支持通过XML命名空间引入其他词汇表: - 可在link元素的rel属性中使用任意完整URI - 支持在任意位置引入其他命名空间的元素 - 兼容大多数RSS 1.0和RSS 2.0模块
相关资源
(注:本文已过滤原始文档中的导航菜单、页脚信息及装饰性图片等非核心内容)
评论总结
评论总结:
怀旧与复兴
- 有用户感叹Atom格式的回归("what is old is new again?" - perrohunter)
- 另一用户表示这是"过去的回忆"("blast from the past" - drob518)
技术实用性
- 用户认为Atom格式简单易用("reasonable, easy format" - mplanchard)
- 有开发者提到Google早期API曾使用Atom("First iteration of Google's APIs were atom" - intrasight)
与RSS的对比
- 用户不清楚Atom与RSS的区别,但认为Atom规范更好("better spec" - tkcranny)
- 指出Atom是20年前未流行的RSS替代方案("alternative to RSS...didn't catch on" - eterevsky)
命名混乱与历史
- 调侃"Atom"名称被过度使用("more Atoms...than atoms in the universe" - rippeltippel)
- 提及Aaron Swartz曾参与开发("Aaron Swartz was one of the contributors" - echelon)
(注:所有评论均无评分数据,观点平衡呈现)