Back to Index

Appendix A � XML Registry-Registrar Protocol Details

 

The following is a detailed description of the XML Registry-registrar protocol.

Overview:

OXRS  uses a standard message format expressed as an XML payload.

OXRScommand:

�OXRScommand� is the standard delimiter of an atomic registry server command. As such the embedded instructions are considered to be atomic in nature.  It is used to identify the scope of a logical transaction.  It may represent an atomic physical transaction if sent outside of the boundary of an �OXRScommand� group. The command body is the actual function being requested by the client.

Definition:

<OXRScommand>

� command body �

</OXRScommand>

OXRScommandgroup:

�OXRScommandgroup� is used to identify a group of commands to be sent to the registry server. OXRScommandgroup includes one or more OXRScommands as part of its delimited payload.

Definition:

<OXRScommandgroup>

        {<OXRScommandgroupscope>{all,none}</OXRScommandgroupscope>}

{<OXRScommandgroupreturn>{isolated, list, none}</OXRScommandgroupreturn>}

{<OXRScommandgroupsequence>{on, off}</OXRScommandgroupsequence>}

<OXRScommand>

�command body�

</OXRScommand>

<OXRScommand>

 �command body�

</OXRScommand>

</OXRScommandgroup>

OXRScomandgroupscope:

�OXRScommandgroupscope� identifies the atomicity of the execution of any updates invoked by OXRScommandgroup.

all:

Specifying �all� as OXRScommandgroupscope directs OXRS to treat all of the contained OXRScommands as a single unit of work.

none:

Specifying �none� as OXRScommandgroupscope directs OXRS  to treat each of the contained OXRScommands as an isolated unit of work.

OXRScommandgroupreturn:

The OXRScommandgroupreturn identifies the atomicity of the response to any OXRScommandgroup.

isolated:

Specifying �isolated� as OXRScommandgroupreturn directs OXRS to treat all of the contained OXRScommands as a isolated requests and as such send a response for each command as soon as the OXRScommand is completed. Important Note: If the OXRScommandgroupscope is set to all, then the �isolated� option if specified is  overridden with �list�.

list:

Specifying �list� as OXRScommandgroupreturn directs OXRS to treat all of the contained OXRScommands as a group of requests and as such send a single for the group as soon as the OXRScommand is completed for the entire group. To retain request/response context one of the following should take place:

Either: The OXRScommandgroup sequence should be set �on� such that the sequence of response is equal to the sequence of request arrivals.

Or: The original request is returned as part of the response to allow client applications to process the results.

none:

Specifying �none� as OXRScommandgroupreuturn directs OXRS  to not send any response to the request. (i.e none is needed).

OXRScommandgroupsequence:

on:

Specifying �on� for the OXRScommandgroupsequence indicates that the requests should be processed in the order of arrival and that a sequence identifier should be attached to each of the requests (and responses).

off:

Specifying �off� for the OXRScommandgroupsequence indicates that the requests should be processed any order, regardless of the order of arrival. In this mode a unique identifier (either user supplied or system generated) to enable the matching of the request response pairs.

OXRSadd Function

Overview:

The OXRSadd function is used to add resources such as domains, nameserver and registrants to OXRS . The OXRSadd function is typed by the type of resource being added.

Description: 

OXRSadd generic syntax:

<OXRScommand>

        <commandtype>OXRSadd:{domain, nameserver, registrar}</commandtype>

        � res1add command body �

</OXRScommand>

OXRSadd domain:

It should be mandatory to add the name server at the time of registering the domain

The syntax should express a consistent format for dates and number of years, time period

OXRS add domain syntax:

<OXRScommand>

<commandtype>OXRSadd:domain</commandtype>

<domainname>� domain name � </domainname>

<sequence:ns>

<seq>� name server sequence �</seq>

<name>� name server name �</name>

</sequence>

</OXRScommand>

OXRSadd domain example:

<OXRScommand>

<commandtype>OXRSadd:domain</commandtype>

<domainname>mydomain.com</domainname>

<sequence:ns>

<seq>1</seq>

<name>ns1.mydomainns.com</name>

</sequence>

</OXRScommand>

OXRSadd nameserver:

OXRSadd nameserver syntax:

<OXRScommand>

<commandtype>OXRSadd:nameserver</commandtype>

<sequence:ns>

        <seq> � name server sequence </seq> 

<name> � name server name </name>

<ip> � name server ip address �</ip>

</sequence>

</OXRScommand>

OXRSadd nameserver example:

<OXRScommand>

<commandtype>OXRSadd:nameserver</commandtype>

<sequence:ns>

        <seq>1</seq>

<name>ns1.myns1.com</name>

<ip>111.222.111.1</ip>

<seq>2</seq>

<name>ns2.myns2.com</name>

<ip>111.222.111.2</ip>

</sequence>

</OXRScommand>

OXRSadd registrar:

OXRSadd registrar syntax:

<OXRScommand>

<commandtype>OXRSadd:registrar</commandtype>

<registrarid> � unique registrar identifier � </registrarid>

<registrarname> � registrar name � </registrarname>

<registrarpwd> � registrars pwd � </registrarpwd>

</OXRScommand>

OXRSadd registrar example:

<OXRScommand>

<commandtype>OXRSadd:registrar</commandtype>

<registrarid> 12345 </registrarid>

<registrarname> my registrar </registrarname>

<registrarpwd> rover </registrarpwd>

</OXRScommand>

There should be no limit on the maximum ratios of nameservers to edit for on the initial release.

OXRSverify function

Overview:

The OXRSverify function is used to verify the existence of a particular domain.

Description: 

OXRSverify domain:

Need to determine the need for sequencing for the domain name �verifies�.

OXRSverify domain syntax:

<OXRScommand>

<commandtype>OXRSverify:domain</commandtype>

<sequence:domain>

        <seq> name sequence </seq>  

<name> � domain name </name>

</sequence>

</OXRScommand>

OXRSverify single domain example:

<OXRScommand>

<commandtype>OXRSverify:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

</sequence>

</OXRScommand>

OXRSverify multiple domains example:

<OXRScommand>

<commandtype>OXRSverify:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

<seq>2</seq>

<name>myotherdomain.com</name>

</sequence>

</OXRScommand>

 OXRSdelete Function

Overview:

The OXRSdelete function is used to delete a particular domain, nameserver or registrant.

Description: 

OXRSdelete domain:

OXRSdelete domain syntax:

<OXRScommand>

<commandtype>OXRSdelete:domain</commandtype>

<sequence:domain>

        <seq> name sequence </seq>  

<name> � domain name </name>

</sequence>

</OXRScommand>

OXRSdelete single domain example:

<OXRScommand>

<commandtype>OXRSdelete:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

</sequence>

</OXRScommand>

OXRSdelete multiple domains example:

<OXRScommand>

<commandtype>OXRSdelete:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

<seq>2</seq>

<name>myotherdomain.com</name>

</sequence>

</OXRScommand>

 OXRSversion Function

Overview:

The OXRSversion function is used to determine the version of a particular OXRSversion executing.

 OXRSupdate Function

Overview:

The OXRSupdate function is used to update information about a particular domain, nameserver or registrant.

Description: 

OXRSupdate domain:

OXRSupdate domain syntax:

<OXRScommand>

<commandtype>OXRSupdate:domain</commandtype>

<sequence:domain>

        <seq> name sequence </seq>  

<name> � domain name </name>

</sequence>

</OXRScommand>

OXRSupdate single domain example:

<OXRScommand>

<commandtype>OXRSupdate:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

</sequence>

</OXRScommand>

OXRSupdate multiple domains example:

<OXRScommand>

<commandtype>OXRSupdate:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

<seq>2</seq>

<name>myotherdomain.com</name>

</sequence>

</OXRScommand>

OXRSrenew Function

Overview:

The OXRSrenew function is used to delete a particular domain, nameserver or registrant.

Description: 

OXRSnew domain:

The contact information that we keep about a particular name server or registrant may also need to be renewed.

OXRSrenew domain syntax:

Need to add syntax to identify the number of years as part of the renewal information

<OXRScommand>

<commandtype>OXRSrenew:domain</commandtype>

<sequence:domain>

        <seq> name sequence </seq>  

<name> � domain name </name>

</sequence>

</OXRScommand>

 

 

OXRSrenew single domain example:

<OXRScommand>

<commandtype>OXRSrenew:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

</sequence>

</OXRScommand>

OXRSrenew multiple domains example:

<OXRScommand>

<commandtype>OXRSrenew:domain</commandtype>

<sequence:domain>

        <seq>1</seq>

<name>mydomain.com</name>

<seq>2</seq>

<name>myotherdomain.com</name>

</sequence>

</OXRScommand>