OPDS はすべてリンクに関係している。ユーザがどこで閲覧し検索し出版物を取得すればよいのかが、リンクによって定義される。
OPDSカタログの中で入手できるあらゆる出版物は、次の属性を伴った取得リンクを少なくとも一つ持つ必要がある。
rel
属性には次の値が利用できる。
http://opds-spec.org/acquisition/open-access はオープンアクセスな出版物に用いる。
http://opds-spec.org/acquisition/buy は購入できる出版物に用いる。
http://opds-spec.org/acquisition/borrow は貸し出しできる出版物に用いる。
http://opds-spec.org/acquisition/subscribe は購読できる出版物に用いる。
http://opds-spec.org/acquisition/sample はサンプル用の出版物に用いる。
http://opds-spec.org/acquisition は他に適切な値がない場合や、付加する情報がない場合に用いる。
仕様書には次の例が載っている。
<link rel="http://opds-spec.org/acquisition" type="video/mp4v-es" href="/content/free/4561.mp4"/>
同じ資料が複数のフォーマットで入手できる出版物なら、同じエントリの中に複数の取得リンクを並べるだけでよい。
<link rel="http://opds-spec.org/acquisition/borrow" href="/content/borrow/4561.mobi" type="application/x-mobipocket-ebook"/> <link rel="http://opds-spec.org/acquisition/borrow" href="/content/borrow/4561.epub" type="application/epub+zip"/>
支払いが必要な出版物には、opds:price
要素が少なくとも一つ必要となり、内容には価格を currencycode
属性には通貨を指定する。
<link rel="http://opds-spec.org/acquisition/buy" href="/product/song1.mp3" type="audio/mpeg"> <opds:price currencycode="USD">1.99</opds:price> </link>
price 要素は rel 属性の値が次の場合のみ利用できる。
取得リンクが出版物を直接示さないケースがある。
例えば、同じ出版物が複数のフォーマットで一つの zip ファイルの中に纏められているケースが挙げられる。
この場合には、type
属性にメディアタイプを指定した opds:indirectAcquisition
要素が必要だ。
<link type="application/zip" rel="http://opds-spec.org/acquisition/open-access" href="/item/1111/buy/"> <opds:indirectAcquisition type="application/epub+zip" /> <opds:indirectAcquisition type="application/pdf" /> <opds:indirectAcquisition type="application/x-mobipocket-ebook" /> </link>
DRM フォーマットもまたそうしたケースの一つで、EPUB や PDF に用いられる ACS4 ではクライアントは ACSM ファイルを通して最終的な出版物を取得することになる。
<link type="application/vnd.adobe.adept+xml" rel="http://opds-spec.org/acquisition/buy" href="/item/4141/buy"> <opds:price currencycode="USD">4.29</opds:price> <opds:indirectAcquisition type="application/epub+zip" /> </link>
コンテナフォーマットの他に、間接取得はブラウザでのトランザクションを扱う上でも広く用いられている。このケースでは、atom:link
要素がウェブページを示す一方で opds:indirectAcquisition
要素はトランザクションの終了後にクライアントが取得することになるフォーマットを示している。
<link type="text/html" rel="http://opds-spec.org/acquisition/buy" href="/item/4141/buy"> <opds:price currencycode="USD">4.29</opds:price> <opds:indirectAcquisition type="application/vnd.adobe.adept+xml"> <opds:indirectAcquisition type="application/epub+zip" /> </opds:indirectAcquisition> </link>
OPDS クライアントは取得リンクと opds:indirectAcquisition
要素に基づいて出版物をフィルタリングを行い、クライアントが出版物を開いたり、示されたワークフローに対処したり出来るか考慮した上で、出版物の一部または全部を非表示とすることができる。