RFC 3151
A URN Namespace for Public Identifiers
RFC 3151: A URN Namespace for Public Identifiers β¨
Okay bestie, this is RFC 3151, titled A URN Namespace for Public Identifiers π. The authors are N. Walsh (Sun Microsystems, Inc.), J. Cowan (Reuters Health Information), and P. Grosso (Arbortext, Inc.). It's an Informational doc dated August 2001 π . The title block doesn't list anything it obsoletes or updates, so it's a standalone vibe π .
Status of this Memo π«Ά
This memo is just giving info to the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited πΈ.
Copyright Notice
Copyright (C) The Internet Society (2001). All Rights Reserved. π
Abstract π¦
This doc describes a URN (Uniform Resource Name) namespace that is designed to let Public Identifiers be written in URI (Uniform Resource Identifier) syntax. Main character energy π.
1. Introduction π
Okay so, XML [1] external entities have two identifiers: a system identifier and a public identifier. The system identifier is a URI by definition, but the public identifier is simply a string π§.
Historically, the system identifier of an external entity has been a local, or system-specific, identifier, while the public identifier has been a more global, persistent name. It's giving "local vs. global" π.
Unfortunately, public identifiers don't fit neatly into the existing web architecture, because they aren't legal URIs π. A lot of newer specs (XSLT, XML Schema, etc.) have the implicit or explicit requirement that all external identifiers be URIs, so this is a real problem π.
The whole point of this namespace is to let public identifiers be encoded in URNs in a reliable, comparable way β¨.
This doc 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 that 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 π .
On top of 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 π«§.
Since this spec wants public identifiers to be encoded in a reliable, comparable way, it mandates that public identifiers be normalized before encoding them into URNs. Throughout this spec, we assume normalization has already been done β .
1.2 Formal Public Identifiers
SGML [2] defines a restricted subset of public identifiers called a "Formal Public Identifier" (FPI) πΈ.
FPIs are strings made from the same range of characters as public identifiers, but they have 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 have 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. The exception is the public text class, which is delimited from the public text description by a space π¦.
So 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 π§:
+//IDN python.org//DTD XML Bookmark Exchange Language 1.0//EN//XML
-//OASIS//DTD DocBook XML V4.1.2//EN
-//ArborText::prod//DTD Help Navigation Document::19970708//EN
ISO/IEC 10179:1996//DTD DSSSL Architecture//EN
ISO 8879:1986//ENTITIES Added Latin 1//EN
This doc describes an algorithm for encoding public identifiers into URNs that explicitly lets the structured nature of formal public identifiers be preserved π. Still, an algorithm for correctly identifying a Formal Public Identifier and working out the various fields inside it is out of scope for this doc, and it isn't necessary for implementing this URN namespace π.
References β¨
okay bestie, here's the reading list π these are the docs this one leans on, and I'm keeping every bit of the citation info exactly as it's written π«Ά
[1] W3C, XML WG, "Extensible Markup Language (XML) 1.0 Second
Edition", February 1998, <http://www.w3.org/TR/REC-xml>.
[2] JTC 1, SC 34, "ISO 8879:1986 Information processing -- Text and
office systems -- Standard Generalized Markup Language (SGML)",
1986.
[3] JTC 1, SC 34, "ISO/IEC 9070:1991 Information technology -- SGML
support facilities -- Registration procedures for public text
owner identifiers", 1991.
[4] Moats, R., "URN Syntax", RFC 2141, May 1997.
[5] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
Resource Identifiers (URI): Generic Syntax", RFC 2396, August
1998.
[6] Grosso, P., "Entity Management: OASIS Technical Resolution
9401:1997 (Amendment 2 to TR 9401)", Sep 1997,
<http://www.oasis-open.org/html/tr9401.html>.
Authors' Addresses π
these are the people who wrote it, and where to find them π§
Norman Walsh
Sun Microsystems, Inc.
One Network Drive MS UBURO2-201
Burlington, MA 01803-0902
US
EMail: Norman.Walsh@East.Sun.COM
John Cowan
Reuters Health Information
45 West 36th St, 12th Floor
New York, NY 10018
US
EMail: jcowan@reutershealth.com
Paul Grosso
Arbortext, Inc.
1000 Victors Way
Ann Arbor, MI 48108-2744
US
EMail: pgrosso@arbortext.com
Full Copyright Statement π
okay so the legal bit, and yes it's a lot, but every clause is here π
Copyright (C) The Internet Society (2001). All Rights Reserved.
So this document, and any translations of it, can be copied and handed to other people. Derivative works that comment on it, explain it, or help people implement it can be written, copied, published, and distributed, in whole or in part, with no restriction of any kind. The one condition is that the above copyright notice and this paragraph stay on every copy and every derivative work. β¨
The document itself, though, may not be modified in any way. That includes removing the copyright notice or the references to the Internet Society or other Internet organizations. The exceptions are when it's needed for developing Internet standards, in which case the copyright procedures in the Internet Standards process must be followed, or when it's being translated into a language other than English. π
The limited permissions above are perpetual. The Internet Society, its successors, and its assigns will not revoke them. π
This document and the information in it are provided on an "AS IS" basis, and the people behind it want you to know the rest in full:
THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement πΈ
last but not least, the thank-yous π«Ά Right now, funding for the RFC Editor function comes from the Internet Society. π
π¦ where this page comes from
- ietf: rfc3151 2001-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms