OPDS全称是Open Publication Distribution System开放式出版发布系统,是基于Atom和Http的一种目录格式。现有的OPDS目录能实现2个功能:
1、能让电子出版物被发现,可以使用简单的搜索和一些其他的浏览器技术。
2、能让用户下载电子出版物,直接免费下载或进行出售。
OPDS目录是由一组一个或多个Atom Feeds,使用了Atom条目自己的列表,只是在上层进行了组合。Atom Feeds将OPDS目录分成2类,导航的Feeds,创建一个用于浏览的层次;购买的feeds,列出电子出版物,以及详细信息。在购买feeds的每个Atom条目中包含了电子出版物的基本元数据有关的信息,例如出版社,出版物格式以及出版物所在的地址。这些基本信息被包含在Atom条目中的一个最小完整元数据子集,是具有更加广泛、独立的代表性URI链接描述。
OPDS目录可能会被合并,用于组成更大的OPDS目录。
英文名称 说明 Acquisition Feed 在Atom feed中专用于OPDS目录的的一个Atom条目 Acquisition Link 一个Atom:link元素,存在以"http://opds-spec.org/acquisition"开头的关系,链接到出版物的内容或资源,通过该链接,任何OPDS目录可获得资源的条目。 Complete Catalog Entry OPDS目录的条目,其中包含所有的相关元数据的描述以及引用部分的目录条目。 Facet 一个Acquisition Feed的替代方案或子集。在OPDS目录中,表示一个用于销售的Atom:link。 IRI Internationalized Resource Identifier 国际化资源标识符 Navigation Feed 导航feed,这个Atom feed的条目不是OPDS目录条目,而是链接到其他导航feed、销售feed或其他资源,用于建立一个层次关系,方便对OPDS目录进行浏览。 OPDS Catalog 所有的Atom feed包括导航和销售,加上部分或全部的条目,一起组成了OPDS规范中描述的统一的开放式的电子出版物定义。 OPDS Catalog Entry 一个Atom条目,提供了一个可描述出版物的基本信息包含销售链接。会被序列化成OPDS目录项文件。 OPDS Catalog Entry Document OPDS规范中对atom:entry的重定义。其实就是Atom:entry。 OPDS Catalog Feed Document OPDS规范中对atom:feed的重定义。其实就是Atom:feed。 OPDS Catalog Root 表示完整的OPDS目录,指一个销售的feed或者是一组导航的feeds。外部链接到OPDS目录时应引用OPDS的跟目录资源。 Partial Catalog Entry OPDS目录的条目,其中包含所有最少的必需的元数据的描述,没有其他的元数据,并且链接到完整的OPDS目录上。 Publication 指一个电子文件,通常可作为一个单一的文件。OPDS目录中定义的出版物与格式无关。 relation (or "relation of") 指的是Atom:link的ref 属性(attribute). Representation 一个包含请求或相应的条目,指http相关请求和响应。 Resource 网络资源,可被IRI定义。 URI Uniform Resource Identifier,统一资源标识符
OPDS的规范定义了2种类型的documents — OPDS Catalog Feed Documents and OPDS Catalog Entry Documents。
一个OPDS Catalog Feed 其实就是Atom中atom:feed的重定义。
一个OPDS Catalog Entry其实就是Atom中atom:entity的重定义。
以上2种元素的命名空间的名字,在OPDS的规范中定义的是:http://opds-spec.org/2010/catalog
上述二种documents都是需要定义在正确的命名控件名称下面。OPDS的规范中的命名控件使用前缀”opds:”。前缀”atom:”是用在Atom联合格式中的。(“http://www.w3.org/2005/Atom”)。前缀”dc:”是用在Dublin Core Metadata Initiative (DCMI) Metadata Terms 中(http://purl.org/dc/terms/)。
OPDS Catalogs的提供者必须保证OPDS Catalog Feed和OPDS Catalog Entry在Atom和OPDS中的一致性。
另外,任何在OPDS Catalog中的Atom feed或Atom Entry无法识别的标记,都被当作"foreign markup"。Foreign markup可以在任何OPDS Catalog中使用,除非特别声明此处禁止使用。遇到foreign markup的处理器不能停止处理,绝不能发出错误信号。传输或聚合这些文件时,客户应保护外国标记。
命名空间名称“http://opds-spec.org/2010/catalog”向前兼容OPDS目录格式修订保留。这并不排除除了处理器符合本规范可能不被确认的元素和属性。从“http://opds-spec.org/2010/catalog”命名空间等无法识别的标记,必须被视为外国标记。
OPDS Catalog Feed Documents
OPDS Catalog Feed 是Atom Feeds,主要功能有2点:
1、构建一个导航到其他的OPDS Catalog Feed 或其他资源的导航树。跟导航链接功能类似。
2、作为一个展现OPDS Catalog Entries的容器,这一类的对象可以导航到购买的feeds等。
虽然OPDS目录出版商针对导航的feed提供了一个建议的层次,但是OPDS catalog feed可能包含其他关系,所以也允许其他消费和显示方法。
每个OPDS catalog feed必须是导航feed或者购买feed,二选一。购买的feed可以确定每个Atom条目链接是否存在。
OPDS Catalog Root
OPDS的根目录是顶级的OPDS目录提要文档。可以是一个简单的收购feed或一套导航feed的开始。每一个OPDS目录必须有一个跟目录,且只能有一个。OPDS目录资源的外部链接应该使用OPDS的根目录的IRI。每个OPDS目录的提要文档应该包含一个atom:link元素的“开始”,它引用的OPDS目录根资源的链接关系。
Navigation Feeds
导航feed是一个为OPDS catalog feed document创建演示和浏览层次的Atom Entries。一个导航feed不能包含OPDS catalog Entries,必须包含一些链接到其他的导航或收购feed或其他资源的Atom Entries。每个Atom entry的“atom:content”元素应该包含链接资源的简要说明。导航feed应该使用“type”属性,值为:“application/atom+xml;profile=opds-catalog;kind=navigation”,OPDS目录供应商应该选择最好的OPDS目录的关系,如果没有其他的关系比较合适,则使用”subsection”这个关系。
Acquisition Feeds
收购feed是一个将OPDS目录条目收集到一个有序的单一的OPDS catalog feed document。最简单的完整的OPDScatalog列出了所有可用的OPDS目录条目是从某个供应商获取的单一的收购feed。在更复杂的OPDS目录中,用与收购feed的呈现并组织相关的OPDS目录条目,用于供客户端浏览和发现以及聚合。
收购feed的链接使用“type”属性,其值为:“application/atom+xml;profile=opds-catalog;kind=acquisition”。收购feed是可以通过分页获取部分目录条目的,可以压缩feed的大小。
OPDS Catalog Relations
OPDS目录源文件应包括链接到其他可用的收购和导航饲料和其他相关资源,鼓励自主导航。这些关系可能被用于由客户提供额外或替代的导航,在导航饲料或收购饲料。
派生出的关系:
“start”:OPDS的根目录
“subsection”:一个更具体的针对导航feed的描述 关系
当创建一个导航或收购的OPDS目录时,OPDS目录提供商鼓励使用本规范中定义的相关关系。如果没有找到合适的关系来描述,feeds应该使用一个描述性的“atom:title”,“atom:link”也需要使用一个描述性的“atom:title”属性。
- Sorting Relations
本规范定义了两个新的关系,以“http://opds-spec.org/sort”开始,用来描述如何排序收购feed。这些关系应该在创建导航feed和OPDS根目录的时候定义,如果需要的话。
“http://opds-spec.org/sort/new”在收购feed中,新发布的OPDS目录条目。这些收购feed通常包含在以出版物的出版日期为基础的OPDS目录条目的一个子集。
“http://opds-spec.org/sort/popular”在收购feed中,流行的OPDS目录条目的feed。这些收购feed通常包含在基于数值排名标准的OPDS目录条目的一个子集。
收购feed使用“http://opds-spec.org/sort/new”关系的,应该首先定义最近的条目,收购feed使用“http://opds-spec.org/sort/popular”关系的应该首先定义位于第一位的条目。
- Featured Relation
规范中还定义了一个关系来形容一个特色项目的收购feed。这个关系可以用来创建导航feed和OPDS的根目录。“http://opds-spec.org/featured”,OPDS收购feed中的一个,这些收购feed通常包含在一个OPDS目录条目的子集中,且被选定为增加OPDS目录提供商的OPDS目录条目相关特性,是无序的。
- Recommendations
规范中还定义了一个关系来形容收购建议项feed,由于建议可以为这种feed提供事先验证,可以为用户定制。这种关系应该被用来创建导航feed和OPDS的根目录。
“http://opds-spec.org/recommended” 收购建议OPDS目录条目feed,通常包含OPDS目录条目中专门为用户选择的一个子集,当使用“http://opds-spec.org/recommended”关系时,需要指定 唯一第一位的条目。
- Relations for Previously Acquired Content
OPDS目录可以跟踪用户之前购买的内容,规范中定义了2个新的关系,用于确定收购feeds中列出这些资源。
”http://opds-spec.org/shelf“ 类似书架,用于标识用户已经获得了的一系列资源。
”http://opds-spec.org/subscriptions“ 包含用户的订阅资源,可能是代表OPDS目录集。
OPDS的客户端可能会使用这些链接,并自动同步内容到用户本地的书架或定期检查内容的更新情况。
Facets
收购feed可能提供多个链接去重新排列在feed中所列出的刊物或限制他们的一个子集。
“http://opds-spec.org/facet”收购feed的一个子集或候补顺序,列出刊物的feed。
使用这种关系的链接只能出现在收购feed中。
- The "opds:facetGroup" Attribute
Facets可以使用一个“opds:facetGroup”属性讲OPDS catalog组合在一起。属性的值即是该组的名称。
一个Facet里面不能超过一个组,只能有一个组出现在一个Facet里面。
- The "opds:activeFacet" Attribute
如果说一个facet的属性被用来过滤目前的收购feed对应的刊物,则认为这个facet是活动的。
一个OPDS目录提供商应该声明,如果一个facet是活动的,则需要将属性“opds:activeFacet”设置为 true。如果一个facet不是活动的,则属性“opds:activeFacet”不应该出现在链接中。
在一组facets中,OPDS目录提供商最多只能标记一个facet为活动的。
- The "thr:count" Attribute
OPDS目录提供商可能会在收购feed中提供有关商品预计可售资源数的额外提示。使用“thr:count”属性,可以增加到facet中用来提供相关信息。
Crawlable Feed Relation
针对聚合或抓取的,OPDS目录可能会链接到一个优化的收购feed,规范中为实现这一目标定义了一个新的关系“http://opds-spec.org/crawlable”。
Search
OPDS目录可能通过一个OpenSearch描述文档提供一个搜索工具。OpenSearch描述文档的链接不许使用“search”关系的值,OpenSearch规范定义中的“Autodiscovery”节点使用“application/opensearchdescription+xml”作为media type。
<link rel="search" href="search.xml" type="application/opensearchdescription+xml"/>
在OpenSearch描述文档中,搜索界面使用的媒体类型相关连的OPDS目录:
<Url type="application/atom+xml;profile=opds-catalog" template="http://example.com/search?q={searchTerms}" />
OPDS目录可以提供更先进的搜索断点,如Atom命名空间中使用完全合格的一个或多个参数:
aom:author
aom:contributor
atom:titleOPDS目录feed文件可能包含从OpenSearch命名空间的元素“opensearch:totalResults”或“opensearch:itemsPerPage”。
Element Definitions
The "atom:feed" Element
“atom:feed”元素是文档(即顶层)OPDS目录文档元素,是作为元数据的层次结构、目录相关出版物的容器。它的子元素由0个或多个atom:entry元素组成,构成元数据元素。下面的子元素在规范中被细化了:OPDS目录feed文件应该包含一个atom:link元素,该元素包含一个”rel属性值为“self”,这是atom:feed检索的的首选URI。
OPDS Catalog Entry Documents
OPDS目录项文件是Atom entry可用于出版物元数据和相关数据的完整自描述和表示。
每个OPDS目录项文件必须包含至少一个收购环节,这是一个atom:link元素,并具有以http://opds-spec.org/acquisition开头的关系。这个链接是指在特定的媒体类型的OPDS目录描述资源内容的资源。收购链接使用收购关系中所描述的关系之一。
Relationship Between Atom and Dublin Core Metadata
OPDS目录供应商鼓励在OPDS的元数据中包含都柏林核心元数据倡议(DCMI的)的元数据术语(DCTERMS)。然而,有些元素不是必须的,DCTERMS中有些重叠的元素,在Atom中有相似的定义。在一般情况下,OPDS目录条目相比DCTERMS元素更加喜欢Atom元素,在元素的选择上面,一般遵循一下规则:
•PDS目录条目必须确定由“atom:id。一个或多个“dc:identifier”元素应该被用来确定公开表示,如果适当的元数据是可用的,不得标识OPDS目录条目。
•OPDS目录参赛作品必须包括“atom:updated”元素OPDS目录条目的最后更新。一个“dc:issued”元素应该用来表明出版物的出版日期,绝不能代表OPDS目录项相关的任何日期发行。
•OPDS目录参赛作品必须包括“atom:title”公开的标题,切不可用“dc:title”。
•OPDS目录条目应使用“atom:author”代表出版的创作者,不应该使用“dc:creator”。
•OPDS目录条目应使用“atom:category”代表公开的类别,关键词,关键短语,或分类代码,不应该使用“dc:subject”。
•OPDS目录条目应使用“atom:rights”的代表在公开举行的权利,不应该使用“dc:rights”。
•OPDS目录条目应使用“atom:summary”和/或“atom:content”来形容出版物不应该使用“dc:description”或“dc:abstract”。
•OPDS目录条目可能使用“atom:contributor”代表旁边出版它的创造者,贡献者。
•OPDS目录条目可能使用“atom:published”指示OPDS目录条目时,是第一次访问。所有的Atom必备的元数据元素在OPDS目录条目和feed中都是必须的。atom:id中的唯一标识用于确定OPDS目录不可改变,即使是条目进行了搬迁,迁移,再版,出口或进口等操作,必须保证唯一性。
Partial and Complete Catalog Entries
OPDS目录项可表述一个部分或完整的目录条目。部分目录条目中包含唯一的关键元数据元素,适用于带宽较少和资源有限的客户端,并有一个链接到完整的目录条目的候补,其中包含OPDS目录元素的所有的元数据元素。
Partial 目录条目必须包含一个“alternate”备用的链接关系,引用完整的目录条目资源和使用type属性值为“application/atom+xml;type=entry;profile=opds-catalog”的atom:link。
任何OPDS目录条目要是没有一个链接到完整目录条目的链接,则必须包含所有的元数据元素。
Partial Catalog Entries必须包含一下的元数据元素:
atom:category atom:contributor atom:rights opds:priceOPDS目录提供商应该大力鼓励去限制使用那些不是Atom,OPDS或上面列出的必须的元数据元素的使用,用来帮助OPDS目录文件的高效传输。鼓励实线者在完整的OPDS目录条目中使用其他词汇表述元数据元素。
Summary and Content
OPDS目录条目使用“atom:content”和“atom:summary”来形容出版物。这个和Atom中定义的“atom:content”的含义有所不同,在Atom中,“atom:content”表示条目的内容,而在OPDS条目中引用了一个链接到电子文档,包含了出版物的内容的链接。OPDS目录条目应该包含“atom:content”或“atom:summary”中之一或全部包含,用来描述、摘录的公开。
OPDS目录条目中的“atom:summary”元素必须使用一个值为“text”的“type”属性,且元素的内容不能再包含其他的子元素。“atom:summary”元素的内容不应该重复元素“atom:title”或“atom:content”元素的内容。这样的文本限制的目的是为了以一个可读的方式呈现给人们。“atom:summary”元素的“type”属性的限制参展Atom文档。
在OPDS目录条目中的“atom:content”元素要么包含或指向一个链接,描述,总结,摘录该出版物,要么定义“atomOutOfLineContent”和“src”属性。OPDS目录条目包含“atom:content”和“atom:summary”,“atom":content”元素不应该出现在Partial Catalog Entries中。而且这2种元素都应该包含在Complete Catalog Entries中。
Entry Relations
OPDS目录项文件应该包含相关资源的链接。规范中定义了连接OPDS目录项文件的新的关系,它们被定义在部分收购关系和图像的关系(
Acquisition Relations and Artwork Relations)中。OPDS目录提供商鼓励使用OPDS目录条目文档内部的关系。
- Acquisition Relations
收购关系描述的收购链接或该资源可能被收购的内容的方式。规范中定义了6个收购关系,这些都以“http://opds-spec.org/acquisition”开始。
" http://opds-spec.org/acquisition": A generic relation that indicates that the complete representation of the content Resource may be retrieved. 通用的关系表示,可检索的内容资源的完整的表示。 " http://opds-spec.org/acquisition/open-access": Indicates that the complete representation of the Resource can be retrieved without any requirement, which includes payment and registration. 表示完全开放的关系,资源都可以被检索而没有任何要求, 包括支付和登录。 " http://opds-spec.org/acquisition/borrow": Indicates that the complete representation of the content Resource may be retrieved as part of a lending transaction. 表示借阅的关系,可以支付一定的金额用于检索内容的资源。 " http://opds-spec.org/acquisition/buy": Indicates that the complete representation of the content Resource may be retrieved as part of a purchase. 表示购买的关系,购买后可以使用一部分内容资源的完整内容。 " http://opds-spec.org/acquisition/sample": Indicates that a subset of the content Resource may be retrieved. 表示可检索内容资源的一个子集,类似试读部分内容。 " http://opds-spec.org/acquisition/subscribe": Indicates that the complete representation of the content Resource may be retrieved as part of a subscription.表示订阅资源的完整展现。实现订阅的功能。
- Artwork Relations
OPDS目录条目可能包含“atom:link”用于展现图片,资源的封面。对于许多的出版物,这些图像是公开的,规范中定义了2个关系用于描述图形和OPDS目录条目的关系,都是以“http://opds-spec.org/image”开头的。
" http://opds-spec.org/image": a graphical Resource associated to the OPDS Catalog Entry 。一个图形化的OPDS目录条目的相关资源。 " http://opds-spec.org/image/thumbnail": a reduced-size version of a graphical Resource associated to the OPS Catalog Entry.OPDS目录条目相关的图形化资源的缩略版本。使用“http://opds-spec.org/image/thumbnail”关系的图像应该使用一个较小的大小的版本。包含这些关系的“atom:link”至少包含一下几个type属性值之一:"image/gif", "image/jpeg", "image/png",而且链接的资源的格式必须是GIF、JPEG、PNG格式的。
Additional “atom:link”可能也包含基于矢量格式的其他附加资源。
无论图像资源是是否是可选的,都可以独立使用,OPDS目录提供商鼓励尽可能使用这些关系和资源。
Element Definitions
The "atom:entry" Element
“atom:entry”元素是文档(顶级)的OPDS目录项条目的元素,可用作出版物元数据和相关数据的容器。
OPDS目录项文件必须至少包含有一个收购链接,即一个rel属性为“http://opds-spec.org/acquisition”开头的链接。
The "atom:link" Element
“atom:link”定义链接,引用到另外一个atom entry或atomfeed。
atom:link elements with a rel attribute value of " http://opds-spec.org/acquisition/buy" MUST contain at least one opds:price element. atom:link elements with a rel attribute of " http://opds-spec.org/acquisition/borrow", " http://opds-spec.org/acquisition/subscribe", or " http://opds-spec.org/acquisition/sample" MAY contain one or more opds:price elements.The "opds:price" Element
“opds:price”元素表示购买价格,是由一个特定的OPDS供应商定义的收购价格,该元素可以作为atom:link元素(OPDS目录条目)的子元素。opds:price元素的内容是货币价格的文字描述,不能包含货币符号。
- The "currencycode" Attribute
在opds:price元素中,属性“currencycode”的值使用一个代码值表示货币,定义在opds:price元素的内容表示的价格所使用的货币。
The "opds:indirectAcquisition" Element
在某些情况下,OPDS目录提供商可能会要求客户收购前可以选择最终出版的多种格式的资源,可以是多种格式,当需要付款时,通过一系列的hetml页面去处理交易。opds:indirectAcquisition元素代码这些用户可以获取到的次要的媒体类型,他们紧接在收购链接后面。opds:indirectAcquisition可以进行嵌套用以展现出层次关系。
Acquiring Publications
OPDS目录的目标是使出版物的发现和简单收购能够支持多种设备和平台,为了达到这一目标,规范提供了一个如何让发布者去通过简单的描述去公开出版物,并可用于收购的框架。
所有的收购链接必须包含一个“type”属性,建议客户端在对media type进行处理时,使用type属性返回时href属性的值会被废弃。在Atom中,type属性的值必须符合MIME媒体类型语法的规定。在使用数字版权管理格式的出版物,应使用不同的数字版权管理链接,采用不同的属性值,而不是采用具有版权保护的相同的格式。OPDS目录支持的类型只可能支持多有出版物的一个子集,客户端需要根据type属性进行收购链接的过滤。
OPDS目录可能通过直接的收购只提供某些出版物,另外一些出版物则需要一个收购流程,在这种情况下,客户的筛选都可以基于出版物的“opds:indirectAcquisition”和“atom:link”属性。
Feed Handling
Listing Acquisition Feeds
OPDS目录feed文档,特别是收购feed,可能包含大量的Atom Entries。如网络蜘蛛或浏览器等客户端在接收到一个包含所有atom Entries的收购feed时可能会没有响应。同时,这也是对服务器的网络带宽是一种浪费,对服务器的响应时间也可能达不到要求。出于这个原因,服务器可以接收收购feed的分页响应请求,OPDS目录源文档包含feed中的atom条目和链接到下一个分页的收购feed的链接。OPDS目录供应商在所有的收购feed中应该使用Partial Catalog Entries除了在Complete Acquisition Feeds,使用关系“http://opds-spec.org/crawlable”描述。客户端不能假设OPDS目录条目在收购feed中返回的OPDS目录条目具有充分的代表权。
Complete Acquisition Feeds
OPDS目录提供商可能会提供一个单一的,综合的收购feed,里面包含了每一个唯一的OPDS目录项文件的完整表示,通过atom:feed,可以跟方便的进行抓取和聚合。这一类的收购feed不应该被分页,除非它们非常大。这要求被称为Complete Acquisition Feeds必须由atomEntries按照顺序排列,最近更新的atom条目排在文档的第一位。每个OPDS目录feed文档应该包含一个具有关系“http://opds-spec.org/crawlable”的atom:link元素用于指向Complete Acquisition Feeds资源。一个完整的收购feed必须包含一个fh:complete元素,除非必须分页。OPDS目录提供商在通过http传输完整的收购feed时需要对内容编码采用压缩,OPDS目录提供商在序列化完整的收购feed时需要包含完整的目录条目。
Aggregating OPDS Catalogs
OPDS目录可以使用相同的技术来聚合atomfeeds,聚合时使用atom:source元素去包含一般的OPDS目录的相关信息。
Discovering OPDS Catalogs
OPDS目录可以被引用在html、xhtml网页,http header或使用其他技术中,这些链接可能会同时引用OPDS目录entries或feeds。链接到OPDS目录entry文档资源的必须使用“application/atom+xml;type=entry;profile=opds-catalog”作为type属性。OPDS目录提倡的自动发现机制是从html文档中链接OPDS目录资源,利用自动发现模式。OPDS目录资源的过个链接可以表示在一个单一的html文档中。自动发现链接也可以使用httpheader表示。
Securing OPDS Catalogs
OPDS目录是通过http进行分发的,http认证要求。OPDS目录的验证机制是由目录提供商指定的,任何所需类型的身份验证是提供商做出的决定。OPDS目录的客户端可能面临跨OPDS目录时需要采用不同的身份验证。在最低限度,客户端和服务器的实现必须是能配置使用TLS1.0连接http的基本验证,建议OPDS目录客户端在采用这样的身份验证方案进行部署和实施。因为使用http协议,使得http的响应状态骂可以用来报告请求的结果,OPDS目录提供商建议在未经授权或未通过身份验证的请求给予一个适当的4XXhttp的响应代码。
Bandwidth and Processing Considerations
许多OPDS目录的客户端是运行在移动环境下的,对带宽和处理资源有些限制。OPDS目录提供商正在大力鼓励使用压缩和缓存技术发布他们的OPDS目录来适应上述场景
Security Considerations
OPDS目录其实是atom文档,通过http进行分发,Atom的安全策略适用与OPDS目录。
- Linked Resources
OPDS目录可以包含xml外部实体,OPDS目录的实现并不需要加载外部实体。外部实体是任何网络操作都会遇到的相同的安全问题,同样的问题在资源的链接元素例如atom:link和atom:content等上面都会遇到。
- URIs and IRIs
OPDS目录实现了对URI和IRI的处理,也考虑了安全性相关的指标。
- Code Injection and Cross Site Scripting
OPDS目录可以包含很多的内容类型,甚至是在某些情况下是可执行文件的代码。恶意出版商会将攻击代码注入OPDS目录feed文件或OPDS目录实体或其他媒体资源。服务器实现时应该对聚合、处理、发布之前进行安全验证,在html中,经验表明,使用可接受内容的白名单比禁止内容的黑名单更加有效。
The Atom Format Type Parameter
Atom的发布协议中定义了Atom格式的类型参数,OPDS目录提供商应使用type参数去帮助区分OPDS目录条目和OPDS目录feeds。
The OPDS Catalog Profile Parameter
OPDSCatalog Entry和OPDS Catalog Feed使用的关系中,type属性的值不一样:
OPDS Catalog Entry Document Resource:application/atom+xml;type=entry;profile=opds-catalog.
OPDS Catalog Feed Document Resource:application/atom+xml;profile=opds-catalog
The OPDS Kind Parameter
用于区分收购feed和导航feed的关系的不同的type属性值:
Acquisition Feed:application/atom+xml;profile=opds-catalog;kind=acquisition
Navigation Feed:application/atom+xml;profile=opds-catalog;kind=navigation