prev

リンク型 next

[1] リンク型 prev は、前のページを表します。

[2] リンク型 next は、次のページを表します。

目次

  1. Atom 集成部分リスト
  2. 歴史
    1. Atom 0.3

Atom 集成部分リスト#

[9] AtomPub集成部分リストでは、リンク関係として previous, next が使えます。 >>11

[10] HTML リンク型とは違って prev ではありません。

歴史#

Atom 0.3#

[6] Atom 0.3 >>5 では、 Atom API >>4 で規定されていた prev, next の2つの値を rel 属性で使うことができました。

[3]

next
エントリー群の線形な列における次の N 個のエントリーが含まれる Atom フィードを指します。
prev
エントリー群の線形な列における前の N 個のエントリーが含まれる Atom フィードを指します。

[12] RFC 5988 - Web Linking ( ( 版)) http://tools.ietf.org/html/rfc5988#page-14

[7] ページ フリップによる閲覧 (Windows) ( 版) https://msdn.microsoft.com/library/jj883726(v=vs.85).aspx#Identifyingflipaheadtargets

[8] プリレンダリングとプリフェッチのサポート (Windows) ( 版) https://msdn.microsoft.com/library/dn265039(v=vs.85).aspx

[13] 走行中の高級車から出火し全焼、小田原厚木道路(TBS系(JNN)) - Yahoo!ニュース ( 版) http://headlines.yahoo.co.jp/videonews/jnn?a=20151231-00000008-jnn-soci

<link rel="prev" href="http://headlines.yahoo.co.jp/videonews/jnn?a=20151231-00000009-jnn-soci" />

<link rel="next" href="http://headlines.yahoo.co.jp/videonews/jnn?a=20151231-00000004-jnn-soci" />

[14] はてなブックマークAtomAPI - Hatena Developer Center ( 版) http://developer.hatena.ne.jp/ja/documents/bookmark/apis/atom

<link rel="next" type="application/x.atom+xml" href="http://b.hatena.ne.jp/sample/atomfeed?of=20"/>

[15] はてなブックマークフィード仕様 - Hatena Developer Center ( 版) http://developer.hatena.ne.jp/ja/documents/bookmark/misc/feed

Atomフィードでは、link要素により前後ページのURLを取得することも可能です。

<link rel="prev" type="application/atom+xml" href="http://b.hatena.ne.jp/jkondo/atomfeed?of=0" />

<link rel="next" type="application/atom+xml" href="http://b.hatena.ne.jp/jkondo/atomfeed?of=40" />

[16] はてなブックマークフィード仕様 - Hatena Developer Center ( 版) http://developer.hatena.ne.jp/ja/documents/bookmark/misc/feed

Atomフィードでは、link要素により前後ページのURLを取得することも可能です。

<link rel="prev" type="application/atom+xml" href="http://b.hatena.ne.jp/jkondo/atomfeed?of=0" />

<link rel="next" type="application/atom+xml" href="http://b.hatena.ne.jp/jkondo/atomfeed?of=40" />

[17] Qiita API v2ドキュメント - Qiita:Developer ( ()) http://qiita.com/api/v2/docs

Link: http://qiita.com/api/v2/users?page=1; rel="first",

http://qiita.com/api/v2/users?page=1; rel="prev",

http://qiita.com/api/v2/users?page=3; rel="next",

http://qiita.com/api/v2/users?page=6; rel="last"

[18] Treat <link rel="next"> as a general resource hint ( (domenic著, )) https://github.com/whatwg/html/commit/7ff5b096d423bf5750463957aed69680368ed99e

IANAのLink Relation Typesに登録されているものを見ると、previousもprevの同義語として使えることに実装してこの記事を書くときに後から気付いた。previousをprevに略すという判断があると、ではなぜ他の文字列は同様の文脈において略す判断をしないのか (例えばfirstはなぜfirstより略さないのか) という曖昧性やコード上に記述されていない何らかの関係性が発生するので、previousが使えるならpreviousを使いたい。

[23] >>19 このような考え方は適切ではない。 リンク型リンク関係型プログラマーが自由に選べる変数ではなくプロトコル要素。 このような判断を下せるのはプロトコル開発者であって、プロトコル利用者であるプログラム開発者ではない。 プログラム開発者にとってはただの不透明な文字列なのである。

[28] さて参照されている IANA登録簿 >>26 を開いてみると、 HTML 4.01 が参照されている。この時点でこの登録簿が長年まともにメンテナンスされていないことが察せられるが (これが IETF / IANA の標準的な品質なのであるからこんなことでいちいち驚いてはいけない)、それはさておき HTML 4.01 を参照すると、

Prev
Refers to the previous document in an ordered series of documents. Some user agents also support the synonym "Previous".

とある >>27。 つまり正式には Prev であり、 Previous も実装しているものある、と書いているに過ぎない。この重要情報を欠落させている IANA登録簿にも非はあるが、 Prev を避けてわざわざ Previous を使うべき理由はない。

[30] ところで HTML 4.01 は既に廃止されて久しい。 >>19 の執筆時点では「事実上廃止」 状態だったが、今や名実ともに廃止されている。このようなとき IANA登録簿previous が現行 HTML Standard を指すと解釈するべきかどうか明確ではない。 (なぜか prev は今は現行 HTML Standard を指している。) ともかく HTML Standard を参照すると、 prev の項に

Synonyms: For historical reasons, user agents must also treat the keyword "previous" like the prev keyword.

とある。 >>29 これと HTML Standard の他の関連規定によると、 実装は prevprevious も実装しなければならないが、 著者prev のみを使わなければならない。

[31]HTML 4.01HTML StandardHTML の規定に過ぎず、 そこにしかない規定は HTML にだけ適用される。 IANA登録簿が定めるリンク関係型では previous も普通に使って良い」という考え方もないではない。 IETFリンク関係型なる概念を不適切に規定しているので、 このような仕様の解釈もあり得る ( リンク関係型 )。 しかし、本事例に限って言えば、 長年安定して優先的に実利用されている prev を退けてわざわざ previous を選ぶべき理由はなく、 標準仕様を使うという意識のもとで使うべきではないだろう。 (標準仕様との整合性はどうでもいい、優先度は低い、という考え方なら勝手に使えば良いが、 それならこのような重箱の隅のような仕様書の不整合に依拠しなくてよい。)

[20] Official Google Webmaster Central Blog: Video about pagination with rel=“next” and rel=“prev” () https://webmasters.googleblog.com/2012/03/video-about-pagination-with-relnext-and.html

[21] Getting Started: 大量のデータを取得する (ページング) | SORACOM API 利用ガイド | ソラコムユーザーサイト - SORACOM Users, , https://users.soracom.io/ja-jp/tools/api/paging/

[22] >>21 pagingLink:rel=next, rel=prev