INTERNET-DRAFT                               Charles H. Lindsey
Usenet Format Working Group                  University of Manchester
                                             July 2001

6.16. Xref

Previous Up Next
6.16.  Xref
   The Xref header is a variant header (4.2.2.3) which indicates where
   an article was filed by the last server to process it, and whether it
   is a Replacement (6.15) for an earlier article.

      Xref-content      = [CFWS] server-name 1*( CFWS location )
      server-name       = path-identity  ; see 5.6.1
      location          = newsgroup-name ":" article-locator
                             [ CFWS ( "revise" / "repost" )
                               ":" article-locator ]
      article-locator   = 1*( %x21-7E ) ; US-ASCII printable characters

   The server-name is included so that software can determine which
   serving agent generated the header. The locations specify what
   newsgroups the article was filed under (which may differ from those
   in the Newsgroups header) and where it was filed under them. The
   exact form of an article-locator is implementation-specific.

        NOTE: The traditional form of an article-locator is a decimal
        number, with articles in each newsgroup numbered consecutively
        starting from 1. NNTP demands that such a model be provided, and
        much other software expects it, but it seems desirable to permit
        flexibility for unorthodox implementations.

   Whenever an Xref header is created by an agent for an article which
   includes a Replaces header with "disposition=revise" or
   "disposition=repost" (6.15), it SHOULD include, within the location
   field of each newsgroup in the Newsgroups header of whichever of the
   old articles referenced in that Replaces header is still current, a
   corresponding "revise:" or "repost:" for the oldest article known to be being replaced,
   where  is the article-locator under which that
   oldest article was filed. If the Replaces header has a
   "disposition=replace" (explicit or implicit) the Xref header MUST NOT
   include any such reference to an .

        NOTE: This is to enable reading agents to avoid showing that
        article to users who have already read any of those older
        articles (see 6.15).  Because several replacements for a given
        article may arrive in the period between attempts by a reader to
        read a given newsgroup, it is useful to include the oldest one
        in the Xref header. The information necessary to determine this
        article can be obtained from the Xref header of the current
        version of the article just before it is deleted. Observe that a
        server that never received one of the replaced articles can
        still generate suitable information from whichever earlier
        version it actually has. This is why it is useful for a Replaces
        header to mention more than one earlier article, especially when
        replacements are being issued in quick succession.

        NOTE: "revise" and "repost" are case-insensitive.

   An agent inserting an Xref header into an article MUST delete any
   previous Xref header(s). A relaying agent MAY delete it before
   relaying, but otherwise it SHOULD be ignored (and usually replaced)
   by any relying or serving agent receiving it.

   An agent MUST use the same serving-name in Xref headers as the path-
   identity it uses in Path headers.

Previous Up Next
Previous draft (04): 6.16. Xref

Diffs to previous draft

--- {draft-04}	Wed Jul 11 21:55:44 2001
+++ {draft-05}	Wed Jul 11 21:55:44 2001
@@ -1,9 +1,7 @@
 
6.16.  Xref
-   The Xref header is a local header (4.2.2.3) which indicates where an
-   article was filed by the last server to process it, and whether it is
-   a Replacement (6.15) for an earlier article.
-
-
+   The Xref header is a variant header (4.2.2.3) which indicates where
+   an article was filed by the last server to process it, and whether it
+   is a Replacement (6.15) for an earlier article.
 
       Xref-content      = [CFWS] server-name 1*( CFWS location )
       server-name       = path-identity  ; see 5.6.1
@@ -59,7 +57,4 @@
 
    An agent MUST use the same serving-name in Xref headers as the path-
    identity it uses in Path headers.
-
-
-