RFC 3151 (rfc3151) - Page 2 of 9


A URN Namespace for Public Identifiers



Alternative Format: Original Text Document



RFC 3151         A URN Namespace for Public Identifiers      August 2001


   This document describes a scheme for representing public identifiers
   as URNs by introducing a public identifier namespace, "publicid".

   This namespace specification is for a formal namespace.

1.1 Public Identifiers

   Any string which consists only of the public identifier characters
   (defined by Production 13 of Extensible Markup Language (XML) 1.0
   Second Edition [1]) is a legal public identifier.

   In addition to the character set restriction, public identifiers must
   be normalized by changing all strings of whitespace (the characters
   #x20, #x9, #xD, and #xA) to single space characters (#x20), and
   removing all leading and trailing whitespace.

   In keeping with this specification's goal of allowing public
   identifiers to be encoded in a reliable, comparable way, this
   specification mandates that public identifiers be normalized before
   encoding them into URNs.  Throughout this specification, we assume
   that normalization has already been performed.

1.2 Formal Public Identifiers

   SGML [2] defines a restricted subset of public identifier called a
   "Formal Public Identifier" (FPI).

   FPIs are strings composed from the same range of characters as public
   identifiers, but with an explicit internal structure.  The structure
   of Formal Public Identifiers is normatively described in SGML [2]; we
   review it here for convenience.

   Most Formal Public Identifiers consist of the following fields, in
   this order: an owner identifier, a public text class, a public text
   description, a public text language or public text designating
   sequence, and an optional public text display version.

   Owner identifiers may begin with "-//" or "+//"; otherwise "//" is
   used to delimit fields in the FPI (with the exception of the public
   text class which is delimited from the public text description by a
   space).

   In other words, most FPIs look like this:

      owner//class description//language//version

   and most owners begin with "+//" or "-//", although they are not
   required to.  Here are some example FPIs:



Walsh, et al.                Informational