The following is a
detailed description of the XML Registry-registrar
protocol.
OXRS uses a standard message format expressed
as an XML payload.
“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
…
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>
“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.
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.
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:
<OXRScommand>
<commandtype>OXRSadd:{domain, nameserver,
registrar}</commandtype>
…
res1add command body …
</OXRScommand>
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
<OXRScommand>
<commandtype>OXRSadd:domain</commandtype>
<domainname>…
domain name … </domainname>
<sequence:ns>
<seq>… name server
sequence …</seq>
<name>… name
server name …</name>
</sequence>
</OXRScommand>
<OXRScommand>
<commandtype>OXRSadd:domain</commandtype>
<domainname>mydomain.com</domainname>
<sequence:ns>
<seq>1</seq>
<name>ns1.mydomainns.com</name>
</sequence>
</OXRScommand>
<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>
<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>
OXRSadd registrar syntax:
<OXRScommand>
<commandtype>OXRSadd:registrar</commandtype>
<registrarid> …
unique registrar identifier … </registrarid>
<registrarname> …
registrar name … </registrarname>
<registrarpwd> …
registrars pwd … </registrarpwd>
</OXRScommand>
<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.
Overview:
The OXRSverify function
is used to verify the existence of a particular
domain.
Need to determine the
need for sequencing for the domain name “verifies”.
<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>
The OXRSdelete function
is used to delete a particular domain, nameserver or
registrant.
<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>
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>
The OXRSversion function
is used to determine the version of a particular
OXRSversion executing.
The OXRSupdate function
is used to update information about a particular domain, nameserver or
registrant.
<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>
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>
The OXRSrenew function
is used to delete a particular domain, nameserver or
registrant.
The contact information
that we keep about a particular name server or registrant may also need to be
renewed.
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>
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>