<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!--V2 used-->

<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc symrefs="yes"?>
<?rfc toc="yes"?>
<?rfc tocdepth="1"?>
<?rfc rfcedstyle="yes"?>

<rfc category="bcp" number="6963" seriesNo="183" ipr="trust200902" submissionType="IETF" consensus="yes">

  <front>
    <title abbrev="Example URNs">A Uniform Resource Name (URN) Namespace for Examples</title>
    <author initials="P." surname="Saint-Andre" fullname="Peter Saint-Andre">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>1899 Wynkoop Street, Suite 600</street>
          <city>Denver</city>
          <region>CO</region>
          <code>80202</code>
          <country>USA</country>
        </postal>
        <email>psaintan@cisco.com</email>
      </address>
    </author>

    <date month="May" year="2013"/>

    <area>APP</area>
    <keyword>URN</keyword>
    <keyword>examples</keyword>
    <keyword>documentation</keyword>

    <abstract>
      <t>This document defines a Uniform Resource Name (URN) namespace
identifier enabling the generation of URNs that are appropriate for use in documentation and in URN-related testing and experimentation.</t>
    </abstract>
  </front>

  <middle>

    <section title="Introduction" anchor="intro">
      <t>The Uniform Resource Name (URN) technology <xref target='RFC2141'/>
provides a way to generate persistent, location-independent resource
identifiers.  The primary "scope" of a URN is provided by its namespace
identifier (NID).  As specified in <xref target='RFC3406'/>, there are three
kinds of NIDs: formal, informal, and experimental.  Most of the NIDs registered
to date are formal. As far as is known, the few informal namespaces have not been widely used, and the experimental namespaces are by definition unregistered.</t> 
      <t>The experimental namespaces take the form "X-NID" (where "NID" is the
desired namespace identifier).  Because the "X-" convention has been deprecated
in general <xref target='RFC6648'/>, it seems sensible to achieve the same
objective in a different way.  Therefore, this document registers a formal
namespace identifier of "example", similar to "example.com" and other domain
names <xref target='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. Such 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), since it is relatively easy to mint URIs whose authority component is a domain name controlled by the person or organization that wishes to engage in such testing and experimentation.</t>
    </section>

    <section title="Terminology" anchor="terms">
      <t>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 <xref target='RFC2119'/>.</t>
    </section>

    <section title="Completed Namespace Definition Template" anchor="template">

      <section title="Namespace ID" anchor="template-nid">
        <t>The Namespace ID "example" has been assigned.</t>
      </section>

      <section title="Registration Information" anchor="template-reginfo">
        <t>Version 1</t>
        <t>Date: 2013-04-24</t>

      </section>

      <section title="Declared Registrant of the Namespace" anchor="template-registrant">
        <t>Registering organization: IETF</t>
        <t>Designated contact: IESG, iesg@ietf.org</t>
      </section>

      <section title="Declaration of Syntactic Structure" anchor="template-syntax">
        <t>URNs that use the "example" NID shall have the following structure:</t>
        <t>urn:example:{NSS}</t>
        <t>The Namespace Specific String (NSS) is a mandatory string of ASCII characters <xref target='RFC20'/> that conforms to the URN syntax requirements <xref target='RFC2141'/> and provides a name that is useful within the relevant documentation example, test suite, or other application.</t>
      </section>

      <section title="Relevant Ancillary Documentation" anchor="template-ancillary">
        <t>See <xref target='RFC6648'/> for information about deprecation of the "X-" convention in protocol parameters and identifiers.</t>
      </section>

      <section title="Identifier Uniqueness Considerations" anchor="template-unique">
        <t>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.</t>

      </section>

      <section title="Identifier Persistence Considerations" anchor="template-persist">
        <t>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.</t>
      </section>

      <section title="Process of Identifier Assignment" anchor="template-assignment">
        <t>Assignment is completely open, since anyone can mint example URNs for use in documentation, private testing, and other experimental contexts.</t>
      </section>

      <section title="Process for Identifier Resolution" anchor="template-resolution">
        <t>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).</t>
      </section>

      <section title="Rules for Lexical Equivalence" anchor="template-foobar">
        <t>No special considerations; the rules for lexical equivalence specified in <xref target='RFC2141'/> apply.</t>
      </section>

      <section title="Conformance with URN Syntax" anchor="template-conformance">
        <t>No special considerations</t>
      </section>

      <section title="Validation Mechanism" anchor="template-validation">
        <t>None</t>
      </section>

      <section title="Scope" anchor="template-scope">
        <t>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.</t>
      </section>

    </section>

    <section title="Namespace Considerations" anchor="namespace">
      <t>No existing formal namespace enables entities to generate URNs that are appropriate for use as examples in documentation and in URN&nbhy;related testing and experimentation.  It could be argued that no such formal namespace is needed, given that 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 <xref target='RFC6648'/>.  Additionally, in practice, specification authors often mint examples using fake NIDs that go unregistered because they are never intended to be used.  To minimize the possibility of confusion, use of this dedicated example namespace is recommended for generating example URNs.</t>
    </section>

    <section title="Community Considerations" anchor="community">
      <t>The "example" NID is intended to provide a clean, easily recognizable
space for minting examples to be used in documentation and in URN&nbhy;related
testing and experimentation.  The NSS is 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.</t>

      <t>The "example" NID does not obviate 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"), to register new namespace identifiers if existing namespaces do not match one's desired functionality (e.g., minting "urn:example:sha-1:29ead03e784b2f636a23ffff95ed12b56e2f2637" instead of registering the "sha-1" NID), or to respect the basic spirit of URN NID assignment (e.g., setting up shadow NIDs such as "urn:example:MyCompany:*" instead of using, say, HTTP URIs).</t>
    </section>

    <section title="Security Considerations" anchor="security">
      <t>This document introduces no additional security considerations beyond those associated with the use and resolution of URNs in general.</t>
    </section>

    <section title="IANA Considerations" anchor="iana">
      <t>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 <xref target='template'/>.</t>
    </section>

  </middle>

  <back>

    <references title="Normative References">

<reference anchor="RFC20">
<front>
<title>ASCII format for network interchange</title>
<author initials="V." surname="Cerf" fullname="Vint Cerf">
<organization>University California Los Angeles (UCLA)</organization></author>
<date year="1969" day="16" month="October"/>
</front>
<seriesInfo name="RFC" value="20"/>
</reference>

<?rfc include="reference.RFC.2119"?>
<?rfc include="reference.RFC.2141"?>
<?rfc include="reference.RFC.3406"?>
    </references>

    <references title="Informative References">

<?rfc include="reference.RFC.2606"?>
<?rfc include="reference.RFC.6648"?>
    </references>

    <section title="Acknowledgements" anchor="acks">
      <t>Thanks to Martin Duerst, Barry Leiba, and Jim Schaad for their
feedback; 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.</t>
    </section>

  </back>

</rfc>
