RFC 6963

A Uniform Resource Name (URN) Namespace for Examples

πŸ“… published May 2013, from ietf

RFC 6963: A Uniform Resource Name (URN) Namespace for Examples ✨

  • RFC number and title: RFC 6963, A Uniform Resource Name (URN) Namespace for Examples
  • Stream: Internet Engineering Task Force (IETF)
  • Series: BCP 183
  • Category: Best Current Practice
  • Author: Peter Saint-Andre, Cisco Systems, Inc.
  • Date: May 2013
  • ISSN: 2070-1721
  • Obsoletes/Updates: the header doesn't list any RFCs this one obsoletes or updates

Abstract πŸŽ€

Okay so this doc defines a URN namespace identifier that lets you mint URNs which are totally fit for documentation and for URN-related testing and experimentation. πŸ’–

Status of This Memo 🌸

This memo documents an Internet Best Current Practice. πŸ’…

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on BCPs is available in Section 2 of RFC 5741. πŸ¦‹

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6963. ✨

Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. 🫢

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. πŸ“œ

Table of Contents 🧚

1. Introduction ....................................................2
2. Terminology .....................................................2
3. Completed Namespace Definition Template .........................3
4. Namespace Considerations ........................................4
5. Community Considerations ........................................5
6. Security Considerations .........................................5
7. IANA Considerations .............................................5
8. References ......................................................6
Appendix A. Acknowledgements .......................................7

1. Introduction πŸ“

Okay so the Uniform Resource Name (URN) technology [RFC2141] gives you a way to make persistent, location-independent resource identifiers. The main "scope" of a URN comes from its namespace identifier (NID). As specified in [RFC3406], there are three kinds of NIDs: formal, informal, and experimental. Most of the NIDs registered so far are formal. As far as anyone knows, the few informal namespaces haven't been widely used, and the experimental namespaces are by definition unregistered. πŸ”₯

The experimental namespaces look like "X-NID" (where "NID" is the desired namespace identifier). The "X-" convention has been deprecated in general [RFC6648], so it seems sensible to get the same result in a different way. πŸ’… That's why this document registers a formal namespace identifier of "example", similar to "example.com" and other domain names [RFC2606]. Under the "example" NID, specification authors and code developers can mint URNs for use in documentation and in URN-related testing and experimentation by assigning their own unique Namespace Specific Strings, without fear of conflicts with current or future actual URNs. ✨ These URNs are intended for use as examples in documentation, testing of code for URN and URI processing, URN-related experimentation, invalid URNs, and other similar uses. They are not intended for testing non-URI code or for building higher-level applications for use over the Internet or private networks (e.g., as XML namespace names). The reason is that it's relatively easy to mint URIs whose authority component is a domain name controlled by the person or organization that wants to do such testing and experimentation. πŸ™ˆ

2. Terminology πŸ’œ

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. πŸŽ€

3. Completed Namespace Definition Template 🌸

3.1. Namespace ID πŸ’–

The Namespace ID "example" has been assigned. πŸ¦‹

3.2. Registration Information ✨

Version 1

Date: 2013-04-24

3.3. Declared Registrant of the Namespace πŸ‘‘

Registering organization: IETF

Designated contact: IESG, iesg@ietf.org

3.4. Declaration of Syntactic Structure 🧚

URNs that use the "example" NID shall have the following structure:

urn:example:{NSS}

The Namespace Specific String (NSS) is a mandatory string of ASCII characters [RFC20] that conforms to the URN syntax requirements [RFC2141] and provides a name that is useful within the relevant documentation example, test suite, or other application. πŸ’…

3.5. Relevant Ancillary Documentation πŸ“œ

See [RFC6648] for information about deprecation of the "X-" convention in protocol parameters and identifiers. 🌈

3.6. Identifier Uniqueness Considerations πŸ™ˆ

Those who mint example URNs ought to strive for uniqueness in the Namespace Specific String portion of the URN. However, such uniqueness cannot be guaranteed through the assignment process. Therefore, it is NOT RECOMMENDED for implementers to use example URNs for any purposes other than documentation, private testing, and truly experimental contexts. πŸ’€

3.7. Identifier Persistence Considerations πŸ“

Once minted, an example URN is immutable. However, it is simply a string, and there is no guarantee that the documentation, test suite, or other application using the URN is immutable. 🫢

3.8. Process of Identifier Assignment πŸ¦‹

Assignment is completely open, since anyone can mint example URNs for use in documentation, private testing, and other experimental contexts. 🌸

3.9. Process for Identifier Resolution ✨

Example URNs are not intended to be resolved, and the namespace will probably never be registered with a Resolution Discovery System (except to simply inform requesters that such URNs are merely examples). πŸ’…

3.10. Rules for Lexical Equivalence πŸ’œ

No special considerations; the rules for lexical equivalence specified in [RFC2141] apply. πŸŽ€

3.11. Conformance with URN Syntax 🧚

No special considerations 🌈

3.12. Validation Mechanism πŸ“

None 🫢

3.13. Scope πŸ‘‘

The scope of an example URN is limited to the documentation in which it is found, the test in which it is used, the experiment in which it appears, etc. Example URNs have no meaning outside such strictly limited contexts. πŸ”₯

4. Namespace Considerations 🌈

No existing formal namespace lets entities generate URNs that are appropriate for use as examples in documentation and in URN-related testing and experimentation. It could be argued that no such formal namespace is needed, since experimental namespaces can be minted at will. However, experimental namespaces run afoul of the trend away from using the "X-" convention in the names of protocol parameters and identifiers [RFC6648]. Also, in practice, specification authors often mint examples using fake NIDs that never get registered, because they're never intended to be used. πŸ™ˆ To minimize the possibility of confusion, use of this dedicated example namespace is recommended for generating example URNs. πŸ’–

5. Community Considerations πŸ¦‹

The "example" NID is intended to provide a clean, easily recognizable space for minting examples to be used in documentation and in URN-related testing and experimentation. The NSS works best as a unique string, generated by the person, organization, or other entity that creates the documentation, test suite, or other application. There is no issuing authority for example URNs, and it is not intended that they can be resolved in any meaningful way. ✨

The "example" NID does not replace the need to coordinate with issuing authorities for existing namespaces (e.g., minting urn:example:xmpp:foo instead of requesting issuance of urn:xmpp:foo). It also doesn't replace registering new namespace identifiers when existing namespaces don't match one's desired functionality (e.g., minting urn:example:sha-1:29ead03e784b2f636a23ffff95ed12b56e2f2637 instead of registering the "sha-1" NID). And it doesn't replace respecting the basic spirit of URN NID assignment (e.g., setting up shadow NIDs such as urn:example:MyCompany:* instead of using, say, HTTP URIs). πŸ‘‘

6. Security Considerations πŸ”₯

This document introduces no additional security considerations beyond those associated with the use and resolution of URNs in general. πŸ’€

7. IANA Considerations 🌸

This document defines a URN NID registration of "example", which IANA has added to the "Formal URN Namespaces" registry. The completed registration template can be found in Section 3. 🧚

8. References πŸ“œ

8.1. Normative References πŸ’…

[RFC20]    Cerf, V., "ASCII format for network interchange", RFC 20,
           October 1969.

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2141]  Moats, R., "URN Syntax", RFC 2141, May 1997.

[RFC3406]  Daigle, L., van Gulik, D., Iannella, R., and P. Faltstrom,
           "Uniform Resource Names (URN) Namespace Definition
           Mechanisms", BCP 66, RFC 3406, October 2002.

8.2. Informative References πŸŽ€

[RFC2606]  Eastlake, D. and A. Panitz, "Reserved Top Level DNS
           Names", BCP 32, RFC 2606, June 1999.

[RFC6648]  Saint-Andre, P., Crocker, D., and M. Nottingham,
           "Deprecating the "X-" Prefix and Similar Constructs in
           Application Protocols", BCP 178, RFC 6648, June 2012.

Appendix A. Acknowledgements 🫢

Thanks to Martin Duerst, Barry Leiba, and Jim Schaad for their feedback. Thanks to Christer Holmberg for his Gen-ART review, and to Benoit Claise, Adrian Farrel, and Stephen Farrell for their helpful input during IESG review. Julian Reschke inspired the work on this document, provided valuable suggestions, and shepherded the document. 🌈⭐

Author's Address 🧚

Peter Saint-Andre
Cisco Systems, Inc.
1899 Wynkoop Street, Suite 600
Denver, CO  80202
USA

EMail: psaintan@cisco.com
πŸ“¦ where this page comes from