Internet DRAFT - draft-brunner-xrp

draft-brunner-xrp



Network Working Group                              Eric Brunner-Williams
INTERNET-DRAFT                                           Ayesha Damaraju
                                                              Ning Zhang
                                                                 NeuStar
February, 2001                                       Expires August 2001


                   Extensible Registry Protocol (XRP)
                       <draft-brunner-xrp-00.txt>

Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   This document is an Internet-Draft. Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups. Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as ``work in progress.''

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.


Abstract

   This memo describes a connection-oriented, application layer client-
   server protocol for the provisioning and management of objects stored
   in a shared top level domain (TLD) central registry.  The protocol
   defines a command framework for object management operations and maps
   the commands to the objects defined in an extensible object data
   model.  The protocol is specified in XML Schema Definition.

Conventions Used In This Document

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





Brunner, et al             Expires August 2001                  [Page 1]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


Table of Contents

   Status of this Memo ............................................    1
   Copyright Notice ...............................................    1
   Abstract .......................................................    2
   Table of Contents ..............................................    3
   1. Introduction ................................................    6
   2. Protocol Description ........................................    7
      2.1 Session Layer Interface .................................    7
         2.1.1 Protocol Identification and Nameing Conventions ....    7
         2.1.2 Connection Establishment ...........................    7
         2.1.3 Authentication & Confidentiality ...................    8
         2.1.4 Protocol Initialization ............................    8
         2.1.5 Authorization ......................................    9
         2.1.6 Data Exchange (use of XML and MIME) ................   10
         2.1.7 Session Termination ................................   11
      2.2 Service Primitives ......................................   11
         2.2.1 Request Format .....................................   11
         2.2.2 Response Format ....................................   12
         2.2.3 Notify Format ......................................   14
         2.2.4 Acknowledgement Format .............................   14
      2.3 Services ................................................   15
         2.3.1 Object Management ..................................   15
            2.3.1.1 Create .......................................... 15
            2.3.1.2 Delete .......................................... 17
            2.3.1.3 Renew .........................................   18
            2.3.1.4 Transfer ......................................   19
            2.3.1.5 Modify ........................................   23
         2.3.2 Object Query .......................................   24
            2.3.2.1 Check .........................................   24
            2.3.2.2 Query .........................................   25
            2.3.2.3 List ..........................................   26
         2.3.3 Transaction Management .............................   27
            2.3.3.1 Cancel ........................................   27
            2.3.3.2 Transaction Status ............................   28
   3. Response Codes ..............................................   28
   4. Formal Syntax ...............................................   30
   5. Internationalization Considerations .........................   30
   6. IANA Considerations .........................................   31
   7. Security Considerations .....................................   31
   7.1 Session Layer ..............................................   31
   7.2 Authentication .............................................   31
   7.3 Access Control .............................................   31
   References .....................................................   32
   Authors' Addresses .............................................   32
   A.1 Introduction ...............................................   34
   A.2 Object Attributes ..........................................   34
   A.2.1 Contact Object ...........................................   34



Brunner, et al             Expires August 2001                  [Page 2]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


      A.2.1.1 Object Elements .....................................   34
      A.2.2 Nameserver Object .....................................   38
         A.2.2.1 Object Elements ..................................   38
      A.2.3 Domain-name Object ....................................   40
         A.2.3.1 Object Elements ..................................   40
      A.2.4 Intellectual Property .................................   43
         A.2.4.1 Object Elements ..................................   43
      A.2.5 Registrant Object .....................................   46
         A.2.5.1 Object Elements ..................................   46
      A.2.6 Registrar Object ......................................   49
      A.2.6.1 Object Elements .....................................   49
   A.3 XRP Command Mappings .......................................   53
      A.3.1 Create ................................................   53
         A.3.1.1 Contact Object ...................................   54
         A.3.1.2 Nameserver Object ................................   54
         A.3.1.3 Domain-name Object ...............................   57
         A.3.1.4 Intellectual Property Object .....................   60
         A.3.1.5 Registrant Object ................................   62
      A.3.2 Delete ................................................   63
         A.3.2.1 Contact Object ...................................   63
         A.3.2.2 Nameserver Object ................................   63
         A.3.2.3 Domain-name Object ...............................   64
         A.3.2.4 Intellectual Property Object .....................   67
         A.3.2.5 Registrant Object ................................   68
      A.3.3 Modify   ..............................................   69
         A.3.3.1 Contact Object ...................................   69
         A.3.3.2 Nameserver Object ................................   70
         A.3.3.3 Domain-name Object ...............................   72
         A.3.3.4 Intellectual Property Object .....................   73
         A.3.3.5 Registrant Object ................................   74
      A.3.4 Renew .................................................   76
         A.3.4.1 Domain Object ....................................   76
         A.3.4.2 Intellectual Property ............................   76
      A.3.5 Transfer ..............................................   77
         A.3.5.1 Contact Object ...................................   79
         A.3.5.2 Nameserver Object ................................   82
         A.3.5.3 Domain-name Object ...............................   85
         A.3.5.4 Registrant Object ................................   88
      A.3.6 Query .................................................   91
         A.3.6.1 Contact Object ...................................   91
         A.3.6.2 Nameserver Object ................................   93
         A.3.6.3 Domain-name Object ...............................   95
         A.3.6.4 Intellectual Property Object .....................   96
         A.3.6.5 Registrant Object ................................   98
         A.3.6.6 Registrar Object .................................  100
      A.3.7 Check .................................................  102
         A.3.7.1 Contact Object ...................................  102
         A.3.7.2 Nameserver Object ................................  103



Brunner, et al             Expires August 2001                  [Page 3]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


         A.3.7.3 Domain-name Object ...............................  105
         A.3.7.4 Intellectual Property Object .....................  106
         A.3.7.5 Registrant Object ................................  107
         A.3.7.6 Registrar Object .................................  109
      A.3.8 List ..................................................  110
         A.3.8.1 Registrar Object .................................  110
   Full Copyright Statement .......................................  111
   Acknowledgement ................................................  111

1. Introduction

   The Extensible Registry Protocol (XRP) Version 1.0, provides
   specifications for the exchange of messages between registrar clients
   and the registry server for handling registration and management of
   Internet domain names in shared Top Level Domain (TLD) registries.
   XRP messages are specified using Extensible Markup language (XML).
   XRP exceeds the requirements defined in the Generic Registry-
   Registrar Protocol Requirements, [GRRP].  XRP is a connection-
   oriented application protocol that is layered over multiple transport
   protocols.

   With the advent of the selection of the seven new Top Level Domain
   (TLD) proposals by ICANN at its meeting on 16 November, 2000, the
   utility of a common, generic RRP protocol for domain name shared
   registration systems is recognized by all successful applicants.  In
   meetings at the IETF the week of December 11, broad agreement was
   reached to develop a common generic RRP protocol that is based on the
   GRRP Requirements.

   This document is being released to provide a fat registry registrar
   protocol implementation of GRRP that relies on the Blocks Extensible
   Exchange Protocol (BEEP) framework to provide session management
   services, including channel management and security mechanisms for
   transport security, authentication, and access control.


2. Protocol Description

   XRP is a connection oriented, asynchronous request/response
   application protocol based on [GRRP].  It provides request response
   command primitives for data exchange between the registrar (client)
   and registry (server).  Each XRP session uses the Blocks Extensible
   Exchange Protocol (BEEP) Framework as the underlying session
   management layer.  BEEP provides a session management framework that
   can be mapped onto multiple transport protocols.  A BEEP peer may
   support from 1 to 256 concurrent channels.  Channel 0 is established
   as the control channel.




Brunner, et al             Expires August 2001                  [Page 4]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   XRP permits simultaneous and independent exchanges of messages
   between peers in the context of an XML schema wrapper [XML-SCHEMA].
   Message exchange occurs within BEEP channels that define a binding to
   a well defined aspect of the XRP application, such as transport
   security, user authentication, access control, and data exchange.
   Each channel has an associated "profile" that defines the syntax and
   semantics of the messages exchanged.  Profiles used for
   initialization and data exchange are defined in a registration
   template.  Data exchange messages are defined in XML schema
   definition (XSD).

   When a successful connection is established by the transport layer,
   the BEEP session layer client and server entities advertise the
   session management services and profiles it supports by exchanging a
   greeting message.  The client (the registrar) sends the proposed
   profiles for the channel.  The server (registry) creates the channel,
   selects one of the profiles, and sends it in a reply to the greeting
   message; otherwise the server indicates that none of the profiles are
   acceptable and declines creation of the channel.  Clients then use
   the "start" message to negotiate and initialize channels to establish
   a secure connection with the XRP server and exchange data.  The
   client exchanges authentication, identification, and option
   information and then engages in a series of client-initiated request-
   response message exchanges over the channels established for data
   exchange.  Channels and sessions are closed by the "close" message.

   The XRP session will go through a number of states during its
   establishment and existence. Figure 1 illustrates the possible states
   of an XRP server from initiation to disconnect. When an XRP session
   starts, only the control channel is defined which is used for session
   management.












                   This space intentionally blank







Brunner, et al             Expires August 2001                  [Page 5]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Figure X. XRP Finite State Transition Diagram.

   Each XRP state is defined as follows:

      1. WAIT - the server (registry) listens on the transport service
      socket for a connection open that triggers an exchange of greeting
      messages between the client and server.

      2. WFN - after the greeting exchange to advertise the profiles
      supported by both peers, the security and authentication profile
      negotiation is initiated by the client. If a suitable profile
      cannot be negotiated, the server disconnects the client.

      3. WFA - the server waits for validation of the client user
      authentication for the session. If the client user authorization
      fails, the client is disconnected.

      4. WFD - The server waits for data exchange over the channels
      specified by the client. Each channel is associated with a data
      exchange profile.

      5. VAL - Each request received by the server is validated by XRP
      and passed to the registry application software layer. If the
      request has errors, a negative response is returned to the client.

      6. EXE - If the request passes XRP validation, it is executed by
      the registry application software layer and a positive response is
      returned to the client. Each XRP channel provides a one to one
      data exchange with a Registry application; for example
      authenticating the request, notifying registrars, trademark
      monitoring, and update registry object.

      7. DIS - If a profile negotiation failure, user authentication
      failure, expiration of a server timeout, or receipt of a session
      termination occurs from the client, then the session is
      disconnected and the server returns to the listing state  - WAIT.

2.1 Session Layer Interface

   XRP (version 1.0) is specified as a BEEP service and identified by a
   profile as a URI prefix:

   http://www.neulevel.com/profiles/XRP/1.0

   The final designation of the protocol identification will determine
   the actual profile URI prefix.

2.1.1 Protocol Identification and Naming Conventions



Brunner, et al             Expires August 2001                  [Page 6]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Each and every message exchanged over a BEEP channel must be enclosed
   in protocol identifier tag which is "xrp". The protocol identifier
   consists of attribute "version" and "channel" which identifies the
   version of XRP and the channel to be used for data exchange between
   the client and server.

   Example:

   <?xml version "1.0" standalone="no"?>
   <xrp version="1.0" channel="001">
    ...message payload...
   </xrp>

   XRP peers are named using the "addr-spec" syntax specified in
   "Internet Message Format"  (draft-drums-msg-fmt-09), i.e.,
   local@domain <mailto:local@domain> syntax.

2.1.2 Connection Establishment

   XRP session is established, when a BEEP session is created and XRP
   profile is identified The SRV algorithm [RFC 2782] is used to
   determine the IP/TCP addressing information assigned to the peers:
      *       Service:  "beep"
      *       Protocol: "tcp"
   Profile   <http://www.neulevel.com/profiles/XRP/1.0>       (as a URI prefix)

   Example: Identification of XRP profile after BEEP session establishment

   S: <wait for incoming connection>
   S: <open connection>
   S: RPY 0 0 . 0 162
   S: Content-Type: application/beep+xml
   S:
   S: <greeting>
   S:      <profile uri="http://www.neulevel.com/profiles/XRP/1.0" />
   S:      <profile uri="http://xml.resource.org/profiles/TLS" />
   S:      <profile uri="http://xml.resource.org/profiles/sasl/OPT" />
   S: </greeting>
   S: END
   C: RPY 0 0 . 0 52
   C: Content-Type: application/beep+xml
   C:
   C: </greeting>
   C:  END

2.1.3 Authentication & Confidentiality

Authentication is a matter of provisioning for each BEEP peer. Peer



Brunner, et al             Expires August 2001                  [Page 7]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


authentication/User authentication is performed using one of the BEEP
security and authentication service profiles, such as SASL, after a
successful negotiation at the channel initialization. Whenever a
successful authentication occurs, on any channel, the authenticated
identity is updated for all existing and future channels on the BEEP
session; further no additional attempts at authentication are allowed.

Confidentiality is a matter of provisioning for each BEEP peer and is
achieved by transport layer security, such as TLS. Typically, any data
considered sensitive by an originating peer would have its content
encrypted for the intended recipient peer, rather than relying on hop-
by-hop encryption. Similarly, an originating peer will sign the content
if end-to-end authentication is desired.

2.1.4 Protocol Initialization

   When a client wants to create a channel for initial tuning or for
   data exchange. A BEEP "start" element is sent on channel zero, which
   is created on session establishment. The XRP protocol is identified
   during the connection establishment as a BEEP profile in the greeting
   message and initialized during the initial tuning of the channel used
   for data exchange.  An optional parameter corresponding to the XRP
   authorization sent by the client is carried within a "CDATA" element
   during channel creation. During the channel creation, a BEEP/XRP peer
   must send the XRP profile to the remote XRP peer, for example:

   C: MSG 0 1 . 52 209
   C: Content-Type: application/beep+xml
   C:
   C: <start number="1">
   C:      <profile uri="http://www.neulevel.com/profiles/XRP/1.0">
   C:      <![CDATA[<blob>ABYTXORERLTABYL</blob>]]>
   C:      </profile>
   C: </start>
   C: END
   S:
   S: RPY 0 1 . 264 99
   S: Content-Type: application/beep+xml
   S:
   S: <profile uri="http://www.neulevel.com/profiles/XRP/1.0">
   S: END

2.1.5 Authorization

   During channel creation, the XRP "profile" element in the BEEP
   "start" element may contain optional parameters, such as "userid" and
   "password" elements that could be used for second-level
   authentication, encoded and encapsulated in the "blob" element. Note



Brunner, et al             Expires August 2001                  [Page 8]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   that by the encapsulated operation failure, the channel creation will
   not be performed and the respective error code is returned. For
   example:

   C: MSG 0 1 . 52 209
   C: Content-Type: application/beep+xml
   C: <start number="1">
   C:      <profile uri="http://www.neulevel.com/profiles/XRP/1.0">
   C:      <![CDATA[<blob>ABYTXORERLTABYL</blob>]]>
   C:      </profile>
   C: </start>
   C: END
   S:
   S: RPY 0 1 . 264 190
   S: Content-Type: application/beep+xml
   S:
   S: <error code='551'>authorization failed</error>
   S: END

   In this case, a positive reply is sent (as channel creation
   succeeded), but the encapsulated response contains an indication as
   to why the operation failed. Otherwise, the server signifies success.
   For example:

   C: MSG 0 1 . 52 209
   C: Content-Type: application/beep+xml
   C: <start number="1">
   C:      <profile uri="http://www.neulevel.com/profiles/XRP/1.0">
   C:              <![CDATA[<blob>ABYTXORERLTABYL</blob>]]>
   C:      </profile>
   C: </start>
   C: END
   S:
   S: RPY 0 1 . 264 99
   S: Content-Type: application/beep+xml
   S:
   S: <profile uri="http://www.neulevel.com/profiles/XRP/1.0"/>
   S: END

2.1.6 Data Exchange (use of XML and MIME)

   The BEEP framework describes how arbitrary MIME content is exchanged
   as a BEEP payload. Each XRP request/response/notification/ack payload
   is preceded by the XRP tag <xrp version="1.0"> and ended with the XRP
   tag </xrp>. For example, to exchange the following message body that
   conforms the XML schema definition of XRP messages:

        <xrp version="1.0">



Brunner, et al             Expires August 2001                  [Page 9]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <response>
                  <reply>
                       <code>999</code>
                       <message>ERROR REASON</message>
                  </reply>
                  <transaction-id>
                       <date>2001-01-20</date>
                       <client-id>REG-1234</client-id>
                       <code>ABC-12345-XYZ</code>
                  </transaction-id>
             </response>
        </xrp>

   The corresponding BEEP message encoding will be as follows:

   C: MSG 1 2 . 42 560
   C: Content-Type: text/xml
   C
   C: <?xml version="1.0"?>
   C: <xrp version="1.0">
   C:      <response>
   C:              <reply>
   C:                      <code>999</code>
   C:                      <message>ERROR REASON</message>
   C:              </reply>
   C:              <transaction-id>
   C:                      <date>2001-01-20</date>
   C:                      <client-id>REG-1234</client-id>
   C:                      <code>ABC-12345-XYZ</code>
   C:              </transaction-id>
   C:      </response>
   C: </xrp>
   C: END

2.1.7 Session Termination

   XRP session termination is performed by closing the BEEP session,
   after all channels are closed.
2.2 Service Primitives

   XRP provides four basic service elements: requests, responses,
   notifications, and acknowledgements.

   When a session is established, the client authenticated, and data
   exchange channels established, XRP allows two styles of exchange
   between the client and server.

      1. request/response - the client sends a "request" message



Brunner, et al             Expires August 2001                 [Page 10]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


      requesting the server to perform the task, the server performs the
      task and replies with a "response" message (termed a positive or
      negative reply).

      2. notify/ack - the server notifies clients about certain events
      in the system, and receives an "ack" response as an
      acknowledgement.

   Both styles are one-to-one synchronous exchanges.

2.2.1 Request Format

   Once the XRP client is connected and data exchange channels are
   established, the XRP client interacts with the XRP server by sending
   a request (command) to the server and waiting for a response to the
   request. The request format consists of a command, command options,
   and request identifier represented in XML with in the "request"
   delimiter.  The "request" is the standard delimiter of an atomic
   registry server command, the instructions embedded are considered to
   be atomic in nature identifying the scope of a logical transaction.
   An XRP request must contain the following elements:

      1. A command <request> element that identifies the start of the
      command

      2. A command option corresponding to one of the valid XRP commands

      3. A <transaction-id> element that uniquely identifies the command
      to both the client and the server consisting of the following
      child elements:

         a) A <date> element that contains the date of the commands
         execution

         b) A <client-id> element that matches the identifier used by
         the client when establishing a session with the server. Client
         identifiers are unique and assigned by the operator of the
         registry.

         c) A <code> element that is assigned by the client and is
         unique on a per-day basis. Code elements must contain a client-
         coded combination of letters, numbers, and dashes.

   Example:
   <request>
        ... request type and parameters ...
         <transaction-id>
        ... transaction-id element contents ...



Brunner, et al             Expires August 2001                 [Page 11]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        </transaction-id>
   </request>

   The transaction identifier is created by the registrar and sent along
   with each transaction to provide command- response synchronization
   integrity. Transaction identifiers must be logged, retained, and
   protected to ensure that both the client and server have consistent
   transaction records, traceability, authentication and transaction
   rollback and recovery services.

   Each request will include one of the XRP supported command options:

   Example:

   <request>
        <obj1:request>
             ... request parameters ...
        </obj1:request>
        <transaction-id>
             ... transaction-id element contents ...
        </transaction-id>
   </request>

2.2.2 Response Format

   The registry will respond to every client request command, with a
   success or failure. Individual success and error conditions will be
   stated distinctly. The server responses to the client with its
   results payload contained in the "response" delimiter. Every response
   includes the transaction identification of the original request.

   Example:

   <response>
        ... response body ...
        <transaction-id>
             ... transaction identifier element contents ...
        </transaction-id>
   </response>

   Each response contains a "reply" element with the success or failure
   code of the processing results, an optional "data" element with
   object- specific results, and the transaction-id elements from the
   original request. If the command was processed successfully, only one
   "reply" element shall be returned. If the command was not processed
   successfully, then multiple "reply" elements may be returned to
   describe failure conditions. Each "response> element includes the
   following attribute and child elements:



Brunner, et al             Expires August 2001                 [Page 12]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The "reply" element identifies the success or failure of the request
   processing. If the request is processed successfully, there will be
   one "reply" element. If the request results in unsuccessful process,
   the response will contain multiple "reply" elements with all the
   failure conditions. Each "reply" element contains the following child
   elements:

      1.The "code" element identifying the result code of the request
      processing. A three digit, decimal number that describes the
      success or failure of the request.

      2. The "message" element containing a text description of the
      response code. The language of the text is the language specified
      by the client while session establishment.

      a) The "data" element, is optional and contains the data provided
      by the server in response to the request. A "data" element is
      included, only when the result is a success. The "data" includes
      object specific response to the request.

      b) The "data" element will not be included in responses to
      notifications

      c) The "transaction-id" element identifies the associated
      request's transaction identifier with the response.

      Example:

      <response>
           <reply>
                <code>nnn</code>
                <message>message text</message>
           </reply>
           <data>
                <obj:response>
                     ... response data ...
                </obj:response>
           </data>
           <transaction-id>
                ... transaction identifier elements of the
                      original request ...
           </transaction-id>
      </response>

2.2.3 Notify Format

   The registry will notify clients on occurrence of certain events in
   the system. The server notifies the client with a "notification"



Brunner, et al             Expires August 2001                 [Page 13]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   element containing object specific data elements in the "data"
   element and a "notification-id" element. Each notification shall
   include:

      1. A unique identifier for notification-acknowledgement
      synchronization integrity, traceability and authentication.

      2. Object specific request element, of those objects supported by
      the registry.

   The identifier is created by the registry and sent along with each
   notification. The notification identifier is created using the
   current date and a combination of identification information assigned
   by and unique to the registry (such as a registrar/contact
   identifier) and a unique identifier generated by the registry.

   Example:

   <notification>
        <data>
             ... object specific data ...
        </data>
        <notification-id>
                  <date>yyyy-mm-dd</date>
                  <client-id>clientXX</client-id>
                  <code>ABC-12345-XYZ</code>
        </notification-id>
   </notification>

2.2.4 Acknowledgement Format

   In response to a notification the client must send an
   acknowledgement, in an "ack" element. Each "ack" shall contain the
   "notification-id" element to identify the associated original
   notification's identifier.

   Example:

   <ack>
        <notification-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </notification-id>
   </ack>

2.3 Services




Brunner, et al             Expires August 2001                 [Page 14]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   XRP supports four major types of services implemented as requests
   (commands) and responses. The service types are:

      1. Object management

      2. Object query

      3. Transaction management

      4. Notifications

   Each of these services is atomic in nature and identifies a logical
   transaction. Each of the requests is idempotent, either succeeding
   completely or failing completely and producing predictable results in
   case of repeated execution.

2.3.1 Object Management

   Object management services permit the client to ask the server to
   execute an operation and return the result. The available operations
   fit into a request-response or transaction pattern.  The client is
   always provided a response about the completion of the transaction,
   whether it succeeded or failed.  Failure can be caused by an error
   either by the client or server.  XRP provides the following
   operations to administer objects, supported in the registry database.
   These operations allow the client's users to create, delete, modify
   and renew the instance of an object, transfer the instance of object,
   to modify the sponsoring client and to cancel a earlier performed
   transaction within a grace period.

2.3.1.1 Create

   The client sends a "create" element to create an instance of an
   object.  Depending on the object, the object may be created for an
   indefinite period of time or an object may be created for a specific
   validity period. The create request includes a object specific
   "create" request with object specific fields which should include the
   unique identity, a "name" of the object to create.

   Example:

   <request>
        <create>
             <obj1:create xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific fields ...
             </obj1:create>
        </create>



Brunner, et al             Expires August 2001                 [Page 15]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   The server on successful request processing sends a "response"
   element, along with the "reply" element and optional "data". The
   "data" element will include a object specific "create-response"
   element. The "response" element must also include the "transaction-
   id" of the respective "request".

   The "transaction-id" sent along with the successfully processed
   create request/response is also used by the server to authorize
   transfer requests from the clients. The authorization or the
   transaction identifier must be provided to the authoritative agent by
   the client on successful completion.

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:create-response xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific elements ...
             </obj1:create-response>
        </data>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   Authorization:  All client registrars must be authorized to use the
   create request.

2.3.1.2 Delete

   The client sends a "delete" element to delete an existing instance of
   an object. The delete request includes an object specific "delete"
   request with object specific fields which will identify the instance
   of the object to be deleted.



Brunner, et al             Expires August 2001                 [Page 16]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

   <request>
        <delete>
             <obj1:delete xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific identification fields ...
             </obj1:delete>
        </delete>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   The server on successfully processing the delete request, must
   respond with a "response" element. The response for the delete
   request includes only the "reply" element on success or failure with
   respective result code. The "response" element also includes the
   "transaction-id" of the respective "request". The objects must not be
   deleted if they are associated with other known objects. The
   following business rules apply to handling objects with known
   associations.

      1. Notify the associated objects sponsoring clients about the
      deletion of the object.

      2. Modify the status of the object to pending deletion.

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:delete-response xmlns:obj1="urn.NeuLevel.obj1"
             xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific elements ...
             </obj1:delete-response>
        </data>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>



Brunner, et al             Expires August 2001                 [Page 17]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   </response>

   Authorization: All sponsoring registrars are authorized to use the
   delete request on the objects they currently sponsor.

2.3.1.3 Renew

   The client sends a "renew" request to extend the validity period of
   an object. The renewal of objects is performed on those objects that
   are created for a period of time. The "renew" element will include an
   object specific "renew" element that identifies the objects with the
   unique fields and a period to extend the validity.

   Example:

   <request>
        <renew>
             <obj1:renew xmlns:obj1="urn.NeuLevel.obj1"
             xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific fields ...
             </obj1:renew>
        </renew>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-ZYZ</code>
        </transaction-id>
   </request>

   In response the server sends a "response" element, along with the
   "reply" element and optional "data" element on successful request
   processing. The "data" element includes a object specific "delete-
   response" element. The "response" element also includes the
   "transaction-id" of the respective "request".

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:renew-response xmlns:obj1="urn.NeuLevel.obj1"
             xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific elements ...
             </obj1:renew-response>
        </data>



Brunner, et al             Expires August 2001                 [Page 18]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   Authorization: All sponsoring clients are authorized to use the renew
   request on the objects they currently sponsor.

2.3.1.4 Transfer

   A "transfer" request element is used to transfer the sponsored
   registrar of an existing object. The transfer command allows
   registrars the capability to request, approve, reject, notify the
   losing registrar of a transfer, or obtain status. The operation to
   perform the transfer is identified in the "type" attribute of the
   "transfer" element, where type can be a  "request" or "approve" or
   "reject" or "status". Along with the object identifier "transfer"
   element must include the "authorization" element associated with the
   object to confirm the authority of the requesting registrar. The
   elements in the "transfer" element to identify the object are object
   specific.

   Example:

   <request>
   <transfer type="request">
             <obj1:transfer xmlns:obj1="urn.NeuLevel.obj1"
             xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific identifier fields ...
             </obj1:transfer>
        </transfer>
        <authorization>
             <date>yyyy-mm-dd</date>
             <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   A transfer request must include a notification of the domain-name
   object transfer request that is sent to the current sponsoring
   registrar for approval.



Brunner, et al             Expires August 2001                 [Page 19]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

   </notification>
        <data>
             <obj1:transfer-response xmlns:obj1="urn.NeuLevel.obj1"
             xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific identifier fields ...
             </obj1:transfer-response>
        </data>
        <notification-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
   </notification-id>
   </notification>

   A transfer response is sent to the gaining registrar along with the
   data element that includes the object specific "transfer-response"
   element. The "transfer-response" element must identify the status of
   transfer, object instance, current sponsoring registrar of the object
   and dates related to the transfer.

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:transfer-response xmlns:obj1="urn.NeuLevel.obj1"
                    xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd>
             ... object specific fields identifying pending status ...
             </obj1:transfer-response>
        </data>
        <transaction-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   The transfer request will allow the losing registrar to respond to
   the notification by approving or rejecting the transfer along with
   the "authorization".

   Example:




Brunner, et al             Expires August 2001                 [Page 20]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   <request>
        <transfer type="approve">
             <obj1:transfer xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific identifier fields ...
             </obj1:transfer>
        </transfer>
        <authorization>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>
        <transaction-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   When the losing registrar responds to the notification or the
   response times out -- the XRP server responds with a notification to
   the gaining registrar by sending a "notification" element.

   Example:

   <notification>
              <data>
             <obj1:transfer-response xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific identifier fields ...
             </obj1:transfer-response>
        </data>
        <notification-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </notification-id>
   </notification>

   A query on the status of an earlier transfer request is performed by
   using "transfer" request element by identifying the type of request
   as "status".  The "transfer" must include object specific transfer
   element with will identify the object to query. Along with the object
   identifier, a "transfer" element must include the "authorization"
   element associated with the object to confirm the authority of the
   requesting client. The elements in the "transfer" element to identify
   the object are object specific.




Brunner, et al             Expires August 2001                 [Page 21]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

   <request>
        <transfer type="status">
             <obj1:transfer xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific identifier fields ...
             </obj1:transfer>
        </transfer>
        <authorization>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>
        <transaction-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   A response must be sent to the gaining registrar along with the data
   element that includes the object specific "transfer-response"
   element.  The "transfer-response" element must identify the status of
   transfer, object instance, current sponsoring registrar of the object
   and dates related to the transfer.

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:transfer-response xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd>
                  ... object specific fields ...
                  ... identifying pending status ...
             </obj1:transfer-response>
        </data>
        <transaction-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>




Brunner, et al             Expires August 2001                 [Page 22]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Authorization:  All registrars must be authorized to use the
   "transfer" request. A registrar must be authorized to query an object
   for which they are either the gaining or the losing registrar.
   Approval or rejection of the notification of domain transfer must be
   accepted only from the current sponsoring registrar.

2.3.1.5 Modify

   A "modify" element is used to modify information associated with an
   existing object. The "modify" element includes an object specific
   "modify" element that identifies the objects with the unique fields
   and a type of change and values.

   Example:

   <request>
        <modify>
             <obj1:modify xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific fields ...
             </obj1:modify>
        </modify>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   The server processes the request and sends a "response" element,
   along with the "reply".

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
   <data>
             <obj1:modify-response xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific elements ...
             </obj1:modify-response>
        </data>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>



Brunner, et al             Expires August 2001                 [Page 23]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   Authorization: All sponsoring clients are authorized to use the
   modify request on the objects they currently sponsor.

2.3.2 Object Query

   Object query services permit the registrar client to ask the server
   to execute an operation and return the result. Both the client and
   server entities are always notified about the completion of the
   transaction, whether it succeeded or failed. Failure can be caused by
   an error either by the client or server. XRP provides the following
   operations to query objects, supported in the registry. These
   operations allow users to query the existence, information of an
   object.

2.3.2.1 Check

   The "check" request is used to determine the existence of an object
   in the registry. The "check" element must include the elements to
   identify the object, which are object specific.

   Example:

   <request>
        <check>
             <obj1:check xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific fields ...
             </obj1:check>
        </check>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   In response the server will process the request and send a "response"
   element, along with an object specific data element "check-response"
   in the response.

   Example:

   <response>
        <reply>



Brunner, et al             Expires August 2001                 [Page 24]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:check-response xmlns:obj1="urn.NeuLevel.obj1"
             xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific fields ...
             </obj1:check-response>
        </data>
        <trainsaction-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   Authorization: All registrars must be authorized to use the "check"
   request.

2.3.2.2 Query

   The "query" request is used to obtain the information of an existing
   object in the registry. The "query" element must include the elements
   to identify the object that are object specific.

   Example:

   <request>
        <query>
             <obj1:query xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1 obj1.xsd">
                  ... object specific fields ...
             </obj1:query>
        </query>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   The server on successfully processing the request responds with a
   "response" element, along with the object specific data element
   "query-response".

   Example:

   <response>



Brunner, et al             Expires August 2001                 [Page 25]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             <obj1:query-response xmlns:obj1="urn.NeuLevel.obj1"
                  xsi:schemaLocation="urn.NeuLevel.obj1  obj1.xsd">
                  ... object specific fields ...
             </obj1:query-response>
        </data>
        <trainsaction-id>
             <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   Authorization: All registrars must be authorized to use the "query"
   request. Only the sponsoring registrar must be able to access the
   object authorization information. Access to object information may be
   restricted to only sponsoring clients.

2.3.2.3 List

   The "list" request provides a list of registrar identifiers for all
   registrars in the registry.

   Example:

   <request>
         <list>
             <obj1:list xmlns:obj1="urn.registrar.obj1"
                  xsi:schemaLocation="urn.registrar.obj1 obj1.xsd">
                  ... object specific identifier fields ...
             </obj1:list>
        </list>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   A response must be sent to the client along with the data elements
   that include a list of registrar object specific unique identifiers.

   Example:




Brunner, et al             Expires August 2001                 [Page 26]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   </response>
        <reply>
             <code>nnn</code>
             <message>message text</message>
        </reply>
        <data>
             ... object specific fields identifying
             registrar identifiers ...
        </data>
        <transaction-id>
           <date>yyyy-mm-dd</date>
        <client-id>clientYY</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </response>

   Authorization: All clients must be authorized to use the "list"
   request.

2.3.3 Transaction Management

   Transaction management services permit the registrar client to cancel
   or obtain status on a transaction. The server executes the requested
   operation and returns the result. The service users, both in the
   client and the server, are always notified about the completion of
   the transaction, whether it succeeded or failed. Failure can be
   caused by an error either by the client or server. XRP provides the
   following transaction management operations for objects supported in
   the registry.

2.3.3.1 Cancel

   A "cancel" element is used to cancel any transaction, processed
   successfully. The server will allow canceling transactions, only with
   in a certain grace period after the completion of the transactions.
   The "cancel" element has the transaction id of the request - in the
   "request-id" element.

   Example:

   <request>
        <cancel>
             <request-id>
                  <date>yyyy-mm-dd</date>
                  <client-id>clientXX</client-id>
                  <code>ABC-12345-XYZ</code>
             </request-id>
        </cancel>



Brunner, et al             Expires August 2001                 [Page 27]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </transaction-id>
   </request>

   The server must respond with a success or failure reply.
   Authorization: Accepted only from the original requesting registrar.

2.3.3.2 Transaction Status

   A "trans-status" element is used to query the status of an earlier
   request. The "trans-status" element has the transaction id of the
   request - in the "request-id" element.

   Example:

   <request>
        <trans-status>
             <request-id>
                  <date>yyyy-mm-dd</date>
                  <client-id>clientXX</client-id>
                  <code>ABC-12345-XYZ</code>
             </request-id>
        </trans-status>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>-id>
        </transaction-id>
   </request>

   The server must respond with a success or failure reply.

   Example:

   <response>
        <reply>
             <code>nnn</code>
             <message> ... message text ... </message>
        </reply>
        <transaction-id>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>-id>
        </transaction-id>
   </response>



Brunner, et al             Expires August 2001                 [Page 28]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Authorization: Accepted only from the original requesting
   registrar.

3. Response Codes

   XRP requests will return a variety of response codes to signify
   success completion or failure conditions. Every XRP response must
   include a response code and a human-readable description of the
   response code. If not specified in the data exchange profile, the
   default language is US English. The following table lists all the
   defined XRP response codes.

   Category         Code          Response text in US English
   -----------------+-------------+---------------------------------------
   Success          111           Request completed successfully
   Failure          999           Request failed

   -----------------+-------------+---------------------------------------
   Protocol Syntax  200           Syntax error in parameters
                    201           Unknown request
                    202           Invalid request syntax
                    203           General syntax error
                    204           Invalid parameter
                    205           Parameter value range error
                    206           Missing required parameter
                    207           Parameter value syntax error
                    208           Transaction Identifier is not unique
                                     for the request
                    209           Invalid Channel number
                                     Channel does not exist

   -----------------+-------------+---------------------------------------
   Object Management300           Unknown object services requested
                    301           Duplicate object
                    302           Object not eligible for deletion
                    303           Object is not eligible for renewal
                    304           Object is not eligible for transfer
                    305           Object is not eligible for checking
                    306           Object is not eligible for querying
                    307           Access denied to query this object
                    308           Object status prohibits requested operation

   -----------------+-------------+---------------------------------------
   Session/Channel  400           Server ending session
   Management
                    401           Timeout; server ending session
                    402           Authentication required
                    403           Authentication mechanism insufficient



Brunner, et al             Expires August 2001                 [Page 29]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                    404           Authentication mechanism requires encryption
                    405           Authentication failure
                    406           Authorization failure
                    407           Too many sessions open
                    408           Invalid channel number
                    409           Duplicate channel
                    410           Transaction Pending
                    411           Transaction Canceled
                    412           Transaction Succeeded
                    413           Transaction Failure

   -----------------+-------------+---------------------------------------
   Billing          500           Insufficient amount in account to perform
                                     operation

   -----------------+-------------+---------------------------------------
   Registry Management
                    600           Registry services unavailable due to
                                     Planned Maintenance


4. Formal Syntax

   XRP is specified in XML Schema definition notation. The formal syntax
   of XML enables automated validation of the XRP XML instances.


5. Internationalization Considerations

   XRP is a protocol based on XML, which provides native support for
   encoding information using the double-byte Unicode character set and
   other representations such as UTF-8.  Standard compliant XML
   processors should be able to understand both Unicode and UTF-8
   character sets.  XRP assumes UTF-8 as the default encoding character
   set.  XML also includes a provision for identifying other character
   sets through use of an "encoding" attribute in an <?xml?> processing
   instruction.  The complete list of character set encoding identifiers
   is maintained by IANA and is described in [CHARSET] and [RFC1700].

   XRP returns a human-readable message with every response code.  The
   XRP Specification describes result codes in US English, but the
   actual text returned with a result may be provided in a language
   negotiated when a session is established.  Languages other than US
   English must be noted through specification of a "lang" attribute for
   text-based elements.  Valid values for the "lang" attribute and
   "lang" negotiation elements are described in [RFC1766].

   All date-time values presented via XRP must be expressed in Universal



Brunner, et al             Expires August 2001                 [Page 30]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Coordinated Time.  The XML Schema "date" format allows use of time
   zone identifiers to indicate offsets from the zero meridian, but this
   option MUST NOT be used within XRP.  Both extended and truncated date
   and time forms defined in [ISO8601] MAY be used.


6. IANA Considerations

   Schemas must be registered to ensure URI uniqueness, however, the
   IETF does not currently have a recommended repository for the
   registration of XML schemas. IANA should maintain a registry of XML
   namespace and schema URI assignments.  Per policies described in
   [IANA], URI assignment requests should be reviewed by a designated
   functional expert, and values should be assigned only as a result of
   standards action taken by the IESG.


7. Security Considerations

   XRP provides transport security, authentication, and access control
   security mechanisms based on security profiles provided by the
   session layer. Protection against denial of service attacks is
   provided by network intrusion detection and load distribution
   systems.

7.1 Session Layer

   Each session is protected at the transport layer by the TLS
   encryption scheme that is based on secure socket layer (SSL)
   encryption.

7.2 Authentication

   XRP uses a variant of the Simple Authentication Security Layer (SASL)
   mechanism described in [RFC2595] to provide a simple application-
   layer authentication service.  The SASL security mechanism specifies
   provision of an authorization identifier, authentication identifier,
   and password as a single string separated by ASCII NUL characters,
   XRP specifies use of a combined authorization and authentication
   identifier and digital certificate as distinct XML elements.

7.3 Access Control

   XRP uses an authorization identifier and transaction identifier
   information to authorize transfer commands.  The authorization
   identifier, consisting of the registrar client's userid and password,
   controls access to transaction services. When an object is created or
   transferred on behalf of a third party, the transaction identifier



Brunner, et al             Expires August 2001                 [Page 31]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   associated with the XRP <create> or <transfer> must be provided to
   the third party by using a facility such as TLS that provides privacy
   services. Repeated password guessing attempts are discouraged by
   limiting the number of <login> attempts that can be attempted on an
   open connection.  The XRP server MUST close an open connection if
   three <login> attempts are made with either an invalid client
   identifier, an invalid password, or both an invalid client
   identifier, digital certificate, and an invalid userid and password.


References

   [GRRP] Hollenbeck, S., "Generic RRP Requirements", Internet-Draft
   <draft-hollenbeck-grrp-reqs-06.txt>, work in progress.  (To be
   replaced by the RFC name when this memo is published.)

   [EPP] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)",
   <draft-hollenbeck-epp-00.txt> work in progress.  (To be replaced by
   the RFC name when this memo is published.)

   [BEEP] Rose, M.T., "The Blocks Extensible Exchange Protocol  (BEEP)
   Framework", <draft-ietf-beep-framework-11.txt> work in progress.  (To
   be replaced by the RFC name when this memo is published.)

   [BXXP] Rose, M.T., "On the Design of Application Protocols", <draft-
   mrose-bxxp-design-00.txt> work in progress.  (To be replaced by the
   RFC name when this memo is published.)

   [RFC1700] Reynolds, J., Postel, J., "Assigned Numbers", STD 2, RFC
   1700, October 1994.

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

   [CHARSET] ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets

   [RFC1766] Alvestrand, H., "Tags for the Identification of Languages",
   RFC 1766, March 1995.

   [XML] Bray, T., et al, "Extensible Markup Language (XML) 1.0 (Second
   Edition)", 6 October 2000.  http://www.w3.org/TR/2000/REC-
   xml-20001006

   [XML-SCHEMA] XML Schema Part 1: Structures Working Draft. D. Beech,
   M.  Maloney, N. Mendelshohn. April 2000.
   http://www.w3.org/TR/2000/WD-xmlschema-1-20000407/

   XML Schema Part 2: Datatypes Working Draft. P. Biron, A.  Malhotra.



Brunner, et al             Expires August 2001                 [Page 32]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   April 2000.  http://www.w3.org/TR/2000/WD-xmlschema-2-20000407/

Author's Addresses

   Eric Brunner-Williams
   NeuStar, Inc.
   1415 Forest Ave.,
   Portland, ME 04103
   Phone: +1 202 533 2600
   Email: ebw@neustar.com

   Ayesha Damaraju
   NeuStar, Inc.
   1120 Vermont Ave, N.W.
   Suite 550
   Washington, DC 20005
   Phone: +1 202 533 2600
   Email: ayesha.damaraju@neustar.com

   Ning Zhang
   NeuStar, Inc.
   1120 Vermont Ave, N.W.
   Suite 550
   Washington, DC 20005
   Phone: +1 202 533 2600
   Email: Ning.Zhang@neustar.com

























Brunner, et al             Expires August 2001                 [Page 33]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


Appendix A: Object Mapping

A.1 Introduction

   This appendix documents the XRP command mapping to six registry
   objects that are supported in the XRP transactions: contact,
   nameserver, domain-name, intellectual property, registrant, and
   registrar.  XRP object mappings are described in a format similar to
   that used in the base document.


A.2 Object Attributes

   The attributes associated with each object are described in this
   subsection.

A.2.1 Contact Object

   The contact is the registrar's owner of the host and domain objects
   in the registry. Contacts are used for billing purposes, finding
   responsible parties for the objects, and for ownership and
   authenticating modification requests. The sponsoring registrar has
   all the administrative privileges to manage the object.

A.2.1.1 Object Elements

   The contact object consists of all ICANN required data elements and
   elements to the support the extended services of registry describing
   a technical, admin, registrant, or billing contact. The contact is
   required to have the following elements:

   Id - A unique identifier is created for every contact in the registry
   and this unique identifier is used to reference a contact. The format
   is alphanumeric with the minimum and maximum length and character set
   specified in the XML Schema Definition (xsd).

   Example:

        <id>AD-1234</id>

   Name & Contact Type - The name element contains the contact's full
   name. The element must also contain a "type" attribute with a value
   of either "individual" or "organization". The format is alphanumeric
   latin characters with the minimum and maximum length and character
   set specified in the XML Schema Definition (xsd).

   Example:




Brunner, et al             Expires August 2001                 [Page 34]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <name type="organization">Ayesha L. Damaraju</name>

   Title - The title element contains the contact's title. This element
   is optional. The format is alphanumeric latin characters with the
   minimum and maximum length and character set specified in the XML
   Schema Definition (xsd).

   Example:

        <title>Systems Engineer</title>

   Organization - The organization element contains the name of the
   organization that the contact belongs to. This element is optional.
   The format is alphanumeric latin characters with the minimum and
   maximum length and character set specified in the XML Schema
   Definition (xsd).

   Example:

        <organization>NeuLevel</organization>

   Address - The postal address element in supported in normalized
   address or in RIPE style address format. The normalized address will
   include street, city, state, country and postal code elements,
   whereas the RIPE style address will include line element. The format
   is alphanumeric latin characters with the minimum and maximum length
   for each field specified in the XML Schema Definition (xsd).

   Example:

        <address>
             <street>1120 Vermont Avenue</street>
             <city>Washington</city>
             <state>DC</state>
             <postalcode>20005</postalcode>
             <country>US</country>
        </address>

   Line - The line element contains the address in RIPE style.

   Example:

        <address>
             <line>123 king street, washington, dc, 20005, us</line>
        </address>

   Street - The street element contains the street line of a postal
   address.



Brunner, et al             Expires August 2001                 [Page 35]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <street>1120 Vermont Avenue</street>

   City - The city element contains the city or area of the contact.
   This is a ICANN required element.

   Example:

        <city>Washington</city>

   State - The state element contains the state or province of the
   contact. This is an ICANN required element.

   Example:

        <state>DC</state>

   Postal Code - The postalcode element contains a delivery indicator
   unique to the address of the contact. This is often referred to as
   the Zip Code in the USA.

   Example:

        <postalcode>20005</postalcode>

   Country Code - The country element is an ISO 3166-1 alpha-2 two (2)
   letter country code for the country of origin of the contacts postal
   address.

   Example:

        <country>US</country>

   Voice,Fax - The voice element contains an international telephone
   number of the contact. The fax element contains an international
   telephone number for facsimile of the contact. The following may be
   included ., -, and " "  in the phone number for readability. The
   number must be a full E.164 number starting with "+" and then country
   code.

   Example:

        <voice>+1.8005551212</voice>
        <fax>+1.8005551200</fax>

   Email - The email element contains a valid Internet E-Mail address of
   the contact.



Brunner, et al             Expires August 2001                 [Page 36]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <email>ayesha.damaraju@NeuLevel.biz</email>

   Sponsoring Registrar - Element contains the identifier of the
   sponsoring registrar. The sponsoring registrar client has all the
   administrative privileges to manage the object. In addition, it
   includes the date and time of the most recent successful transfer to
   the sponsoring registrar client. The transferred date must not have
   contents in it if the contact has never been transferred. The format
   of the time field is UCT extended format of ISO 8601.

   Example:

        <client>
             <transferred-date>yyyy-mm-ddT12:00:00.0Z</transferred-date>
             <client-id>clientXX</client-id>
        </client>

   Created - Element contains the reference to the registrar client that
   created the object and date and time of object creation. The format
   of the time field is UCT extended format of ISO 8601.

   Example:

        <created>
             <created-date>yyyy-mm-ddT12:00:00.0Z</created-date>
             <created-client-id>clientXX</created-client-id>
        </created>

   Modified - Element contains the reference to the registrar client
   that modified the object and date and time of object creation. The
   format of the time field is UCT extended format of ISO 8601.

   Example:

        <modified>
             <modified-date>yyyy-mm-ddT12:00:00.0Z</modified-date>
             <modified-client-id>clientXX</modified-client-id>
        </modified>

   Authorization Identifier - This is a transaction identifier of the
   original creation transaction or the most recent successful transfer
   transaction. The format of each field is as specified in the XML
   Schema Definition.

   Example:




Brunner, et al             Expires August 2001                 [Page 37]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <authorization>
             <date>yyyy-mm-dd</date>
             <client-id>clientXX</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>

   Access Control - This is the element that defines the access control
   for the contact information. The element must be one of the following
   strings, which restricts access to the object as specified in the XML
   Schema Definition.
      1. Default "None"

      2. Level of Access = [system, none] where system is registrar only
      access and none is no restriction.

   Example:

        <access>none</access>

   Optional elements - An optional element is included in the contact to
   support extended whois service and different formats and fields
   supported by different registrars. Optional elements consist of two
   elements "key" and "value". Each optional element will carry
   additional key and the respective value of the key.

   Example:

        <optional>
             <key>field1</key>
             <value>value1</value>
        </optional>

A.2.2 Nameserver Object

   The nameserver object elements must contain the names and IP
   addresses of authoritative nameservers for the domain. Nameserver is
   associated with maximum of 13 IP addresses. Nameservers are required
   by ICANN and must be reference in all "domain" elements. The
   sponsoring registrar has all the administrative privileges to manage
   the object.

A.2.2.1 Object Elements

   The nameserver includes the following elements:

   Fully Qualified Name - The fqdn attribute specifies the fully
   qualified name of the nameserver, a unique name by which the server
   is referenced by the other objects. The format is alphanumeric and



Brunner, et al             Expires August 2001                 [Page 38]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   must be a valid Internet hostname.

   Example:

        <name>ns1.neulevel.biz</name>

   IP Address element - IP address element contains the IP address(es)
   associated with the nameserver. Nameserver can be associated with up
   to 13 IP addresses.

   Example:

        <ip>101.1.1.1</ip>
        <ip type="ipv6">::FFF:102.1.1.2</ip>


   The ip element contains IP version 4 or version 6 address information.
   The attribute type can either be "ipv4" or "ipv6" this attribute
   defaults to ipv4 if it is not listed.

   Sponsoring Registrar - Element contains the identifier of the
   sponsoring registrar client. The sponsoring registrar has all the
   administrative privileges to manage the object.

   Transferred Date - This element includes the date and time of the most
   recent successful transfer to the sponsoring registrar element. The
   transferred date must not have contents in it if the contact has never
   been transferred.

   Example:

        <client>
             <client-id>registrar001</client-id>
             <transferred-date>yyyy-mm-ddT12:00:00.0Z</transferred-date>
        </client>

   Created - Element contains the reference to the registrar that
   created the object and date and time of object creation.

   Example:

        <created>
             <created-date>yyyy-mm-ddT12:00:00.0Z</created-date>
             <created-client-id>registrar001</created-client-id>
        </created>

   Modified - Element contains the reference to the registrar that
   modified the object and date and time of object creation.



Brunner, et al             Expires August 2001                 [Page 39]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <modified>
             <modified-date>yyyy-mm-ddT12:00:00.0Z</modified-date>
             <modified-client-id>registrar001</modified-client-id>
        </modified>

   Authorization Identifier - This is a transaction identifier of the
   registrar who successfully completed the most recent transfer
   transaction.

   Example:

        <authorization>
             <date>yyyy-mm-dd</date>
             <client-id>registrar001</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>

A.2.3 Domain-name Object

   The domain-name object contains references to nameserver host objects
   for building the root's zone files, references to contacts for
   billing, authentication and delegation of responsible parties.
   Domain-name objects are identified by their fully qualified domain-
   name. The sponsoring registrar has all the administrative privileges
   to manage the object.

A.2.3.1 Object Elements

   The domain-name object includes the following elements:

   Fully Qualified domain-name - This attribute specifies the fully
   qualified domain-name, a unique name by which the server is
   referenced by the other objects.

   Example:

        <name>neulevel.biz</name>

   Nameserver(s) Elements - The nameserver(s) elements contain the fully
   qualified names of the nameserver(s) associated to the domain object.
   There are multiple instances of the nameserver element. Up to 13
   nameservers can be listed The format is alphanumeric and must be a
   valid Internet hostname.

   Example:




Brunner, et al             Expires August 2001                 [Page 40]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <nameserver>ns1.neulevel.biz</nameserver>

   Child Server Elements - The child server elements contain the fully
   qualified names of the child nameservers created under the parent
   domain. An unlimited number of child nameserver elements may be
   specified.

   Example:

        <childserver>NY01.neulevel.net</childserver>

   Sponsoring Registrar - Element contains the identifier of the
   sponsoring registrar client.

   Registrant Transfer Date - This Element includes the date and time of
   the most recent successful transfer to the sponsoring registrar. The
   transferred date must not have contents in it if the contact has
   never been transferred.

   Example:

   <client>
        <client-id>registrar001</client-id>
        <transferred-date>yyyy-mm-ddT12:00:00.0Z</transferred_date>
   </client>

   Registrant Identifier - Element contains the registrant identifier of
   the registrant.

   Example:

        <registrant-id>coca-cola-000001</registrant-id>

   Contact Elements - The contact elements contain contact identifiers
   for the registrar "administrative", "technical", and "billing"
   contacts.  The type of the contact is specified by the type attribute
   associated with each contact element. There are multiple instances of
   the contact element.

   Example:

        <contact type="billing">John-R-Doe-00001</contact>

   Expiration date - The expiration date element contains the date and
   time identifying the end of the domain-names registration period.

   Example:




Brunner, et al             Expires August 2001                 [Page 41]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <expiration-date>yyyy-mm-ddT12:00:00.0Z</expiration-date>

   Registration Period - The registration period element contains the
   date and time identifying the length of domain-names registration
   period.

   Example:

        <period>2</period>

   Restricted TLD Authorization - Element contains the authorization of
   the registrant, to register a domain in the restricted .tld.

   Example:

        <reg-auth>authorized</reg-auth>

   Created - Element contains the reference to the registrar that
   created the object and date and time of object creation.

   Example:

        <created>
             <created-date>yyyy-mm-ddT12:00:00.0Z</created-date>
             <created-client-id>clientXX</created-client-id>
        </created>

   Modified - Element contains the reference to the registrar that
   modified the object and date and time of object creation.

   Example:

        <modified>
             <modified-date>yyyy-mm-ddT12:00:00.0Z</modified-date>
             <modified-client-id>clientXX</modified-client-id>
        </modified>

   Authorization Identifier - This is a transaction identifier of the
   original creation transaction or the most recent successful transfer
   transaction.

   Example:

        <authorization>
             <date>yyyy-mm-dd</date>
             <client-id>registrat001</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>



Brunner, et al             Expires August 2001                 [Page 42]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Status Elements - The status element contains the current status
   associated with the domain. A domain may have multiple status entries
   at any given time. Some status entries may be mutually exclusive.
   Indicators must be provided to identify a newly created state,
   inactive with no active nameservers associated with it, an active
   state, a hold state, a lock state, a pending transfer state, and a
   pending removal state.

   Example:

        <status>active</status>

A.2.4 Intellectual Property

   The intellectual property object will contain the information, for
   providing intellectual property notification service. This includes
   registered trademarks and brandnames. The sponsoring registrar has
   all the administrative privileges to manage the object.

A.2.4.1 Object Elements

   The intellectual property object includes the following elements:

   Id - a unique id is stored for every intellectual property object in
   the registry and this unique identifier is used to reference an
   object instance. The format is 3 to 16 character alphanumerical field
   specified in the XML Schema Definition.

   Example:

        <id>coca-cola0000001</id>

   Monitored String - Each object must contains multiple instances of a
   monitored string, over which the party claims intellectual property.
   The type of matching must be specified for each monitor string; for
   example, [exact, partial, regexp]. An unlimited number of monitored
   string entities may be specified.

   Example:

        <monitor-string type="exact">coca-cola</monitor-string>
        <monitor-string type="regexp">[A-Za-z]*cola|cola[0-9]*
             </monitor-string>
        <monitor-string type="partial">coca</monitor-string>

   Trademark - the trademark element identifies the information related
   to the trademark.  There are three types of trademark entities:
   "trademark", "service mark", and "claim". The trademark element must



Brunner, et al             Expires August 2001                 [Page 43]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   contain the following information.
      1. Exact trademark - "name"
      2. Country of registration - "country"
      3. Trademark Serial Number - "reference"
      4. Trademark Registration Number - "registration-no"
      5. Date of first use - "date"
      6. Indicator - "indicator", Values are "live" or "dead"

   Example:
        <trademark type="trademark">
             <name>coco-cola</name>
             <country>US</country>
             <reference>nnnnnnnn</reference>
             <registration-no>nnnnnnn</registration-no>
             <date>yyyy-mm-dd</date>
             <indicator>live</indicator>
        </trademark>

   Contact Elements - The contact elements contain contact identifiers
   for trademark "holder" organization representative, the notification
   receiver "receiver" representative and the "legal" representative.
   The type of the contact is specified by the type attribute associated
   with each contact element. There are multiple instances of the
   contact element.

   Example:

        <contact type="legal">lee-f-bailey0001</contact>

   Sponsoring Registrar - Element contains the registrar identifier of
   the sponsoring registrar client.

   Transferred Date - This element includes the date and time of the
   most recent successful transfer to the sponsoring registrar element.
   The transferred date must not have contents in it if the contact has
   never been transferred.

   Example:

        <client>
             <client-id>registrar001</client-id>
             <transferred-date>yyyy-mm-ddT12:00:00.0Z</transferred-date>
        <client>

   Registration Period - The registration period element contains the
   date and time identifying the length of intellectual property
   registration period.




Brunner, et al             Expires August 2001                 [Page 44]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <period>2</period>

   Expiration date - The expiration date element contains the date and
   time identifying the end of the object's registration period.

   Example:

        <expiration-date>yyyy-mm-ddT12:00:00.0Z<expiration-date>


   Created - Element contains the reference to the registrar id that
   created the object and date and time of object creation.

   Example:
        <created>
             <created-date>yyyy-mm-dd</created-date>
             <created-client-id>registrar0001</created-client-id>
        </created>

   Modified - Element contains the reference to the registrar id that
   modified the object and date and time of object creation.

   Example:

        <modified>
             <modified-date>yyyy-mm-ddT12:00:00.0Z</modified-date>
             <modified-client-id>registrar001</modified-client-id>
        </modified>

   Authorization Identifier - This is a transaction identifier of the
   original creation transaction or the most recent successful transfer
   transaction.

   Example:

        <authorization>
             <date>yyyy-mm-dd</date>
             <client-id>registrar001</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>

   Optional elements - An optional element is included in the contact to
   support extended services supported by different registrars. Optional
   elements consist of two elements "key" and "value". Each optional
   element will carry additional key and the respective value of the
   key.



Brunner, et al             Expires August 2001                 [Page 45]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <optional>
             <key>field1</key>
             <value>value1</value>
        </optional>

A.2.5 Registrant Object

   The registrant object will contain information on the holder of a
   registered domain name. The sponsoring registrar has all the
   administrative privileges to manage the object.

A.2.5.1 Object Elements

   The registrant object includes the following elements:

   Id - A unique identifier is created for every registrant object in
   the registry and this unique registrant identifier is used to
   reference an object instance. The registrant identifier is an
   alphanumeric field 3 to 16 characters in length defined by the XML
   Schema Definition.

   Example:

        <id>coca-cola-000001</id>

   Registrant Name - Each object must contain only one registrant name -
   the businesses or entity name.

   Example:

        <name>Coca-Cola Company</name>

   Address - The postal address element in supported in normalized
   address or in RIPE style address format. The normalized address will
   include street, city, state, country and postal code elements,
   whereas the RIPE style address will include line element.

   Example:

        <address>
             <street>1120 Vermont Avenue</street>
             <city>Washington</city>
             <state>DC</state>
             <country>US</country>
             <postalcode>20005</postalcode>
        </address>



Brunner, et al             Expires August 2001                 [Page 46]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Line - The line element contains the address in RIPE style.

   Example:

        <address>
             <line> ... </line>
        </address>

   Street - The street element contains the street line of a postal
   address.

   Example:

        <street>1120 Vermont Avenue</street>

   City - The city element contains the city or area of the contact.
   This is an ICANN required element.

   Example:

        <city>Washington</city>

   State - The state element contains the state or province of the
   contact. This is a ICANN required element.

   Example:

        <state>DC</state>

   Postal Code - The postal code element contains a delivery indicator
   unique to the address of the contact. This is often referred to as
   the Zip Code in the USA.

   Example:

        <postalcode>20005</postalcode>

   Country Code - The country element is an ISO 3166-1 alpha-2 two-
   letter country code for the country of origin of the contacts postal
   address.

   Example:

        <country>US</country>

   Contact Elements - The contact elements contain contact identifiers
   for the domain-name "holder" organizational and "administrative"
   contact personnel. The type of the contact is specified by the type



Brunner, et al             Expires August 2001                 [Page 47]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   attribute associated with each contact. There are multiple instances
   of the contact element.

   Example:

        <contact type="holder">JB-Griffen000001</contact>

   Dun and Bradstreet (D&B) D-U-N-S(R) Number - the D-U-N-S Number is an
   exclusive nine-digit number, assigned to each business location in
   D&B's global database. It is widely used as a tool for identifying,
   organizing and consolidating information about businesses.

   Example:

        <duns-number>123456789</duns-number>

   Industry Code - the "industry-code" element is of type = [sic,
   naics].  The sic Code is an exclusive 4-digit code that classifies
   the industries and the naics Code is a new code that identifies
   industries by a 6-digit code. The new naics Code will eventually
   replace the sic Code.

   Example:

        <industry-code type="sic">4231</industry-code>

   Sponsoring Registrar - Element contains the registrar identifier of
   the sponsoring registrar client.

   Example:

        <client>
             <client-id>registrar001</client-id>
        <client>

   Created - Element contains the reference to the registrar id that
   created the object and date and time of object creation.

   Example:

        <created>
             <created-date>yyyy-mm-ddT12:00:00.0Z</created-date>
             <created-client-id>registrar001</created-client-id>
        </created>

   Modified - Element contains the reference to the registrar id that
   modified the object and date and time of object creation.




Brunner, et al             Expires August 2001                 [Page 48]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <modified>
             <modified-date>yyyy-mm-ddT12:00:00.0Z</modified-date>
             <modified-client-id>registrar001</modified-client-id>
        </modified>

   Authorization Identifier - This is a transaction identifier of the
   original creation transaction or the most recent successful transfer
   transaction.

   Example:

        <authorization>
             <date>yyyy-mm-dd</date>
             <client-id>registrar001</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>

   Status - The status element contains the current status associated
   with the registrar (active, suspended, defunct). A registrar may have
   only one status entry at any given time.

   Example:

        <status>active</status>

   Optional elements - An optional element is included in the contact to
   support extended services supported by different registrars. Optional
   elements consist of two elements "key" and "value". Each optional
   element will carry additional key and the respective value of the
   key.

   Example:

        <optional>
             <key>field1</key>
             <value>value1</value>
        </optional>

A.2.6 Registrar Object

   The registrar object will contain the information for each ICANN
   certified registrar. The sponsoring registrar has all the
   administrative privileges to manage the object.

A.2.6.1 Object Elements




Brunner, et al             Expires August 2001                 [Page 49]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The registrar object includes the following elements:

   Id - A unique identifier is created for every registrar object in the
   registry and this unique identifier is used to reference an object
   instance. The identifier is an alphanumeric field 3 to 16 characters
   in length defined by the XML Schema Definition.

   Example:

        <id>registrar0000001</id>

   Registrar Name - Each object must contain only one registrar name,
   the businesses name.  Example:

        <name>INWW</name>

   Address - The postal address element in supported in normalized
   address or in RIPE style address format. The normalized address will
   include street, city, state, country and postal code elements,
   whereas the RIPE style address will include line element.

   Example:

        <address>
             <street>1120 Vermont Avenue</street>
             <city>Washington</city>
             <state>DC</state>
             <country>US</country>
             <postalcode>20005</postalcode>
        </address>

   Line - The line element contains the address in RIPE style.

   Example:

        <address>
        <line> ... </line>
        </address>

   Street - The street element contains the street line of a postal
   address.

   Example:

        <street>1120 Vermont Avenue</street>

   City - The city element contains the city or area of the contact.
   This is an ICANN required element.



Brunner, et al             Expires August 2001                 [Page 50]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <city>Washington</city>


   State - The state element contains the state or province of the
   contact. This is a ICANN required element.

   Example:

        <state>DC</state>

   Postal Code - The postalcode element contains a delivery indicator
   unique to the address of the contact. This is often referred to as
   the Zip Code in the USA.

   Example:

        <postalcode>20005</postalcode>

   Country Code - The country element is an ISO 3166-1 alpha-2 two (2)
   letter country code for the country of origin of the contacts postal
   address.

   Example:

        <country>US</country>

   Web Address - The URL of the Registrar's homepage.

   Example:

        <web-url>http://www.nuelevel.biz</Web-url>

   Dun and Bradstreet (D&B) D-U-N-S-Number - the D-U-N-S Number is an
   exclusive nine-digit number, assigned to each business location in
   D&B's global database. It is widely used as a tool for identifying,
   organizing and consolidating information about businesses.

   Example:

        <duns-number>nnnnnnnnn</duns-number>

   Industry Code (icode) - the industry code is of type = [SIC, NAICS].
   The SIC Code is an exclusive 4-digit code that classifies the
   industries and the NAICS Code is a new code that identifies
   industries by a 6-digit code. The new NAICS code will eventually
   replace the SIC Code.



Brunner, et al             Expires August 2001                 [Page 51]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

        <industry-code type="sic">4231</industry-code>
        <industry-code type="naics">123456</industry-code>

   ICANN Certification ID - the Registrar certification number assigned
   by ICANN to each fully qualified registrar.

   Example:

        <icann-id>dddddddddd</icann-id>

   Contact Elements - The contact elements contain contact identifiers
   for registrar "service manager", "public relations", "technical",
   "administrative", and "billing" person. The type of the contact is
   specified by the type attribute associated with each contact element.
   There are multiple instances of the contact element.

   Example:

        <contact type="administrative">Clive-L-Forley01</contact>

   Created - Element contains the reference to the registrar that
   created the object and date and time of object creation.

   Example:

        <created>
             <created-date>yyyy-mm-ddT12:00:00.0Z</created-date>
             <created-client-id>registrar001</created-client-id>
        </created>

   Modified - Element contains the reference to the registrar that
   modified the object and date and time of object creation.

   Example:

        <modified>
             <modified-date>yyyy-mm-ddT12:00:00.0Z</modified-date>
             <modified-client-id>registrar001</modified-client-id>
        </modified>

   Authorization Identifier - This is a transaction id of the original
   creation transaction or the most recent transfer transaction.

   Example:

        <authorization>



Brunner, et al             Expires August 2001                 [Page 52]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <date>yyyy-mm-dd</date>
             <client-id>registrar001</client-id>
             <code>ABC-12345-XYZ</code>
        </authorization>

   Status - The status element contains the current status associated
   with the registrar (active, suspended, defunct). A registrar may have
   only one status entry at any given time.

   Example:

        <status>active</status>

   a_3_xrp_command_mappings.ms


A.3 XRP Command Mappings

   This section describes the object-specific mappings required to
   implement each XRP command. Figure A-1 summarizes the command to
   object mappings.

   Legend:
        OMF = Object Management Functions
        CON = Contact
        NS  = Nameserver
        Dname = Domain Name
        IP = Intellectual Property
        RRAR = Registrar
        RANT = Registrant

   OMF     CON     NS      Dname   IP      RRAR    RANT
   --------+-------+-------+-------+-------+-------+-------
   Create  Y       Y       Y       Y               Y
   Delete  Y       Y       Y       Y               Y
   Modify  Y       Y       Y       Y               Y
   Renew   Y       Y
   Xfr     Y       Y       Y                       Y
   Query   Y       Y       Y       Y       Y       Y
   Check   Y       Y       Y       Y       Y       Y
   List                            Y

   Figure A-1.  XRP Command to Object Mappings

A.3.1 Create

   The object specific command mappings for implementation of the create
   command are described in this subsection.



Brunner, et al             Expires August 2001                 [Page 53]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


A.3.1.1 Contact Object

   The "contact:create" element in the "create" object creates an
   instance of contact object in the registry. It must be used to
   register contact information describing human and organizational
   entities. Contact registration must not be limited to a specific
   period of time.  The "contact:create" request shall contain the
   following child elements:

             Create Contact
        --------------------------------
        Child Element           Required
        Name                    Y
        Title                   N
        Organization            N
        Address                 Y
        (line or normalized)
        Voice                   Y
        Fax                     N
        Email                   Y
        Authorization ID        N
        Access control          N
        Digital Certificate     N
        Optional Elements       N

   The response "contact:create-response" to the request

             Create Contact Response
        --------------------------------
        Child Element
        Contact Unique Identifier

   Example: A registrar registers a contact.
        <request>
             <create>
             <contact:create xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
             <contact:name type="organization">John R. Doe</contact:name>
             <contact:organization>NeuStar</contact:organization>
             <contact:address>
                  <contact:street>1120 Vermont Ave.</contact: street>
                  <contact:city>Washington</contact:city>
                  <contact:state>DC</contact:state>
                  <contact:postalcode>20005</contact:postalcode>
                  <contact:country>US</contact:country>
             </contact:address>
             <contact:voice>+1.8005551212</contact:voice>
             <contact:fax>+1.8005551212</contact:fax>



Brunner, et al             Expires August 2001                 [Page 54]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <contact:email>ayesha.damaraju@NeuLevel.com</contact:email>
             </contact:create>
             </create>
             <transaction-id>
                  ... transaction id data ...
             </transaction-id>
        </request>

   The server on successfully processing the request must respond to the
   client with the "create-response" element in "data" element of
   "response".  The response must include the server's unique identifier
   for the contact, by which the server will identify the contact.

   Example:

   <response>
        <reply>
             ... success reply ...
        </reply>
        <data>
        <contact:create-response xmlns:contact="urn.NeuLevel.contact"
             xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>J-R-Doe-0001</contact:id>
        </contact:create-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to create a contact.
   Default access is None.

A.3.1.2 Nameserver Object

   The "ns:create" element in the "create" object creates an instance of
   nameserver object in the registry. The request to register a
   nameserver in the same TLDs, must be the child of a registered domain
   name and must include one or more and a maximum of 13, nameserver IP
   addresses.  Nameservers associated with domains registered in other
   TLDs should not be specified with IP addresses to reduce the
   possibility of duplicating DNS NS records for the nameservers in
   multiple zone files.

   Nameserver registration must not be limited to a specific period of
   time. The "ns:create" request shall contain the following child
   elements:




Brunner, et al             Expires August 2001                 [Page 55]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             Create Nameserver
        --------------------------------
        Child Element           Required
        Name                    Y
        IP address              N

   The response to the request will not contain any object specific
   data.

   Example: A registrar registers a nameserver.

   <request>
        <create>
             <ns:create xmlns:ns="urn.NeuLevel.ns
                  xsi:schemaLocation=urn.NeuLevel.ns ns.xsd>
                  <ns:name>ns1.example.tld</ns:name>
                  <ns:ip>100.1.0.1</ns:ip>
             </ns:create>
        </create>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with "response".

   Example:
   <response>
        <reply>
             ... success reply ...
        </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to create nameservers in
   the domain they administer.

   1. A request to register an object must include a transaction
   identifier. The transaction identifier must be returned to the
   registrant by the registrar to facilitate authorization of future
   transfer requests.

   2. The system will register the nameserver along with the data sent.

   3. The system will assign the created, modified date elements in the



Brunner, et al             Expires August 2001                 [Page 56]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   nameserver object.

   4. The system will associate the nameserver with the given contact
   references.

   5. If the nameserver is successfully registered, the system must
   return the unique nameserver handle to the registrar.

   6. Unauthorized attempts to register nameserver in a parent domain
   administered by another registrar will be rejected.

   7. Response codes - Unauthorized domain

A.3.1.3 Domain-name Object

   A "domain:create" element is used within the "create" request to
   create a domain-name instance. The request to register a domain-name
   must contain a domain-name element with fully qualified name, maximum
   of 13, already registered nameserver references, contact references
   (minimum references to admin and technical contact) and optional
   registration period in years.

   Domain registration must be limited to a specific period of time.
   The "domain:create" request shall contain the following child
   elements:

             Create Domain-name
        --------------------------------
        Child Element           Required
        FQDN                    Y
        Nameservers             Y
        Child nameservers       N
        Registrar ID            Y
        Registrant ID           Y
        Contacts [type=]        Y
        Registration Period     Y
        Restricted Registration N
          Authorization
             (based on tld)

   The response "domain:create-response" to the request

             Create Domain Response
        --------------------------------
        Child Element
        Domain-name
        Expiration date




Brunner, et al             Expires August 2001                 [Page 57]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Examples: A registrar registers a domain name.

   <request>
        <create>
             <domain:create xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
             <domain:name>coca-cola.biz</domain:name>
             <domain:nameserver>ns1.neulevel.biz</domain:nameserver>
             <client:id>INWW-ab123456789</client:id>
             <client:id>registrant000001</clinet:id>
             <domain:contact type="administrative">
                  John-R-Doe001
             </domain:contact>
             <domain:contact type="technical">
                  Jim-V-Brown002
             </domain:contact>
             <domain:period>2</domain:period>
             </domaint:create>
        </create>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing must respond with
   "create-response" element in "data" element of "response".  The
   response must include the fully qualified name of the domain and the
   expiration date of the domain.

   Example:

   <response>
        <reply>
             ... success reply ...
        </reply>
        <data>
        <domain:create-response xmlns:domain="urn.NeuLevel.domain"
             xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
             <domain:name>coca-cola.biz</domain:name>
             <domain:expiration-date>yyyy-mm-dd
             </domain:expiration-date>
        </domain:create-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>




Brunner, et al             Expires August 2001                 [Page 58]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The server on successful processing the request notifies any clients
   registered for an intellectual property notification service for the
   created domain.

   Example:

   <notification>
        <data>
             <domain:create-response xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
                  <domain:name>coca-cola.biz</domain:name>
                  <domain:expiration-date>yyyy-mm-dd
                  </domain:expiration-date>
             </domain:create-response>
        </data>
        <notification-id>
             ... notification identifier elements ...
        </notification-id>
   </notification>

   Authorized users: All clients are authorized to create a domain.

   1. A request to register an domain object must include a transaction
   identifier. The transaction identifier must be returned to the
   registrant by the registrar to facilitate authorization of future
   transfer requests.

   2. The registration period for domain names must be measured in years
   with the minimum period of one year and a maximum period defined by
   registry policy.

   3. The system will register the domain name to the registrar for the
   period specified by the registrar. If the registrar does not specify
   a registration period, a system-specific default value must be used
   for the initial registration period.

   4. The system will associate the domain with given nameserver
   references and the status to "new".

   5. The system will register the domain name and associate the domain
   with given contacts along with the types of contacts, and requested
   registrar as the created registrar.

   6. The system will assign the created, expired, modified date
   elements in the domain object.

   7. If the domain is successfully registered, the system must return
   the registration expiration date in the response.



Brunner, et al             Expires August 2001                 [Page 59]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   All registrars may use this service to register domain names.

   Response codes:

   1. Success
   2. Domain name not available (already used)
   3. Invalid reference (no reference Nameserver, Contact)
   4. Missing required attribute
   5. Invalid attribute value syntax
   6. Invalid option value
   7. Invalid command format
   8. Missing command option

A.3.1.4 Intellectual Property Object

   The "iprop:create" element is used within the "create" request to
   create a intellectual property instance. The request to register a
   "iprop" object must contain a monitor-string, trademark or brand
   details, expiration-date, and contact references (admin, receiver and
   holder organization.

   The "iprop:create" request shall contain the following child
   elements:

             Create iprop
        --------------------------------
        Child Element           Required
        monitor-string          Y
        Trademark [type=]       Y
        Contacts [type=]        Y
        Registration Period     Y
        Authorization ID        N
        Optional elements       N

   The response to the request shall be "iprop:create-response".

             Create iprop Response
        --------------------------------
        Child Element
        Intellectual Property ID
        Expiration Date

   Example: A registrar registers a trademark string of a client.

   <request>
        <create>
             <iprop:create xmlns:iprop="urn.NeuLevel.iprop
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">



Brunner, et al             Expires August 2001                 [Page 60]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                  <iprop:monitor-string type="exact">
                       coca-cola
                  </monitor-string>
                  <iprop:trademark type="trademark">
                       <iprop:name>coca-cola</iprop:name>
                       <iprop:country>US</iprop:country>
                       <iprop:serial-no>nnnnnnnn</iprop:serial-no>
                       <iprop:registration-no>nnnnnnn</registration-no>
                       <iprop:date>yyyy-mm-dd</iprop:date>
                  </iprop:trademark>
             <period>2</period>
             <iprop:contact type="administrative">
                  Jim-N-Smith00001
             </iprop:contact>
             <iprop:contact type="holder">
                  L-L-Bean00002
             </iprop:contact>
             <iprop:contact type="receiver">
                  Jane-W-Lawyer0003
             </iprop:contact>
             <client:id>registrar001</client:id>
        </create>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client request with "create-response" element in
   "data" element of "response".  The response must include the server's
   unique identifier for the intellectual property, by which the server
   will identify the intellectual property.

   Example:

   <response>
        <reply>
             ... success reply ...
        </reply>
        <data>
        <iprop:create-response xmlns:iprop="urn.NeuLevel.iprop"
             xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
             <iprop-id>nnnnnnnnn</iprop-id>
             <iprop:expiration-date>yyyy-mm-dd</iprop:expiration-date>
        </iprop:create-response>
        </data>
        <transaction-id>
             ... transaction id data ...



Brunner, et al             Expires August 2001                 [Page 61]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        </transaction-id>
   </response>

   Authorized users: All clients are authorized to create an iprop
   object.

A.3.1.5 Registrant Object

   The "registrant:create" element is used within the "create" request
   to create a registrant object instance. The request to create a
   "registrant" object must contain a registrant id, name, address,
   contact references [owner, admininstration] and status.

   The "registrant:create" request shall contain the following child
   elements:

             Create registrant
        --------------------------------
        Child Element           Required
        Name                    Y
        Address                 Y
        Contacts [type=]        Y
        DUNS Number             N
        Industry Code [type=]   N
        Status                  N
        Authorization ID        Y
        Optional Elements       N

   The response to the request shall be "registrant:create-response".

        Create registrant Response
        --------------------------------
        Registrant ID

   Example: A registrar registers a registrant.

   <request>
        <create>
             <registrant:create xmlns:registrant="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
                  <name>registrant00001</name>
                  <registrant:name type="owner">
                       John-R-Doe00001
                  </registrant:name>
                  <registrant:address>
                       <registrant:street>
                            1120 Vermont Ave.
                       </registrant:street>



Brunner, et al             Expires August 2001                 [Page 62]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                       <registrant:city>Washington</registrant:city>
                       <registrant:state>DC</registrant:state>
                       <registrant:postalcode>20005</registrant:postalcode>
                       <registrant:country>US</registrant:country>
                  </registrant:address>
             </registrant:create>
        </create>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client request with "create-response" element in
   "data" element of "response".  The response must include the server's
   unique identifier for the registrant, by which the server will
   identify the registrant.

   Example:

   <response>
        <reply>
             ... success reply ...
        </reply>
        <data>
        <registrant:create-response xmlns:iprop="urn.NeuLevel.iprop"
             xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
             <registrant-id>registrant00001</registrant-id>
        </registrant:create-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to create an iprop
   object.

A.3.2 Delete

   The object specific command mappings for implementation of the delete
   command are described in this subsection.

A.3.2.1 Contact Object

   The delete contact transaction allows a registrar to remove a contact
   from the registry. Contacts must be referenced by the unique registry
   identifier. A contact must not be deleted if it is associated with a



Brunner, et al             Expires August 2001                 [Page 63]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   domain-name.

             Delete Contact
        --------------------------------
        Child Element           Required
        Contact Unique Id       Y

   The response to the request will not contain any object specific
   data.

   Example:

   <request>
        <delete>
             <contact:delete xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>John-R-Doe0001</contact:id>
             </contact:delete>
        </delete>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on completion of processing the request must respond with
   a success/ failure result with no data element in "response" element.

   Example:

   <response>
        <reply>
             ... success/failure reply ...
        </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All registrar clients are authorized to delete
   contacts that they administer. For contacts with associations, the
   response codes are:

   1. Associated to a domain-name

   2. Associated to a nameserver

A.3.2.2 Nameserver Object




Brunner, et al             Expires August 2001                 [Page 64]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The "delete" nameserver request is used to remove a nameserver from
   the registry along with "ns:delete" element. The "ns:delete" request
   shall contain the following child elements:

             Delete Nameserver
        --------------------------------
        Child Element           Required
        Name                    Y

   The response to the request will not contain any object specific
   data.  A request to remove a nameserver object must include a
   transaction identifier. The nameserver must be referenced using fully
   qualified nameserver name in the registry. Lame delegation process -
   notify registrar of the domain names using nameserver.

   Examples: A registrar deletes a nameserver from the registry.

   <request>
        <ns:delete xmlns:ns="urn.NeuLevel.ns"
             xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
             <name>cns1.coca-cola.net</name>
        </ns:delete>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on completion of processing the request must respond with
   a success/failure result with no data element in "response" element.


   Example:
   <response>
        <reply>
        ... success reply ...
        </reply>
             <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </response>

   Authorized user: The current registrar of a nameserver may use the
   transaction to delete a nameserver from the registry.

   Response codes - active domain-names associated to the nameserver.

A.3.2.3 Domain-name Object




Brunner, et al             Expires August 2001                 [Page 65]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   A "domain:delete" element is used within the "delete" request to
   delete a domain-name already created in the registry. Deleting a
   domain-name will also delete all child nameservers. A domain name
   must not be deleted if child nameservers are being used to host other
   domain-names.


             Delete Domain
        --------------------------------
        Child Element           Required
        FQDN                    Y

   A request to remove a domain-name object must include a transaction
   identifier. The domain-name must be referenced using fully qualified
   domain name the unique identifier for the domain-name in the
   registry.  Lame delegation process - notify registrar of the domain-
   names using child nameservers.


   Example:

   <request>
        <delete>
             <domain:delete xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
                  <domain:name>coca-cola.biz</domain:name>
                  </domain:delete>
        </delete>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>


   The server on successful completion of processing the request must
   respond to the client with a success/failure result with no data
   element in "response".


   Example:

   <response>
        <reply>
        ... success/failure reply ...
        </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>



Brunner, et al             Expires August 2001                 [Page 66]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   </response>


   Authorized users: All clients are authorized to delete domains that
   they administer.

   Response codes - active domain names associated to the child
   nameservers.

A.3.2.4 Intellectual Property Object

   The "iprop:delete" element is used within the "delete" request to
   delete a intellectual property object already created in the
   registry.

             Delete I-Property
        --------------------------------
        Child Element           Required
        IP Identifier           Y

   Example:

   <request>
        <delete>
             <iprop:delete xmlns:iprop="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
                  <iprop:id>coca-cola0000111</iprop:id>
             </iprop:delete>
        </delete>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>


   The server on completion of processing the request must respond to
   the client with a success/ failure result with no data element in the
   response. The response to the request shall not contain any object
   specific data.


   Example:

   <response>
        <reply>
        ... success/failure reply ...
        </reply>
        <transaction-id>



Brunner, et al             Expires August 2001                 [Page 67]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             ... transaction id data ...
        </transaction-id>
   </response>


   Authorized users: All clients are authorized to delete intellectual
   property objects that they administer.

A.3.2.5 Registrant Object

   The "registrant:delete" element is used within the "delete" request
   to delete a registrant object already created in the registry. The
   registrant object must not be deleted if it is associated with any
   domain-names in the registry.

             Delete Registrant
        --------------------------------
        Child Element           Required
        Registrant Identifier   Y

   Example:

   <request>
        <delete>
             <registrant:delete xmlns:registrant="urn.NeuLevel.registrant"
                  xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
                  <registrant-id>registrant00001</registrant-id>
             </registrant:delete>
        </delete>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>


   The server on completion of processing the request must respond to
   the client with a success/failure result with no data element in the
   response. The response to the request shall not contain any object
   specific data.


   Example:

   <response>
        <reply>
        ... success/failure reply ...
   </reply>
        <transaction-id>



Brunner, et al             Expires August 2001                 [Page 68]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             ... transaction id data ...
        </transaction-id>
   </response>


   Authorized users: All clients are authorized to delete registrant
   objects that they administer.

   Response codes - active domain-names associated with the registrant.

A.3.3 Modify

   The object specific command mappings for implementation of the modify
   command are described in this subsection.


A.3.3.1 Contact Object


   The modify request for a contact allows a user to change the data in
   contact object, remove any optional elements from the contact object.
   The two operations supported are identified by three elements
   "contact:change" and "contact:remove" within the "contact:modify"
   element with optional elements of the object.

             Modify Contact
        --------------------------------
        Child Element           Required
        Contact Identifier      Y
        Change                  N
        Name                    N
        Title                   N
        Organization            N
        Address                 N
        Voice                   N
        Fax                     N
        Email                   N
        Access                  N
        Optional elements       N
        Remove                  N
        Title                   N
        Organization            N
        Fax                     N
        Optional elements       N

   Example - Registrar modifies contact information:

   <request>



Brunner, et al             Expires August 2001                 [Page 69]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <modify>
             <contact:modify xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>AD-0001</contact:id>
                  <contact:change>
                       <contact:name type="owner">
                            John R. Doe
                       </contact:name>
                       <contact:organization>
                            Coca Cola Company
                       </contact:organization>
                       <contact:address>
                            <line>
                                 144 new lane, washington, DC 20005, us
                            </line>
                       </contact:address>
                  <contact:voice>+1.8005551212</contact:voice>
                  <contact:fax>+1.8005551212</contact:fax>
                  </contact:change>
             </contact:modify>
        </modify>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with a success/ failure result with no data
   element in "response". The response to the request will not contain
   any object specific data.

   Example:

   <response>
        <reply>
        ... success/failure reply ...
        </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
    </response>
    .fi
    .sp

   Authorized users - All clients are authorized to modify contacts that
   they administer.

   Response code - active domain-names associated with the contact.



Brunner, et al             Expires August 2001                 [Page 70]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


A.3.3.2 Nameserver Object


   Modify request for a nameserver will allow a user to add/remove data
   from the "ns" object. The operations supported are identified by two
   elements "ns:add" and "ns:remove" within the "ns:modify" element.

             Modify Nameserver
        --------------------------------
        Child Element           Required
        Nameserver name         Y
        Add                     N
        IP address              Y
        Remove                  N
        IP address              Y

   The response to the request will not contain any object specific
   data.

   Example:

   <request>
        <modify>
             <ns:modify xmlns:ns="urn.NeuLevel.ns"
                  xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
                  <ns:name>ns1.example.tld</ns:name>
                  <ns:add>
                       <ns:ip>10.10.1.20</ns:ip>
                       <ns:ip>10.10.1.30</ns:ip>
                  </ns:add>
                  <ns:remove>
                       <ns:ip>10.10.1.1</ns:ip>
                  </ns:remove>
             </ns:modify>
        </modify>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on completion of processing the request must respond to
   the client with a success/ failure result with no data element in
   "response".


   Example:

   <response>



Brunner, et al             Expires August 2001                 [Page 71]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <reply>
        ... success/failure reply ...
   </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>


   Authorized users - All registrars are authorized to modify
   nameservers that they administer.

   Response codes - active domain-names associated with the nameserver.


A.3.3.3 Domain-name Object


   A modify domain-name request allows a user to add/remove the data in
   domain object. The two operations supported are identified by two
   elements "domain:add" and "domain:remove" within the "domain:modify"
   element with optional elements of the object.


             Modify Domain-name
        --------------------------------
        Child Element           Required
        Domain Name             Y
        Remove                  N
        Contact                 N
        Nameserver              N
        Child nameserver        N
        Status                  N
        Add                     N
        Contact                 N
        Nameserver              N
        Child nameserver        N
        Status                  N

   The response to the request will not contain any object specific
   data.

   Example:

   <request>
        <modify>
             <domain:modify xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">



Brunner, et al             Expires August 2001                 [Page 72]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                  <domain:name>example3.biz</domain:name>
                  <domain:add>
                       <domain:contact type="owner">
                            Jane-W-Smith0001
                       </domain:contact>
                       <domain:nameserver>ns3.coca-cola.net</domain:nameserver>
                  </domain:add>
             </domain:modify>
        </modify>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with a success/ failure result with no data
   element in [?] response

   Example:
   <response>
        <reply>
        ... success/failure reply ...
        </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to modify domains that
   they administer.

A.3.3.4 Intellectual Property Object

   The modify request for intellectual property allows a user to
   add/remove the data in intellectual property object. The two
   operations supported are identified by two elements "iprop:add" and
   "iprop:remove" within the "iprop:modify" element with optional
   elements of the object.

             Modify I-Property
        --------------------------------
        Child Element           Required
        IP identifier           Y
        Remove                  N
        Monitor-string          N
        Status [live, dead]     N
        Contacts                N
        Optional Elements



Brunner, et al             Expires August 2001                 [Page 73]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        Add                     N
        Monitor-string          N
        Status [live, dead]     N
        Contacts                N
        Optional elements       N
   Example:

   <request>
        <modify>
             <iprop:modify xmlns:iprop="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
                  <iprop:id>bill-s-watson00003</iprop:id>
                  <iprop:add>
                       <iprop:contact type="receiver">
                            Bill S. Watson
                       </iprop:contact>
                  </iprop:add>
             </iprop:modify>
        </modify>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on completion of processing the request must respond to
   the client with a success/failure result with no data element in
   response.  The response to the request shall not contain any object
   specific data.

   Example:

   <response>
        <reply>
        ... success/failure reply ...
   </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
    </response>
    .fi
    .sp
   Authorized users: All clients are authorized to modify intellectual
   property objects that they administer.

A.3.3.5 Registrant Object

   The modify request for a registrant allows a user to change the data in
   the registrant object and remove any optional elements from the



Brunner, et al             Expires August 2001                 [Page 74]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   registrant object. The two operations supported are identified by two
   elements "registrant:change" and "registrant:add" within the
   "registrant:modify" element with optional elements of the object.

             Modify Registrant
        --------------------------------
        Child Element           Required
        Registrant Id           Y
        Change                  N
        Name                    N
        Address                 N
        Contacts                N
        DUNS Number             N
        Industry Code           N
        Status                  N
        Optional Elements
        Add                     N
        Contacts                N
        DUNS Number             N
        Industry Code           N
        Optional Elements       N

   The response to the request will not contain any object specific
   data.

   Example:

   <request>
        <modify>
             <registrant:modify xmlns:registrant="urn.NeuLevel.registrant
                  xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
             <registrant:id>registrant0001</registrant:id>
             <registrant:change>
                  <registrant:name type="owner">John R. Doe</registrant:name>
                  <registrant:status>active</registrant:status>
             </registrant:change>
             </registrant:modify>
        </modify>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with a success/failure result with no data
   element in response.

   Example:



Brunner, et al             Expires August 2001                 [Page 75]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   <response>
        <reply>
        ... success/failure reply ...
        </reply>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
    </response>

   Authorized users: All registrars are authorized to modify registrant
   objects that they administer.

A.3.4 Renew

   The object specific command mappings for implementation of the renew
   command are described in this subsection.

A.3.4.1 Domain Object

   A "domain:renew" element in the "renew" request will allow a user to
   renew a domain-name for a given valid period. The "domain:renew"
   request shall contain the following child elements:

             Renew Domain-name
        --------------------------------
        Child Element           Required
        Domain-name             Y
        Registration Period     N
             (default=1)

   The response "domain:renew-response"  to the request

             Renew Domain Response
        --------------------------------
        Child Element
        Domain-name
        Expiration date

   Example: A registrar renews a domain-name.

   <request>
        <renew>
             <domain:renew xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
                  <domain:name>coca-cola.biz</domain:name>
                  <domain:period>2</domain:period>
                  </domaint:renew> </renew>
        <transaction-id>



Brunner, et al             Expires August 2001                 [Page 76]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             ... transaction id data ...
        </transaction-id>
   </request>

   The Server on successful completion of processing the request must
   respond to the client with "renew-response" element in "data" element
   of "response".  The response must include the fully qualified name of
   the domain and the expiration date of the domain.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <domain:renew-response xmlns:domain="urn.NeuLevel.domain"
             xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
             <domain:name>coca-cola.biz</domain:name>
             <domain:expiration-date>yyyy-mm-dd</domain:expiration-date>
        </domain:renew-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to renew a domain that
   they administer.

A.3.4.2 Intellectual Property

   A "iprop:renew" element in the "renew" request allows a user to renew
   a intellectual property object for a given valid period.

   The "iprop:renew" request shall contain the following child elements:

             Renew I-Property
        --------------------------------
        Child Element           Required
        IP Identifier           Y
        Registration Period     N
             (default 1 year)

   The response "iprop:renew-response"  to the request

             Renew I-Property Response
        --------------------------------



Brunner, et al             Expires August 2001                 [Page 77]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        Child Element
        Intellectual Property ID
        Expiration date

   Example:

   A registrar registers a object.
   <request>
        <renew>
             <iprop:renew xmlns:iprop="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
                  <iprop:id>coca-cola000001</iprop:id>
                  <iprop:period>2</iprop:period>
             </iprop:renew>
        </renew>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with "renew-response" element in "data" element
   of "response".  The response must include the unique identifier of
   the intellectual property object and the expiration date of the
   object.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
             <iprop:renew-response xmlns:iprop="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
                       <iprop:id>coca-cola00001</iprop:id>
                       <iprop:expiration-date>yyyy-mm-dd</iprop:expiration-date>
             </iprop:renew-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to renew an iprop item
   that they administer.

A.3.5 Transfer



Brunner, et al             Expires August 2001                 [Page 78]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The object specific command mappings for implementation of the
   transfer command are described in this subsection.

A.3.5.1 Contact Object


   The "contact:transfer" element  in the "transfer" request will  allow
   the user to:

   1. Initiate a transfer of given contact type of "transfer" element
   set to "request")

   2. Approve a transfer of given contact (type of "transfer" element
   set to "approve"

   3. Reject a transfer of given contact (type of "transfer" element set
   to "reject")

   4. Query a transfer status (type of "transfer" element set to
   "query")

   The table that follows describes the contact transfer status flow.











        This space left intentionally blank

















Brunner, et al             Expires August 2001                 [Page 79]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Along with the unique identifier of the contact object and the
   authorization associated with the contact object.

             Transfer Contact
        --------------------------------
        Child Element           Required
        Contact Unique Id       Y

   The response "contact:transfer-response"  to the request

        Transfer Contact Response
        --------------------------------
        Child Element
        Contact id
        Registrar requesting transfer
        Original sponsoring registrar
        Transfer status
        Transfer requested date
        Response requested by date
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)

        Transfer Contact Notification
        --------------------------------
        Child Element
        Contact id
        Registrar requesting transfer
        Original sponsoring registrar
        Transfer status
        Transfer requested date
        Response requested by date
        Date the original sponsoring registrar responds to transfer request
        (approve or reject)

   Example: A registrar transfers a contact.

   <request>
        <transfer type="request">
             <contact:transfer xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>JA-0002</contact:id>
             </contact:transfer>
             <authorization>
                  ... authorization elements ...
             </authorization>
             </transfer>
        <transaction-id>
             ... transaction id data ...



Brunner, et al             Expires August 2001                 [Page 80]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with "transfer-response" element in "data"
   element of "response".  The response must include the server's unique
   identifier for the contact, by which the server will identify the
   contact.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
             <contact:transfer-response xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>JA-0002</contact:id>
                  <contact:requested-client>
                       registrar001
                  </contact:requested-client>
                  <contact:actor-client>registrar002</contact:actor-client>
                  <contact:transfer-status>pending</contact:transfer-status>
                  <contact:requested-date>yyyy-mm-dd</contact:requested-date>
                  <contact:action-date>yyyy-mm-dd</contact:action-date>
             </contact:transfer-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   In addition the server notifies the other registrar client involved
   in the transfer of the contact about the transfer (the same data in
   the "contact:transfer-response".)

   Example:

   <notification>
        <data>
             <contact:transfer-response xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>JA-0002</contact:id>
                  <contact:requested-client>CLT100</contact:requested-client>
                  <contact:actor-client>CLT200</contact:actor-client>
                  <contact:transfer-status>pending</contact:transfer-status>
                  <contact:requested-date>yyyy-mm-dd</contact:requested-date>



Brunner, et al             Expires August 2001                 [Page 81]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                  <contact:action-date>yyyy-mm-dd</contact:action-date>
             </contact:transfer-response>
        </data>
        <notification-id>
             ... notification id data ...
        </notification-id>
   </notification>

   Authorized users: All clients are authorized to request to transfer a
   contact.

A.3.5.2 Nameserver Object

   The transfer nameserver request must be used to transfer a non-.tld
   nameserver; for example, ns1.coca-cola.net that is associated with a
   registrant's domain-name in the .tld registry. A "ns:transfer"
   element in the "transfer" request will  allow the registrar to:

   1. Initiate a transfer of given nameserver. (type of "transfer"
   element set to request)

   2. Approve a transfer of given nameserver (type of transfer element
   set to approve)

   3. Reject a transfer of given nameserver (type of "transfer" element
   set to "reject")

   4. Query a transfer status (type of "transfer" element set to
   "query")

   Domain transfer status flow - The following table provides the domain
   transfer status flow.















        This space intentionally left blank



Brunner, et al             Expires August 2001                 [Page 82]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Along with the fully qualified name of the domain object and the
   authorization associated with the nameserver object

             Transfer Nameserver
        --------------------------------
        Child Element           Required
        Nameserver name         Y

   The response "ns:transfer-response" to the request contains the
   following child elements.

        Transfer Nameserver Response
        --------------------------------
        Child Element
        Nameserver name
        Registrar requesting transfer
        Original sponsoring registrar
        Transfer status
        Transfer requested date
        Response requested by date (for requests)
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)

   The notification contains the following child elements:

        Transfer Nameserver Notification
        --------------------------------
        Child Element
        Nameserver name
        Registrar requesting  transfer
        Original sponsoring registrar
        Transfer status
        Transfer requested date
        Response requested by date (for requests)
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)

   Example: A registrar initiates a nameserver transfer.
   <request>
        <transfer type="request">
             <ns:transfer xmlns:ns="urn.NeuLevel.ns"
                  xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
                  <ns:name>ns1.coca-cola.net</ns:name>
             </ns:transfer>
             <authorization>
                  ... authorization elements ...
             </authorization>
        </transfer>



Brunner, et al             Expires August 2001                 [Page 83]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with "transfer-response" element in "data"
   element of "response".  The response must include the nameserver
   Internet name, by which the server will identify the nameserver. In
   addition server notifies the other losing registrar involved in the
   transfer of the domain about the transfer (the same data in the
   "ns:transfer-response".)

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <ns:transfer-response xmlns:ns="urn.NeuLevel.ns"
             xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
             <ns:name>ns1.coca-cola.net</ns:name>
             <ns:requested-client>registrar001</ns:requested-client>
             <ns:actor-client>registrar002</ns:actor-client>
             <ns:transfer-status>pending</ns:transfer-status>
             <ns:requested-date>yyyy-mm-dd</ns:requested-date>
             <ns:action-date>yyyy-mm-dd</ns:action-date>
        </ns:transfer-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>




   Example: Notification to losing registrar

   <notification>
        <data>
        <ns:transfer-response xmlns:ns="urn.NeuLevel.ns"
             xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
             <ns:name>ns1.coca-cola.com</ns:name>
             <ns:requested-client>registrar001</ns:requested-client>
             <ns:actor-client>registrar002</ns:actor-client>
             <ns:transfer-status>pending</ns:transfer-status>



Brunner, et al             Expires August 2001                 [Page 84]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <ns:requested-date>yyyy-mm-dd</ns:requested-date>
             <ns:action-date>yyyy-mm-dd</ns:action-date>
        </ns:transfer-response>
        </data>
        <notification-id>
             ... notification id data ...
        </notification-id>
   </notification>

   Authorized users - All clients are authorized to request to transfer
   a nameserver.

A.3.5.3 Domain-name Object

   A "domain:transfer" element  in the "transfer" request will  allow
   the user to:

   1. Initiate a transfer of given domain-name. (type of "transfer"
   element set to "request")

   2. Approve a transfer of given domain-name (type of "transfer"
   element set to "approve")

   3. Reject a transfer of given domain-name (type of "transfer" element
   set to "reject")

   4. Query a transfer status (type of "transfer" element set to
   "query")

   Domain transfer status flow: The following table provides the domain-
   name transfer status flow.













        This space left intentionally blank






Brunner, et al             Expires August 2001                 [Page 85]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The request includes with the fully qualified name of the domain-name
   object and the authorization associated with the domain-name object.

             Transfer Domain-name
        --------------------------------
        Child Element           Required
        Domain-name             Y
        Authorization           Y

   The response "domain:transfer-response" to the request includes the
   following child elements:

        Transfer Domain-name Response
        --------------------------------
        Child Element
        Domain name
        Registrar requesting transfer
        Original sponsoring registrar
        Transfer status
        Transfer requested date
        Response requested by date
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)

        Transfer Domain-name Notification
        --------------------------------
        Child Element
        Domain name
        Registrar requesting transfer
        Original sponsoring registrar
        Transfer status
        Transfer requested date
        Response requested by date
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)

   Example: A registrar transfers a domain.
   <request>
        <transfer type="request">
             <domain:transfer xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
                  <domain:name>coca-cola.biz</domain:name>
             </domain:transfer>
             <authorization>
                  ... authorization elements ...
             </authorization>
        </transfer>
        <transaction-id>



Brunner, et al             Expires August 2001                 [Page 86]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the registrar client with "transfer-response" element in
   the "data" element of "response".  The response must include the
   server's unique identifier for the domain-name, by which the server
   will identify the domain-name. In addition server notifies the other
   registrar client involved in the transfer of the domain-name about
   the transfer (the same data in the "domain:transfer-response".)

   Example: Response to the requesting registrar.

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <domain:transfer-response xmlns:domain="urn.NeuLevel.domain"
             xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
             <domain:name>coca-cola'biz</domain:name>
             <domain:requested-client>registrar001</domain:requested-client>
             <domain:actor-client>CLT200</domain:actor-client>
             <domain:transfer-status>pending</domain:transfer-status>
             <domain:requested-date>yyyy-mm-dd</domain:requested-date>
             <domain:action-date>yyyy-mm-dd</domain:action-date>
        </domain:transfer-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>




   Example: Notification to losing registrar.

   <notification>
        <data>
        <domain:transfer-response xmlns:domain="urn.NeuLevel.domain"
             xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
             <domain:name>example.tld</domain:name>
             <domain:requested-client>registrar001</domain:requested-client>
             <domain:actor-client>registrar002</domain:actor-client>
             <domain:transfer-status>pending</domain:transfer-status>
             <domain:requested-date>yyyy-mm-dd </domain:requested-date>



Brunner, et al             Expires August 2001                 [Page 87]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <domain:action-date>yyyy-mm-dd</domain:action-date>
        </domain:transfer-response>
        </data>
        <notification-id>
             ... notification id data ...
        </notification-id>
   </notification>

   Authorized users: All clients are authorized to request to transfer a
   domain.

A.3.5.4 Registrant Object

   The "registrant:transfer" element  in the "transfer" request will
   allow the user to:

   5. Initiate a transfer of a registrant (type of "transfer" element
   set to "request")

   6. Approve a transfer of a registrant (type of "transfer" element set
   to "approve"

   7. Reject a transfer of a registrant (type of "transfer" element set
   to "reject")

   8. Query a transfer status (type of "transfer" element set to
   "query")

   The table that follows describes the registrant transfer status flow.













        This space left intentionally blank








Brunner, et al             Expires August 2001                 [Page 88]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The request child elements includes the unique identifier of the
   registrant object and the authorization associated with the
   registrant object.

             Transfer Registrant
        --------------------------------
        Child Element           Required
        Registrar Unique Id     Y
        Authorization           Y

   The response child elements in "registrant:transfer-response"  to the
   request include the following:

        Transfer Registrant Response
        --------------------------------
        Child Element
        Registrant id
        Registrar Requesting transfer
        Original Sponsoring Registrar
        Transfer status
        Transfer requested date
        Response requested by date (for requests)
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)


        Transfer Registrant Notification
        --------------------------------
        Child Element
        Registrant id
        Registrar Requesting transfer
        Original Sponsoring Registrar
        Transfer status
        Transfer requested date
        Response requested by date (for requests)
        Date the original sponsoring registrar responds to transfer request
             (approve or reject)

   Example: A registrar initiates transfer of a registrant.

   <request>
        <transfer type="request">
        <registrant:transfer xmlns:registrant="urn.NeuLevel.registrant"
             xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
             <registrant:id>JA-0002</registrant:id>
        </registrant:transfer>
        <authorization>
             ... authorization elements ...



Brunner, et al             Expires August 2001                 [Page 89]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        </authorization>
        </transfer>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with "transfer-response" element in "data"
   element of "response".  The response must include the server's unique
   identifier for the registrant, by which the server will identify the
   registrant.


   Example:

   <response>
        <reply>
             ... success reply ...
        </reply>
        <data>
        <registrant:transfer-response xmlns:registrant="urn.NeuLevel.registrant"
             xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
             <registrant:id>JA-0002</registrant:id>
             <registrant:requested-client>registrar001</registrant:requested-client>
             <registrant:actor-client>registrar002</registrant:actor-client>
             <registrant:transfer-status>pending</registrant:transfer-status>
             <registrant:requested-date>yyyy-mm-dd</registrant:requested-date>
             <registrant:action-date>yyyy-mm-dd</registrant:action-date>
        </registrant:transfer-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   In addition, the server notifies the losing original registrar
   sponsor involved in the transfer of the registrant about the transfer
   (the same data in the "registrant:transfer-response".)

   Example:

   <notification>
        <data>
        <registrant:transfer-response xmlns:registrant="urn.NeuLevel.registrant"
             xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
             <registrant:id>registrant00001</registrant:id>
             <registrant:requested-client>registrar001</registrant:requested-client>



Brunner, et al             Expires August 2001                 [Page 90]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <registrant:actor-client>registrar002</registrant:actor-client>
             <registrant:transfer-status>pending</registrant:transfer-status>
             <registrant:requested-date>yyyy-mm-dd</registrant:requested-date>
             <registrant:action-date>yyyy-mm-dd</registrant:action-date>
        </registrant:transfer-response>
        </data>
        <notification-id>
             ... notification id data ...
        </notification-id>
   </notification>

   Authorized users: All clients are authorized to request to transfer a
   contact.

A.3.6 Query

   The object specific command mappings for implementation of the query
   command are described in this subsection.

A.3.6.1 Contact Object

   The "contact:query" element in the "query" request will  allow the
   user to obtain the contact information for a given contact id based
   on userid and password access control.

             Query Contact
        --------------------------------
        Child Element           Required
        Contact ID              Y
        Authorization           Y

   The response "contact:query-response" to the request includes the
   following child elements:

        Query Contact Response
        --------------------------------
        Child Element
        Name
        Title
        Organization
        Address (line or normalized)
        Voice
        Fax
        Email
        Created (on, when)
        Modified (on, when)
        Authorization (only to sponsoring registrar)




Brunner, et al             Expires August 2001                 [Page 91]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example: A registrar queries a contact.

   <request>
        <query>
             <contact:query xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>AB-12345678</contact:id>
             </contact:query>
             <authorization>
                  ... authorization elements ...
             </authorization>
        </query>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server upon successful completion of the processing the request
   must respond with "query-response" element in "data" element of
   "response".  The response must include the server's unique identifier
   for the contact, by which the server will identify the contact.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <contact:query-response xmlns:contact="urn.NeuLevel.contact"
             xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
             <contact:id>AD-123456</contact:id>
             <contact:name type="owner">L.L. Bean</contact:name>
             <contact:organization>CEO</contact:organization>
             <contact:address>
                  <contact:street>1120 Vermont Ave.</contact: street>
                  <contact:city>Washington</contact:city>
                  <contact:state>DC</contact:state>
                  <contact:postalcode>20005</contact:postalcode>
                  <contact:country>US</contact:country>
             </contact:address>
             <contact:voice>+1.8005551212</contact:voice>
             <contact:fax>+1.8005551212</contact:fax>
             <contact:email>aye.damaraju@NeuLevel.com</contact:email>
             <contact:client>
                  <contact:transferred-date>yyyy-mm-dd</contact:transferred-date>
                  <contact:client-id>CLN100</contact:client-id>
             </contact:client>



Brunner, et al             Expires August 2001                 [Page 92]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             <contact:created>
                  <contact:created-date>yyyy-mm-dd</contact:created-date>
                  <contact:client-id>CLN200</contact:client-id>
             </contact:created>
             <contact:modified>
                  <contact:modified-date>yyyy-mm-ddy</contact:modified-date>
                  <contact:client-id>CLN200</contact:client-id>
             </contact:modified>
             <contact:authorization>
                  <contact:date>yyyy-mm-dd</contact:date>
                  <contact:client-id>CLN200</contact:client-id>
                  <contact:code> ... </contact:code>
             </contact:authorization>
        </contact:query-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>


   Authorized users: All clients are authorized to query a contact for
   information.


A.3.6.2 Nameserver Object


   The "ns:query" element in the "query" request will  allow the user to
   obtain the nameserver information for a given nameserver name.

             Query Nameserver
        --------------------------------
        Child Element           Required
        Nameserver name         Y

   The response "ns:query-response"  to the request

        Query Nameserver Response
        --------------------------------
        Child Element
        Name
        Registrar ID
        IP addresses
        Created (on, when)
        Modified (on, when)
        Authorization (only to sponsoring registrar




Brunner, et al             Expires August 2001                 [Page 93]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example: A registrar queries a nameserver object.

   <request>
        <query>
             <ns:query xmlns:ns="urn.NeuLevel.ns"
                  xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
                  <ns:name>ns1.coca-cola.biz</ns:name>
             </ns:query>
        </query>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the registrar client with "query-response" element in
   "data" element of "response".  The response must include the fully
   qualified name of the nameserver.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
             <ns:query-response xmlns:ns="urn.NeuLevel.ns"
                  xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
                  <ns:name>ns1.example.tld</ns:name>
                  <ns:client>
                       <ns:transferred-date>yyyy-mm-dd</ns:transferred-date>
                       <ns:client-id>CLN100</ns:client-id>
                  </ns:client>
                  <ns:ip>10.10.1.20</ns:ip>
                  <ns:created>
                       <ns:created-date>yyyy-mm-dd</ns:created-date>
                       <ns:client-id>CLN200</ns:client-id>
                  </ns:created>
                  <ns:modified>
                       <ns:modified-date>yyyy-mm-dd</ns:modified-date>
                       <ns:client-id>CLN200</ns:client-id>
                  </ns:modified>
                  <ns:authorization>
                       <ns:date>yyyy-mm-dd</ns:date>
                       <ns:client-id> ... </ns:client-id>
                       <ns:code> ... </ns:code>
                  </ns:authorization>
             </ns:query-response>



Brunner, et al             Expires August 2001                 [Page 94]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to query a nameserver
   for information.

A.3.6.3 Domain-name Object

   The "domain:query" element in the "query" request allows the user to
   obtain the domain-name information for a given domain-name.

        Query Domain-name
        --------------------------------
        Child Element           Required
        Domain-name             Y

   The response "domain:query-response" to the request includes the
   following child elements:

        Query Domain-name Response
        --------------------------------
        Child Element
        Registrant ID
        Domain-name
        Created  (on, when)
        Modified (on, when)
        Sponsoring Registrar
        Contacts
        Nameservers
        Child Name servers
        Expiration date
        Domain-name status
        Authorization (only to original sponsoring registrar)
        Restricted Registration Access (only to sponsoring registrar)

   Example: A registrar queries a domain-name.

   <request>
        <query>
             <domain:query xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
                  <domain:name>coca-cola.biz</domain:name>
             </domain:query>
        </query>
        <transaction-id>



Brunner, et al             Expires August 2001                 [Page 95]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the registrar client with the "query-response" element in
   "data" element of "response".  The response must include the server's
   unique identifier for the domain-name, by which the server will
   identify the domain-name.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <domain:query-response xmlns:domain="urn.NeuLevel.domain"
             xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">
             <domain:name>coca-cola.biz</domain:name>
             <domain:created>
                  <domain:created-date>yyyy-mm-dd</domain:created-date>
                  <domain:created-client-id>CLN10</domain:created-client-id>
             </domain:created>
             <domain:modified>
                  <domain:modified-date>yyyy-mm-dd</domain:modified-date>
                  <domain:modified-client-id>
                       registrar002
                  </domain:modified-client-id>
             </domain:modified>
             <domain:client>
                  <domain:transferred-date>yyyy-mm-dd </domain:transferred-date>
                  <domain:client-id>registrar001</domain:client-id>
             </domain:client>
             <domain:contact type="administrative">CNT100</domain:contact>
             <domain:contact type="technical">CNT200</domain:contact>
             <registrant-id>registrar000001</registrant-id>
             <domain:nameserver>ns3.example3.tld</domain:nameserver>
             <domain:childserver>ns1.example.tld</domain:childserver>
             <domain:status>active</domain:status>
             <domain:expiration-date>yyyy-mm-dd</domain:expiration-date>
             <domain:authorization>
                  <domain:date>yyyy-mm-dd</domain:date>
                  <domain:client-id>CLN400</domain:client-id>
                  <domain:code> ... </domain:code>
             </domain:authorization>
        </domain:query-response>
        </data>



Brunner, et al             Expires August 2001                 [Page 96]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to query a domain for
   information.

A.3.6.4 Intellectual Property Object

   The "iprop:query" element in the "query" request allows the user to
   obtain the intellectual property information for a given intellectual
   property id.

        Query Intellectual Property
        --------------------------------
        Child Element           Required
        Property Unique Id      Y

   The response to the request shall be "iprop:query-response".

        Query Intellectual Property Response
        --------------------------------
        Child Element
        Monitor-String
        Contacts
        Trademark
        Created (on, when)
        Modified (on, when)
        Sponsoring registrar id
        Authorization (only to sponsoring registrar)
        Optional Elements

   Example: A registrar queries an iprop object.

   <request>
        <query>
             <iprop:query xmlns:iprop="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
                  <iprop:id>nnnnnnnnn</iprop:id>
             </iprop:query>
        </query>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must



Brunner, et al             Expires August 2001                 [Page 97]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   respond to the client with "query-response" element in "data" element
   of "response".  The response must include the server's unique
   identifier for the iprop, by which the server will identify the
   iprop.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <iprop:query-response xmlns:iprop="urn.NeuLevel.iprop"
             xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
             <iprop:id>123456789</iprop:id>
             <iprop:monitor-string>coca-cola.biz</monitor-string>
             <iprop:contact type="administrative">JBLegal0000005</iprop:contact>
             <iprop:contact type="holder">LLOwner000006 </iprop:contact>
             <iprop:contact type="receiver">LawOffice0002 </iprop:contact>
             <iprop:trademark>
                  <iprop:name>coca-cola</ iprop:name>
                  < iprop:country>us</ iprop:country>
                  < iprop:reference>12345678</ iprop:reference>
                  < iprop:date>yyyy-mm-dd</iprop:date>
             </iprop:trademark>
             <iprop:client>
                  <iprop:client-id>CLN100</iprop:client-id>
             </iprop:client>
             <iprop:created>
                  <iprop:created-date>yyyy-mm-dd</iprop:created-date>
                  <iprop:client-id>CLN200</iprop:client-id>
                  <transferred-date>yyyy-mm-dd</transferred-date>
             </iprop:created>
             <iprop:modified>
                  <iprop:modified-date>yyyy-mm-dd</iprop:modified-date>
                  <iprop:client-id>CLN200</iprop:client-id>
             </iprop:modified>
             <iprop:authorization>
                  <iprop:date>yyyy-mm-dd</iprop:date>
                  <iprop:client-id>CLN500</iprop:client-id>
                  <iprop:code> ... </iprop:code>
             </iprop:authorization>
        </iprop:query-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>



Brunner, et al             Expires August 2001                 [Page 98]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Authorized users: Only sponsoring clients are authorized to query a
   iprop object they sponsor.

A.3.6.5 Registrant Object

   The "registrant:query" element in the "query" request allows the user
   to obtain registrant information associated with a given domain-name.

             Query Registrant
        --------------------------------
        Child Element           Required
        Registrant ID           Y

   The response "registrant:query-response" to the request includes the
   following child elements:

        Query Registrant Response
        --------------------------------
        Name
        Address
        Contacts
        DUNS Number
        SIC Code
        Status
        Created  (on, when)
        Modified (on, when)
        Authorization (only to original sponsoring registrar)
        Optional Elements

   Example: A registrar queries a registrant object.

   <request>
        <query>
             <registrant:query xmlns:domain="urn.NeuLevel.registrant"
                  xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
                  <registrant:id>coca-cola-123456</registrant:id>
             </registrant:query>
        </query>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the registrar client with the "query-response" element in
   "data" element of "response".  The response must include the server's
   unique identifier for the registrant, by which the server will
   identify the registrant.



Brunner, et al             Expires August 2001                 [Page 99]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <registrant:query-response xmlns:registrant="urn.NeuLevel.registrant"
             xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
             <registrant:name>coca-cola</registrant:name>
             <registrant:address>line</registrant:address>
             <registrant:contact type="owner">L.L. Bean</registrant:contact>
             <registrant:status>active</registrant:status>
             <registrant:created>
                  <registrant:created-date>yyyy-mm-dd</registrant:created-date>
                  <registrant:created-client-id>
                       CLN10
                  </registrant:created-client-id>
             </registrant:created>
             <registrant:modified>
                  <registrant:modified-date>yyyy-mm-dd </registrant:modified-date>
                  <registrant:modified-client-id>
                       CLN20
                  </registrant:modified-client-id>
             </registrant:modified>
             <registrant:authorization>
                  <registrant:date>yyyy-mm-dd</registrant:date>
                  <registrant:client-id>INWW-asdfd-12345</registrant:client-id>
                  <registrant:code>nnnnnnnnnnnnnn</registrant:code>
             </registrant:authorization>
             </registrant:query-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>


   Authorized users: All clients are authorized to query a domain for
   information.


A.3.6.6 Registrar Object

   The "registrar:query" element in the "query" request allows the
   registrar client to obtain registrar object information associated
   with a domain-name.




Brunner, et al             Expires August 2001                [Page 100]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        Query Registrar Object
        --------------------------------
        Child Element           Required
        Registrar ID            Y

   The response "registrar:query-response" to the request includes the
   following child elements:

        Query Registrar Response
        --------------------------------
        Name
        Address
        Web URL
        ICANN Certification ID
        DUNS Number
        SIC Code
        Contacts
        Status
        Created  (on, when)
        Modified (on, when) Authorization (only to original
        sponsoring registrar)
        Optional Elements

   Example: A registrar queries a registrar object.

   <request>
        <query>
             <registrar:query xmlns:domain="urn.NeuLevel.registrar"
                  xsi:schemaLocation="urn.NeuLevel.registrar registrar.xsd">
                  <registrar:id>INWW-asdfd-12345</registrar:id>
             </registrar:query>
        </query>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the registrar client with the "query-response" element in
   "data" element of "response".  The response must include the server's
   unique identifier for the registrar, by which the server will
   identify the registrar.

   Example:

   <response>
        <reply>
        ... success reply ...



Brunner, et al             Expires August 2001                [Page 101]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        </reply>
        <data>
        <registrar:query-response xmlns:registrar="urn.NeuLevel.registrar"
             xsi:schemaLocation="urn.NeuLevel.registrar registrar.xsd">
             <registrar:name>INWW</registrar:name>
             <registrar:address>line</registrar:address>
             <registrar:contact type="technical">David Taylor</registrar:contact>
             <registrar:status>active</registrar:status>
             <registrar:created>
                  <registrar:created-date>yyyy-mm-dd </registrar:created-date>
                  <registrar:created-client-id>
                       INWW-asdfd-12345
                  </registrar:created-client-id>
             </registrar:created>
             <registrar:modified>
                  <registrar:modified-date>yyyy-mm-dd</registrar:modified-date>
                  <registrar:modified-client-id>
                       INWW-asdfd-12345
                  </registrar:modified-client-id>
             </registrar:modified>
             <registrar:authorization>
                  <registrar:date>yyyy-mm-dd</registrar:date>
                  <registrar:client-id>INWW-asdfd-12345 </registrar:client-id>
                  <registrar:code>nnnnnnnnnnnnn</registrar:code>
             </registrar:authorization>
        </registrar:query-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All registrar clients are authorized to query a
   registrar object for information.

A.3.7 Check

   The object specific command mappings for implementation of the check
   command are described in this subsection.

A.3.7.1 Contact Object

   The "contact:check" element in the "check" request will  allow the
   user to check the existence of given contacts (up to 16 contact
   entities).  The request must include the following child elements:

        Check Contact
        --------------------------------



Brunner, et al             Expires August 2001                [Page 102]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        Child Element           Required
        Contact Unique Id       Y
        (multiple occurrences)

   The response "contact:check-response"  to the request consist of the
   following child elements:

        Check Contact Response
        --------------------------------
        Child Element
        Contact Unique Identifier (multiple occurrences)

   Result (attribute of id - known or unknown as values)

   Example:

   <request>
        <check>
             <contact:check xmlns:contact="urn.NeuLevel.contact"
                  xsi:schemaLocation="urn.NeuLevel.contact contact.xsd">
                  <contact:id>CNT100</contact:id>
                  <contact:id>CNT300</contact:id>
             </contact:check>
        </check>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successfully processing the request must respond to the
   client with "check-response" element in "data" element of "response".
   The response must include the server's unique identifier for the
   contact, by which the server will identify the contact along with the
   attribute "result" to identify the existence of the contact.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <contact:check-response>
             <contact:check_id result="known">CNT100</contact:id>
             <contact check_id result="unknown">CNT300</contact:id>
        </contact:check-response>
        </data>
        <transaction-id>



Brunner, et al             Expires August 2001                [Page 103]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


             ... transaction id data ...
        </transaction-id>
   </response>


   Authorized users: All clients are authorized to check a contact for
   its existence.


A.3.7.2 Nameserver Object


   The "ns:check" element in the "check" request will  allow the user to
   check the existence of given nameservers (up to 13 nameservers). The
   request must contain the following child elements:

        Check Nameservers
        --------------------------------
        Child Element           Required
        Unique FQDN             Y
        (multiple occurrences)

   The response "ns:check-response"  to the request

        Check Nameservers Response
        --------------------------------
        Child Element
        Unique fully qualified names (multiple occurrences)
        Result (attribute of name - known or unknown as values)

   Examples:

   <request>
        <check>
             <ns:check xmlns:ns="urn.NeuLevel.ns"
                  xsi:schemaLocation="urn.NeuLevel.ns ns.xsd">
                  <ns:check_name>ns1.example.tld</ns:check_name>
                  <ns:check_name>ns2.example.tld</ns:check_name>
             </ns:check>
        </check>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the with a "check-response" element in "data" element of
   "response".  The response must include the server's unique identifier



Brunner, et al             Expires August 2001                [Page 104]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   for the ns, by which the server will identify the ns along with the
   attribute "result" to identify the existence of the ns.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <ns:check-response>
             <ns:name result="known">ns1.example.tld</ns:name>
             <ns:name result="unknown">ns2.example.tld</ns:name>
        </ns:check-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to check a nameserver
   for its existence.

A.3.7.3 Domain-name Object

   The "domain:check" element in the "check" request will  allow the
   user to check for the existence of given domain-names (up to 16
   domain-name entities).

        Check Domain
        --------------------------------
        Child Element           Required
        Unique domain-names     Y
        (multiple occurrences)

   The response "domain:check-response"  to the request.

        Check Domain Response
        --------------------------------
        Child Element
        Unique domain-names (multiple occurrences)
        Result (attribute of id - known, monitored, unknown as values)

   Example:
   <request>
        <check>
             <domain:check xmlns:domain="urn.NeuLevel.domain"
                  xsi:schemaLocation="urn.NeuLevel.domain domain.xsd">



Brunner, et al             Expires August 2001                [Page 105]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                  <domain:name>example1.biz</domain:name>
                  <domain:name>example2.biz</domain:name>
             </domain:check>
        </check>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client with "check-response" element in "data" element
   of "response".  The response must include the server's unique
   identifier for the domain, by which the server will identify the
   domain along with the attribute "result" to identify the existence of
   the domain.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <domain:check-response>
             <domain:name result="known">HP.biz</domain:name>
             <domain:name result="unknown">example2.biz</domain:name>
        </domain:check-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to check a domain for
   existence.

A.3.7.4 Intellectual Property Object

   The "iprop:check" element in the "check" request will  allow the
   registrar user to check the existence of given intellectual property
   objects (up to 16 intellectual property entities).

        Check I-Property
        --------------------------------
        Child Element           Required
        Property Unique Id      Y
        (multiple occurrences)




Brunner, et al             Expires August 2001                [Page 106]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


   The response to the request shall be "iprop:check-response".

        Check I-Property Response
        --------------------------------
        Child Element
        Property Unique Identifier (multiple occurrences)
        Result (attribute of id - known or unknown as values)

   Example:
   <request>
        <check>
             <iprop:check xmlns:iprop="urn.NeuLevel.iprop"
                  xsi:schemaLocation="urn.NeuLevel.iprop iprop.xsd">
                  <iprop:id>nnnnnnnnn</iprop:id>
                  <iprop:id>nnnnnnnnn</iprop:id>
             </iprop:check>
        </check>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client request with "check-response" element in "data"
   element of "response".  The response must include the server's unique
   identifier for the iprop, by which the server will identify the iprop
   along with the attribute "result" to identify the existence of the
   iprop.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <iprop:check-response>
             <iprop:id result="known">nnnnnnnnn</iprop:id>
             <iprop:id result="unknown">nnnnnnnnn</iprop:id>
        </iprop:check-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to check a iprop for its
   existence.



Brunner, et al             Expires August 2001                [Page 107]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


A.3.7.5 Registrant Object

   The "registrant:check" element in the "check" request will  allow the
   registrar user to check the existence of given registrant objects (up
   to 16 registrant entities).

        Check Registrant
        --------------------------------
        Child Element           Required
        Registrant Unique Id    Y
        (multiple occurrences)

   The response to the request shall be "registrant:check-response". The
   response must consist of the following child elements:

        Check Registrant Response
        --------------------------------
        Child Element
        Registrant Identifier (multiple occurrences)
        Result (attribute of id - "known" or "unknown" as values)

   Example:
   <request>
        <check>
             <registrant:check xmlns:registrant="urn.NeuLevel.registrant"
                  xsi:schemaLocation="urn.NeuLevel.registrant registrant.xsd">
                  <registrant:id>coca-cola-12345</registrant:id>
                  <registrant:id>MBI-12345</registrant:id>
             </registrant:check>
        </check>
        <transaction-id>
                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client request with "check-response" element in "data"
   element of "response".  The response must include the server's unique
   identifier for the registrant, by which the server will identify the
   registrant along with the attribute "result" to identify the
   existence of the registrant.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>



Brunner, et al             Expires August 2001                [Page 108]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        <data>
        <registrant:check-response>
             <registrant:id result="known">coca-cola12345 </registrant:id>
             <registrant:id result="unknown">MBI-12345 </registrant:id>
        </registrant:check-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to check a registrant
   object for its existence.

A.3.7.6 Registrar Object

   The "registrar:check" element in the "check" request will  allow the
   registrar user to check the existence of given registrar objects (up
   to 16 registrar entities).

        Check Registrar
        --------------------------------
        Child Element           Required
        Registrar Unique Id     Y
        (multiple occurrences)

   The response to the request shall be "registrar:check-response". The
   response must consist of the following child elements:

        Check Registrar Response
        --------------------------------
        Child Element
        Registrar Identifier (multiple occurrences)
        Result (attribute of id - "known" or "unknown" as values)

   Example:
   <request>
        <check>
             <registrar:check xmlns:registrar="urn.NeuLevel.registrar"
                  xsi:schemaLocation="urn.NeuLevel.registrar registrar.xsd">
                  <registrar:id>INWW12345</registrar:id>
                  .
                  .
                  .
                  <registrar:id>Register.com1234</registrar:id>
             </registrar:check>
        </check>
        <transaction-id>



Brunner, et al             Expires August 2001                [Page 109]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


                  ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful completion of processing the request must
   respond to the client request with "check-response" element in "data"
   element of "response".  The response must include the server's unique
   identifier for the registrar, by which the server will identify the
   registrar entity along with the attribute "result" to identify the
   existence of the registrar.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <registrar:check-response>
             <registrar:id result="known">INWW-12345 </registrar:id>
             .
             .
             .
             <registrant:id result="known">Register.com12345 </registrant:id>
        </registrant:check-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All clients are authorized to check a registrar
   object for its existence.

A.3.8 List

   The object specific command mappings for implementation of the list
   command are described in this subsection. The list command is
   initially restricted to the registrar object

A.3.8.1 Registrar Object

   The registrar client must use the "list" request which includes
   "registrar:list" element to obtain a list of registrar identifiers
   for all registrars. These registrar identifiers are used in contact
   transfer and domain transfer requests. The "registrar:list" element
   returns a list of certified registrars maintained in the registry.




Brunner, et al             Expires August 2001                [Page 110]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


        List Registrar Response
        --------------------------------
        Child Element
        Registrar Unique Identifier (multiple occurrences)

   Example:

   <request>
        <list>
             <registrar:list xmlns:registrar="urn.NeuLevel.registrar"
                  xsi:schemaLocation="urn.NeuLevel.registrar registrar.xsd">
             </registrar:list>
        </list>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </request>

   The server on successful processing the request must respond to the
   client with object specific registrar identifiers for all registrars
   in the registry.

   Example:

   <response>
        <reply>
        ... success reply ...
        </reply>
        <data>
        <registrar:list-response xmlns:registrar="urn.NeuLevel.registrar"
             xsi:schemaLocation="urn.NeuLevel.registrar registrar.xsd">
             <id>registrar-001</id>
             <id>registrar-002</id>
             .
             .
             .
             <id>registrar-100</id>
        </registrar:list-response>
        </data>
        <transaction-id>
             ... transaction id data ...
        </transaction-id>
   </response>

   Authorized users: All registrar clients are authorized to obtain a
   list of registrar id's maintained on the registry.





Brunner, et al             Expires August 2001                [Page 111]

Internet-Draft     Extensible Registry Protocol (XRP)      February 2001


Full Copyright Statement

   Copyright (C) The Internet Society (2001). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and 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

   Funding for the RFC editor function is currently provided by the
   Internet Society.


















Brunner, et al             Expires August 2001                [Page 112]