Network Working Group F. Arias
Internet-Draft ICANN
Intended status: Standards Track S. Noguchi
Expires: September 15, 2011 JPRS
March 14, 2011

Domain Name Data Escrow Specification
draft-arias-noguchi-registry-data-escrow-02

Abstract

This document specifies the format and contents of Data Escrow deposits for Domain Name Registration Organizations.

Status of this Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/.

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."

This Internet-Draft will expire on September 15, 2011.

Copyright Notice

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

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


Table of Contents

1. Introduction

Registration Data Escrow is the process by which an Internet Registration Organization (e.g., a registry, registrar, etc.) periodically submits data deposits to a third party called an Escrow Agent. These deposits comprise the minimum data needed by a third party to resume operations if the registration organization could not function and was unable or unwilling to facilitate an orderly transfer of service. For a domain name registry or registrar the data to be deposited includes all the objects related to registered domain names, e.g., contacts, name servers, etc.

The goal of data escrow is higher resiliency of registration services, for the benefit of Internet users. The beneficiaries of a registration organization are not just those registering information there, but all relying parties that need to identify the owners of objects.

In the context of domain name registries, registration data escrow is a requirement for the current generic top-level domains and it is expected to be for new registries. Some country code top-level domain managers are also currently escrowing data. There is also a similar requirement for ICANN's generic top-level domain accredited registrars.

This document specifies a format and contents of Data Escrow deposits for Domain Name Registration Organizations.

2. Terminology

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 BCP 14, RFC 2119 [RFC2119].

DEPOSIT. Deposits can be of three kinds: Full, Differential or Incremental. For all kinds of Deposits, the Universe of Registry objects to be considered for data escrow are those objects necessary in order to offer the Registry Services.

DIFFERENTIAL DEPOSIT. Contains data that reflects all transactions involving the database that were not reflected in the last previous Full, Incremental or Differential Deposit, as the case may be. Differential deposit files will contain information from all database objects that were added, modified or deleted since the previous Deposit was completed as of its defined Timeline Watermark.

ESCROW AGENT. The organization designated by the Registry or the Third-Party Beneficiary to receive and guard Data Escrow Deposits from the Registry.

FULL DEPOSIT. Contains the Registry Data that reflects the current and complete Registry Database and will consist of data that reflects the state of the registry as of a defined Timeline Watermark for the deposit.

INCREMENTAL DEPOSIT. Contains data that reflects all transactions involving the database that were not reflected in the last previous Full Deposit. Incremental Deposit files will contain information from all database objects that were added, modified or deleted since the previous Full Deposit was completed as of its defined Timeline Watermark. If the Timeline Watermark of an Incremental Deposit were to cover the Watermark of another (Incremental or Differential) Deposit since the last Full Deposit, the former Deposit MUST contain the transactions of the later Deposit.

REGISTRY. The organization providing Registry Services for a RCDN.

REGISTRY-CLASS DOMAIN NAME (RCDN): Refers to a top-level domain (TLD) or any other domain name at any level in the DNS tree for which a Registry (either directly or through and affiliate company) provides Registry Services for other organizations or individuals. For example: .COM, .ORG, .BIZ, .CO.JP, .ORG.MX.

REGISTRY SERVICES. Services offered by the Registry critical to the following tasks: the provisioning of domain names on receipt of requests and data from registrars; responding to registrar queries for status information relating to the DNS servers for the RCDN; dissemination of RCDN zone files; operation of the Registry DNS servers; and responding to queries for contact and other information concerning DNS registrations in the RCDN. Any other products or services that only a Registry is capable of providing, by reason of its designation as the Registry. Typical examples of Registry Services are: DNS resolution for the RCDN, WHOIS and EPP.

THIRD-PARTY BENEFICIARY. Is the organization that, under extraordinary circumstances, would receive the escrow Deposits the Registry transferred to the Escrow Agent. This organization could be a backup Registry, Registry regulator, contracting party of the Registry, etc.

TIMELINE WATERMARK. Point in time on which to base the collecting of database objects for a Deposit. Deposits are expected to be consistent to that point in time.

3. Problem Scope

Starting a few years ago, the issue of Registry continuity has been carefully considered in the gTLD and ccTLD space. Various organizations have carried out a risk analysis and developed Business Continuity Plans to deal with those risks, should they materialize.

One of the solutions considered and used, especially in the gTLD space, is Registry Data Escrow as a way to ensure the Continuity of Registry Services in the extreme case of Registry failure.

So far, almost every Registry that uses Registry Data Escrow has its own specification. It is anticipated that more Registries will be implementing Escrow especially with the advent of the new gTLD program, compounding this issue.

Therefore, it would seem beneficial to have a standardized specification for Registry Data Escrow that can be used by any Registry to submit its Deposits.

A solution to the problem at hand SHALL clearly identify the format and contents of the Deposits a Registry has to make, such that a different Registry would be able to rebuild the Registry Services of the former, without its help, in a timely manner, with minimum disruption to Registrants, Registrars and Internet users.

Since the list and details of Registry Services vary from Registry to Registry, the solution SHALL provide mechanisms that allow its extensibility to accommodate variations and extensions of the Registry Services.

Given the confidentiality and importance of some of the information that is handled in order to offer the Registry Services, the solution SHALL define confidentiality and integrity mechanisms when handling the Registry data.

The solution SHALL NOT include in the specification transient objects that can be recreated by the new Registry, particularly those of delicate confidentiality, e.g., DNSSEC KSK/ZSK private keys.

Details that are a matter of policy SHOULD be identified as such for the benefit of the implementers.

Legal issues around Data Escrow and the overall question of the use of Registry Data Escrow are outside of scope of this document.

4. General Conventions

4.1. Date and Time

Numerous fields indicate "dates", such as the creation and expiry dates for domains. These fields SHALL contain timestamps indicating the date and time in UTC as specified in [RFC3339], with no offset from the zero meridian.

4.2. Country names

Country identifiers SHALL be represented using two character identifiers as specified in [ISO-3166-1].

4.3. Telephone numbers

Telephone numbers (both voice and fax) SHALL be formatted based on structures defined in [ITU-E164]. Telephone numbers described in this specification are character strings that MUST begin with a plus sign ("+", ASCII value 0x002B), followed by a country code defined in [ITU-E164], followed by a dot (".", ASCII value 0x002E), followed by a sequence of digits representing the telephone number.

4.4. IP addresses

IP addresses syntax MUST conform either to, Internet Protocol [RFC0791], for IPv4 addresses, or IP Version 6 Addressing Architecture [RFC4291], for IPv6 addresses.

5. Protocol Description

The following is a format for Data Escrow deposits as produced by an Internet Registry. Only the format of the objects deposited is defined, nothing is prescribed about the way to transfer such deposits between the Registry and the Escrow Agent or vice versa. The format is based on EPP [RFC5730] and related RFCs by Scott Hollenbeck.

The protocol intends to be object agnostic allowing the "overload" of abstract elements using the "substitutionGroup" attribute to define the actual elements of an object to be escrowed.

5.1. Root element <deposit>

The container or root element for a Registry Data Escrow deposits is <deposit>. This element contains the following child elements: watermark, deletes, contents, and extension. The latter is explained in Section 8. This element also contains the following attributes:

Example of root element object:

<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
    xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    ...
    type="FULL"
    id="FULL-20101017001" prevId="FULL-20101010001">
    <rde:watermark>2010-10-18T00:00:00Z</rde:watermark>
    <rde:deletes>
       ...
    </rde:deletes>
    <rde:contents>
       ...
    </rde:contents>
</rde:deposit>
                    

5.2. Child <watermark> element

A <watermark> element contains the data-time correspondent to the Timeline Watermark of the deposit.

Example of <watermark> element object:

<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
    xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    ...
    type="FULL"
    id="FULL-20101017001" prevId="FULL-20101010001">
    <rde:watermark>2010-10-18T00:00:00Z</rde:watermark>
    ...
</rde:deposit>
                    

5.3. Child <deletes> element

This element SHOULD only be present in deposits of type Incremental or Differential. It contains the list of objects that were deleted since the base previous deposit. Each object in this section SHALL contain an ID for the object deleted.

This section of the deposit SHOULD NOT be present in Full deposits. When rebuilding a registry it SHOULD be ignored if present in a Full deposit.

The specification for each object to be escrow SHALL identify the identificator to be used to reference the object to be deleted.

Example of <deletes> element object:

<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
    xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    ...
    <rde:deletes>
        <rdeObj1:delete>
            <rdeObj1:name>foo.test</rdeObj1:name>
            <rdeObj1:name>bar.test</rdeObj1:name>
        </rdeObj1:delete>
        <rdeObj2:delete>
            <rdeObj2:id>sh8013-TEST</rdeObj2:id>
            <rdeObj2:id>co8013-TEST</rdeObj2:id>
        </rdeObj2:delete>
    </rde:deletes>
    ...
</rde:deposit>
                    

5.4. Child <contents> element

This element of the deposit contains the actual objects in the deposit. It SHALL be present in all type of deposits. It contains the data for the objects to be escrowed. The actual objects have to be specified individually. This element MAY also contain an extension element allowing extending the format.

In the case of Incremental or Differential deposits, the objects indicate whether the object was added or modified after the base previous deposit. In order to distinguish between one and the other, it will be sufficient to check existence of the referenced object in the base previous deposit.

When applying Incremental or Differential deposits, i.e., when rebuilding the registry from data escrow deposits, the order of the <deletes> and <contents> elements is important. First, all the deletes MUST be applied and then the adds and updates, i.e., first apply what is in <deletes> and later what is in <contents>.

Example of <contents> element object:

<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
    xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    ...
    <rde:contents>   
        ...
        <rdeObj1:contents>
            <rdeObj1:element1>
                <rdeObj1:child1>Object1 specific.</rdeObj1:child1>
                ...
            </rdeObj1:element1>
            <rdeObj2:element2 id="id12345">
                <rdeObj2:field1>Object2 specific.</rdeObj2:field1>
                ...
            </rdeObj2:element2>
        </rdeIDN:contents>
        ...
    </rde:contents>
    ...
</rde:deposit>
                    

6. Object Description

This section describes the base objects defined in EPP: domains, hosts and contacts with the addition of registrars, IDN Table References, IDNs and EPP parameters.

6.1. RDE Domain Object

The RDE domain object is based on the EPP domain name mapping in [RFC5731]. There are two elements used in this format related to domains: the domain object per se, used inside the <contents> element and the <rdeDomain:delete> object used inside the <deletes> element.

6.1.1. <domain> object

The domain element is based on the EPP domain <info> response for an authorized client (see Section 3.1.2. of [RFC5731]) with some additions, including the data from an EPP <transfer> Query Response, see Section 3.1.3. of [RFC5731], and data from the EPP <secDns:create> command, see Section 5.2.1. of [RFC5910].

Example of a domain object:

...
<rdeDomain:domain>
    <rdeDomain:name>pinguino.test</rdeDomain:name>
    <rdeDomain:roid>Dpinguino-TEST</rdeDomain:roid>
    <rdeDomain:status s="pendingDelete"/>
    <rdeDomain:rgpStatus s="redemptionPeriod"/>
    <rdeDomain:registrant>jd1234</rdeDomain:registrant>
    <rdeDomain:contact type="admin">sh8013</rdeDomain:contact>
    <rdeDomain:contact type="tech">sh8013</rdeDomain:contact>
    <rdeDomain:ns>
        <domain:hostObj>ns1.example.com</domain:hostObj>
        <domain:hostObj>ns1.example.net</domain:hostObj>
    </rdeDomain:ns>
    <rdeDomain:host>ns1.pinguino.test</rdeDomain:host>
    <rdeDomain:host>ns2.pinguino.test</rdeDomain:host>
    <rdeDomain:clID>clientX</rdeDomain:clID>
    <rdeDomain:crID>clientY</rdeDomain:crID>
    <rdeDomain:crDate>1999-04-03T22:00:00.0Z</rdeDomain:crDate>
    <rdeDomain:upID>clientX</rdeDomain:upID>
    <rdeDomain:upDate>2009-12-03T09:05:00.0Z</rdeDomain:upDate>
    <rdeDomain:exDate>2015-04-03T22:00:00.0Z</rdeDomain:exDate>
    <rdeDomain:authInfo>
        <domain:pw>2fooBAR</domain:pw>
    </rdeDomain:authInfo>
    <rdeDomain:dnssec>
        <secDNS:maxSigLife>604800</secDNS:maxSigLife>
        <secDNS:dsData>
            <secDNS:keyTag>12345</secDNS:keyTag>
            <secDNS:alg>7</secDNS:alg>
            <secDNS:digestType>1</secDNS:digestType>
            <secDNS:digest>
              93358db22e956a451eb5ae8d2ec39526ca6a87b9
            </secDNS:digest>
        </secDNS:dsData>
    </rdeDomain:dnssec>
    <rdeDomain:transfData>
        <rdeDomain:trStatus>pending</rdeDomain:trStatus>
        <rdeDomain:reID>clientW</rdeDomain:reID>
        <rdeDomain:reDate>2011-03-08T19:38:00.0Z</rdeDomain:reDate>
        <rdeDomain:acID>clientX</rdeDomain:acID>
        <rdeDomain:acDate>2011-03-13T23:59:59.0Z</rdeDomain:acDate>
        <rdeDomain:exDate>2016-04-03T22:00:00.0Z</rdeDomain:exDate>
    </rdeDomain:transfData>
</rdeDomain:domain>
...
                        

6.1.2. <rdeDomain:delete> object

The <rdeDomain:delete> element contains the fully qualified domain name that was deleted.

Example of <rdeDomain:delete> object:

...
<rde:deletes>
        ...
        <rdeDomain:delete>
            <rdeDomain:name>foo.test</rdeDomain:name>
            <rdeDomain:name>bar.test</rdeDomain:name>
        </rdeDomain:delete>
        ...
</rde:deletes>
...
                        

6.2. RDE Host Object

The RDE host object is based on the EPP host name mapping in [RFC5732]. There are two elements used in this format related to hosts: the host object per se, used inside the <contents> element and the <rdeHost:delete> object used inside the <deletes> element.

6.2.1. <host> object

The RDE host object is based on the EPP host <info> response for an authorized client (see Section 3.1.2. of [RFC5732]).

Example of <host> object:

...
<rdeHost:host>
    <rdeHost:name>ns1.example.test</rdeHost:name>
    <rdeHost:roid>Hns1_example_test-TEST</rdeHost:roid>
    <rdeHost:status s="linked"/>
    <rdeHost:status s="clientUpdateProhibited"/>
    <rdeHost:addr ip="v4">192.0.2.2</rdeHost:addr>
    <rdeHost:addr ip="v4">192.0.2.29</rdeHost:addr>
    <rdeHost:addr ip="v6">1080:0:0:0:8:800:200C:417A</rdeHost:addr>
    <rdeHost:clID>clientY</rdeHost:clID>
    <rdeHost:crID>clientX</rdeHost:crID>
    <rdeHost:crDate>1999-05-08T12:10:00.0Z</rdeHost:crDate>
    <rdeHost:upID>clientX</rdeHost:upID>
    <rdeHost:upDate>2009-10-03T09:34:00.0Z</rdeHost:upDate>
    <rdeHost:trDate>2007-01-08T09:19:00.0Z</rdeHost:trDate>
</rdeHost:host>
...
                        

6.2.2. <rdeHost:delete> object

The <rdeHost:delete> element contains the fully qualified domain name of a host that was deleted.

Example of <rdeHost:delete> object:

...
    <rde:deletes>
        ...
        <rdeHost:delete>
            <rdeHost:name>ns1.example.test</rdeHost:name>
        </rdeHost:delete>
        ...
    </rde:deletes>
...
                        

6.3. RDE Contact Object

The RDE contact object is based on the EPP contact name mapping in [RFC5733]. There are two elements used in this format related to contacts: the contact object per se, used inside the <contents> element and the <rdeContact:delete> object used inside the <deletes> element.

6.3.1. <contact> object

The contact object is based on the EPP contact <info> response for an authorized client (see Section 3.1.2. of [RFC5733]) with some additions including the data from an EPP <transfer> Query Response, see Section 3.1.3. of [RFC5733].

Example <contact> object:

...
<rdeContact:contact>
    <rdeContact:id>sh8013</rdeContact:id>
    <rdeContact:roid>Csh8013-TEST</rdeContact:roid>
    <rdeContact:status s="linked"/>
    <rdeContact:status s="clientDeleteProhibited"/>
    <rdeContact:postalInfo type="int">
        <contact:name>John Doe</contact:name>
        <contact:org>Example Inc.</contact:org>
        <contact:addr>
            <contact:street>123 Example Dr.</contact:street>
            <contact:street>Suite 100</contact:street>
            <contact:city>Dulles</contact:city>
            <contact:sp>VA</contact:sp>
            <contact:pc>20166-6503</contact:pc>
            <contact:cc>US</contact:cc>
        </contact:addr>
    </rdeContact:postalInfo>
    <rdeContact:voice x="1234">+1.7035555555</rdeContact:voice>
    <rdeContact:fax>+1.7035555556</rdeContact:fax>
    <rdeContact:email>jdoe@example.test</rdeContact:email>
    <rdeContact:clID>clientY</rdeContact:clID>
    <rdeContact:crID>clientX</rdeContact:crID>
    <rdeContact:crDate>2009-09-13T08:01:00.0Z</rdeContact:crDate>
    <rdeContact:upID>clientX</rdeContact:upID>
    <rdeContact:upDate>2009-11-26T09:10:00.0Z</rdeContact:upDate>
    <rdeContact:authInfo>
        <contact:pw>2fooBAR</contact:pw>
    </rdeContact:authInfo>
    <rdeContact:disclose flag="0">
        <contact:voice/>
        <contact:email/>
    </rdeContact:disclose>
    <rdeContact:transfData>
        <rdeContact:trStatus>pending</rdeContact:trStatus>
        <rdeContact:reID>clientW</rdeContact:reID>
        <rdeContact:reDate>2011-03-08T19:38:00.0Z</rdeContact:reDate>
        <rdeContact:acID>clientX</rdeContact:acID>
        <rdeContact:acDate>2011-03-13T23:59:59.0Z</rdeContact:acDate>
    </rdeContact:transfData>
</rdeContact:contact>
...
                        

6.3.2. <rdeContact:delete> object

The <rdeContact:delete> element contains the id of a contact that was deleted.

Example of <rdeContact:delete> object:

...
    <rde:deletes>
        ...
        <rdeContact:delete>
            <rdeContact:id>sh8013-TEST</rdeContact:id>
            <rdeContact:id>co8013-TEST</rdeContact:id>
        </rdeContact:delete>
        ...
    </rde:deletes>
...
                        

6.4. RDE Registrar Object

The RDE registrar object is based on the EPP contact name mapping previously described. There are two elements used in this format related to registrars: the registrar object per se, used inside the <contents> element and the <rdeRegistrar:delete> object used inside the <deletes> element.

6.4.1. <registrar> object

The <registrar> element contains the following child elements:

Example of <registrar> object:

...
<rdeRegistrar:registrar>
    <rdeRegistrar:id>clientX</rdeRegistrar:id>
    <rdeRegistrar:roid>RclientX-TEST</rdeRegistrar:roid>
    <rdeRegistrar:postalInfo type="int">
        <contact:name>John Doe</contact:name>
        <contact:org>Example Inc.</contact:org>
        <contact:addr>
            <contact:street>123 Example Dr.</contact:street>
            <contact:street>Suite 100</contact:street>
            <contact:city>Dulles</contact:city>
            <contact:sp>VA</contact:sp>
            <contact:pc>20166-6503</contact:pc>
            <contact:cc>US</contact:cc>
        </contact:addr>
    </rdeRegistrar:postalInfo>
    <rdeRegistrar:voice x="1234">+1.7035555555</rdeRegistrar:voice>
    <rdeRegistrar:fax>+1.7035555556</rdeRegistrar:fax>
    <rdeRegistrar:email>jdoe@example.test</rdeRegistrar:email>
    <rdeRegistrar:url>http://www.example.test</rdeRegistrar:url>
    <rdeRegistrar:contact type="admin">rr0013</rdeRegistrar:contact>
    <rdeRegistrar:contact type="tech">rr0012</rdeRegistrar:contact>
    <rdeRegistrar:crDate>2005-04-23T11:49:00.0Z</rdeRegistrar:crDate>
    <rdeRegistrar:upDate>2009-02-17T17:51:00.0Z</rdeRegistrar:upDate>
    <rdeRegistrar:authInfo>
        <contact:pw>tHisaPaSSw</contact:pw>
    </rdeRegistrar:authInfo>
</rdeRegistrar:registrar>
...
                        

6.4.2. <rdeRegistrar:delete> object

The <rdeRegistrar:delete> element contains the id of a registrar that was deleted.

Example of <rdeRegistrar:delete> object:

...
    <rde:deletes>
        ...
        <rdeRegistrar:delete>
            <rdeRegistrar:id>agnt0001-TEST</rdeRegistrar:id>
        </rdeRegistrar:delete>
        ...
    </rde:deletes>
...
                        

6.5. RDE IDN Table Reference

The RDE Internationalized Domain Names (IDN) Table reference is a pseudobject that is used to provide a short reference to the IDN Table used in IDN registrations. The <idnTableRef> element has an "id" attribute that is used to uniquely identify an IDN Table stored externally.

The <idnTableRef> has only one child element, <url> that contains the URL of the IDN table that is being referenced.

Example of <idnTableRef> object:

...
<rdeIDN:idnTableRef id="cl-es">
    <rdeIDN:url>
        http://www.iana.org/domains/idn-tables/tables/cl_latn_1.0.html
    </rdeIDN:url>
</rdeIDN:idnTableRef>
...
                    

6.6. RDE IDN object

6.6.1. IDN variants Handling

Depending on the Registration Policy in place in the Registry; for a particular IDN, there may be multiple variant domains either registered, reserved or blocked:

  1. If the IDN is considered to be the preferred variant, base or primary IDN upon which the IDN variants are formed, the IDN SHALL be tagged as "canonical".
  2. If the IDN variant is actually registered, bundled with its canonical domain name in the Registry system, the variant SHALL be tagged as "registered".
  3. If only the holder of the canonical domain name is allowed to register the IDN variant but it is not actually registered, the variant SHALL be tagged as "reserved".
  4. If the IDN variant is considered undesirable for registration, the variant SHALL be tagged as "blocked".

IDN variants tagged as "reserved" or "blocked" SHOULD be escrowed if explicitly declared and known.

6.6.2. <idn> object

The <idn> element contains the following child elements:

Example of <idn> object:

...
<rdeIDN:idn>
    <rdeIDN:aName>xn--pingino-q2a.test</rdeIDN:aName>
    <rdeIDN:uName>pingüino.test</rdeIDN:uName>
    <rdeIDN:type>reserved</rdeIDN:type>
    <rdeIDN:idnTableId>cl-es</rdeIDN:idnTableId>
    <rdeIDN:canonicalRoid>Dpinguino-TEST</rdeIDN:canonicalRoid>
</rdeIDN:idn>
...
                        

6.6.3. <rdeIDN:delete> object

The <rdeIDN:delete> element contains the ACE of an IDN that was deleted, i.e., the <aName>.

Example of <rdeIDN:delete> object:

...
    <rde:deletes>
        ...
        <rdeIDN:delete>
            <rdeIDN:aName>xn--pingino-q2a.test</rdeIDN:aName>
        </rdeIDN:delete>
        ...
    </rde:deletes>
...
                        

6.7. RDE EPP Parameters object

An OPTIONAL <eppParams> element contains some EPP parameters that may be helpful when rebuilding a registry from the escrow deposits. The element SHOULD be included in Deposits if the registry uses EPP.

The syntax and content of the <eppParams> children elements is as explained in section 2.4 of [RFC5730]. The children of the <eppParams> are as follows:

Example of <eppParams> element object:

<?xml version="1.0" encoding="UTF-8"?>
<rde:deposit
    xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    ...
    <rde:contents>
        ...
        <rdeEppParams:contents>
            <rdeEppParams:eppParams>
                <rdeEppParams:version>1.0</rdeEppParams:version>
                <rdeEppParams:lang>en</rdeEppParams:lang>
                <rdeEppParams:objURI>
                   urn:ietf:params:xml:ns:domain-1.0
                </rdeEppParams:objURI>
                <rdeEppParams:objURI>
                   urn:ietf:params:xml:ns:contact-1.0
                </rdeEppParams:objURI>
                <rdeEppParams:objURI>
                   urn:ietf:params:xml:ns:host-1.0
                </rdeEppParams:objURI>
                <rdeEppParams:svcExtension>
                    <epp:extURI>
                       urn:ietf:params:xml:ns:rgp-1.0
                    </epp:extURI>
                    <epp:extURI>
                       urn:ietf:params:xml:ns:secDNS-1.1
                    </epp:extURI>
                </rdeEppParams:svcExtension>
                <rdeEppParams:dcp>
                    <epp:access><epp:all/></epp:access>
                    <epp:statement>
                        <epp:purpose>
                            <epp:admin/>
                            <epp:prov/>
                        </epp:purpose>
                        <epp:recipient>
                            <epp:ours/>
                            <epp:public/>
                        </epp:recipient>
                        <epp:retention>
                            <epp:stated/>
                        </epp:retention>
                    </epp:statement>
                </rdeEppParams:dcp>
            </rdeEppParams:eppParams>
            ...
        </rdeEppParams:contents>
    ...
</rde:deposit>
                    

7. Formal Syntax

Seven schemas are presented here. The first schema is the base RDE schema. The second schema defines domain object for RDE. The third schema defines host object for RDE. The fourth schema defines contact object for RDE. The fifth schema defines registrar object for RDE. The sixth schema defines the idnTableRef and IDN objects. The last schema defines the eppParams objects.

7.1. RDE Schema

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rde-1.0"
        xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

  <annotation>
    <documentation>
      Registry Data Escrow schema
    </documentation>
  </annotation>

  <!--
  Root element
  -->
  <element name="deposit" type="rde:escrowDepositType"/>

  <!--
  RDE types
  -->
  <complexType name="escrowDepositType">
    <sequence>
      <element name="watermark" type="dateTime"/>
      <element name="deletes" type="rde:rdeDeletesType"
       minOccurs="0"/>
      <element name="contents" type="rde:rdeContentsType"/>
      <element name="extension" type="rde:extAnyType"
       minOccurs="0"/>
    </sequence>
    <attribute name="type" type="rde:depositType"
     use="required"/>
    <attribute name="id" type="rde:depositIdType"
     use="required"/>
    <attribute name="prevId" type="rde:depositIdType"
     use="optional"/>
    <attribute name="resend" type="unsignedShort"
     default="0"/>
  </complexType>

  <complexType name="rdeContentsType">
    <sequence
     minOccurs="0" maxOccurs="unbounded">
      <element ref="rde:contents"/>
    </sequence>
  </complexType>

  <element name="contents" type="rde:contentsType" abstract="true" />
  <complexType name="contentsType">
    <sequence
     minOccurs="0" maxOccurs="unbounded">
      <element ref="rde:content"/>
    </sequence>
  </complexType>

  <element name="content" type="rde:contentType" abstract="true" />
  <complexType name="contentType">
    <sequence/>
  </complexType>

  <complexType name="rdeDeletesType">
    <sequence
     minOccurs="0" maxOccurs="unbounded">
      <element ref="rde:delete"/>
    </sequence>
  </complexType>

  <element name="delete" type="rde:deleteType" abstract="true" />
  <complexType name="deleteType">
    <sequence/>
  </complexType>

  <!--
  Type of deposit
  -->
  <simpleType name="depositType">
    <restriction base="token">
      <enumeration value="FULL"/>
      <enumeration value="INCR"/>
      <enumeration value="DIFF"/>
    </restriction>
  </simpleType>

  <!--
  Deposit identifier type
  -->
  <simpleType name="depositIdType">
    <restriction base="token">
      <pattern value="(FULL|INCR|DIFF)-\w{1,13}"/>
    </restriction>
  </simpleType>

  <!--
  Extension framework type
  -->
  <complexType name="extAnyType">
    <sequence>
      <any namespace="##other"
       maxOccurs="unbounded"/>
    </sequence>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

7.2. RDE Domain Object

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rdeDomain-1.0"
          xmlns:rdeDomain="urn:ietf:params:xml:ns:rdeDomain-1.0"
          xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
          xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0"
          xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1"
          xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
          xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
          xmlns="http://www.w3.org/2001/XMLSchema"
          elementFormDefault="qualified">

  <!--
  Import common element types
  -->
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
          schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:domain-1.0"
          schemaLocation="domain-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:secDNS-1.1"
          schemaLocation="secDNS-1.1.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rgp-1.0"
          schemaLocation="rgp-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rde-1.0"
          schemaLocation="rde-1.0.xsd"/>

  <annotation>
    <documentation>
      Registry Data Escrow Domain provisioning schema
    </documentation>
  </annotation>

  <!--
  Child elements of the <rde:contents> object
  -->
  <element name="contents" type="rdeDomain:contentsType"
   substitutionGroup="rde:contents"/>

  <complexType name="contentsType">
    <complexContent>
      <extension base="rde:contentsType"/>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="domain" type="rdeDomain:contentType"
   substitutionGroup="rde:content"/>

 <complexType name="contentType">
  <complexContent>
   <extension base="rde:contentType">
    <sequence>
     <element name="name" type="eppcom:labelType"/>
     <element name="roid" type="eppcom:roidType"/>
     <element name="status" type="domain:statusType"
      maxOccurs="11"/>
     <element name="rgpStatus" type="rgp:statusType"
      minOccurs="0"/>
     <element name="registrant" type="eppcom:clIDType"
      minOccurs="0"/>
     <element name="contact" type="domain:contactType"
      minOccurs="0" maxOccurs="unbounded"/>
     <element name="ns" type="domain:nsType"
      minOccurs="0"/>
     <element name="host" type="eppcom:labelType"
      minOccurs="0" maxOccurs="unbounded"/>
     <element name="clID" type="eppcom:clIDType"/>
     <element name="crID" type="eppcom:clIDType"
      minOccurs="0"/>
     <element name="crDate" type="dateTime"
      minOccurs="0"/>
     <element name="upID" type="eppcom:clIDType"
      minOccurs="0"/>
     <element name="upDate" type="dateTime"
      minOccurs="0"/>
     <element name="exDate" type="dateTime"
      minOccurs="0"/>
     <element name="deDate" type="dateTime"
      minOccurs="0"/>
     <element name="authInfo" type="domain:authInfoType"
      minOccurs="0"/>
     <element name="dnssec" type="secDNS:dsOrKeyType"
      minOccurs="0"/>
     <element name="transfData" type="rdeDomain:transferDataType"
      minOccurs="0"/>
     <element name="extension" type="rde:extAnyType"
      minOccurs="0"/>
    </sequence>
   </extension>
  </complexContent>
 </complexType>
 
 <complexType name="transferDataType">
  <sequence>
   <element name="trStatus" type="eppcom:trStatusType"/>
   <element name="reID" type="eppcom:clIDType"/>
   <element name="reDate" type="dateTime"/>
   <element name="acID" type="eppcom:clIDType"/>
   <element name="acDate" type="dateTime"/>
   <element name="exDate" type="dateTime"
    minOccurs="0"/>
  </sequence>
 </complexType>

  <!--
  Child elements of the <rde:delete> object
  -->
  <element name="delete" type="rdeDomain:deleteType"
   substitutionGroup="rde:delete"/>

  <complexType name="deleteType">
    <complexContent>
      <extension base="rde:deleteType">
        <sequence>
          <element name="name" type="eppcom:labelType"
           minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

7.3. RDE Host Object

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rdeHost-1.0"
        xmlns:rdeHost="urn:ietf:params:xml:ns:rdeHost-1.0"
        xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
        xmlns:host="urn:ietf:params:xml:ns:host-1.0"
        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

  <!--
  Import common element types
  -->
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
          schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:host-1.0"
          schemaLocation="host-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rde-1.0"
          schemaLocation="rde-1.0.xsd"/>

  <annotation>
    <documentation>
      Registry Data Escrow host provisioning schema
    </documentation>
  </annotation>

  <!--
  Child elements of the <rde:contents> object
  -->
  <element name="contents" type="rdeHost:contentsType"
   substitutionGroup="rde:contents"/>

  <complexType name="contentsType">
    <complexContent>
      <extension base="rde:contentsType"/>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="host" type="rdeHost:contentType"
   substitutionGroup="rde:content"/>

  <complexType name="contentType">
    <complexContent>
      <extension base="rde:contentType">
        <sequence>
          <element name="name" type="eppcom:labelType"/>
          <element name="roid" type="eppcom:roidType"/>
          <element name="status" type="host:statusType"
           maxOccurs="7"/>
          <element name="addr" type="host:addrType"
           minOccurs="0" maxOccurs="unbounded"/>
          <element name="clID" type="eppcom:clIDType"/>
          <element name="crID" type="eppcom:clIDType"/>
          <element name="crDate" type="dateTime"/>
          <element name="upID" type="eppcom:clIDType"
           minOccurs="0"/>
          <element name="upDate" type="dateTime"
           minOccurs="0"/>
          <element name="trDate" type="dateTime"
           minOccurs="0"/>
          <element name="extension" type="rde:extAnyType"
           minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:delete> object
  -->
  <element name="delete" type="rdeHost:deleteType"
   substitutionGroup="rde:delete"/>

  <complexType name="deleteType">
    <complexContent>
      <extension base="rde:deleteType">
        <sequence>
          <element name="name" type="eppcom:labelType"
           minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

7.4. RDE Contact Object

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rdeContact-1.0"
        xmlns:rdeContact="urn:ietf:params:xml:ns:rdeContact-1.0"
        xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
        xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

  <!--
  Import common element types.
  -->
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
          schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:contact-1.0"
          schemaLocation="contact-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rde-1.0"
          schemaLocation="rde-1.0.xsd"/>

  <annotation>
    <documentation>
      Registry Data Escrow contact provisioning schema
    </documentation>
  </annotation>

  <!--
  Child elements of the <rde:contents> object
  -->
  <element name="contents" type="rdeContact:contentsType"
   substitutionGroup="rde:contents"/>

  <complexType name="contentsType">
    <complexContent>
      <extension base="rde:contentsType"/>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="contact" type="rdeContact:contentType"
   substitutionGroup="rde:content"/>

  <complexType name="contentType">
    <complexContent>
      <extension base="rde:contentType">
        <sequence>
          <element name="id" type="eppcom:clIDType"/>
          <element name="roid" type="eppcom:roidType"/>
          <element name="status" type="contact:statusType"
           maxOccurs="7"/>
          <element name="postalInfo" type="contact:postalInfoType"
           maxOccurs="2"/>
          <element name="voice" type="contact:e164Type"
           minOccurs="0"/>
          <element name="fax" type="contact:e164Type"
           minOccurs="0"/>
          <element name="email" type="eppcom:minTokenType"/>
          <element name="clID" type="eppcom:clIDType"/>
          <element name="crID" type="eppcom:clIDType"/>
          <element name="crDate" type="dateTime"/>
          <element name="upID" type="eppcom:clIDType"
           minOccurs="0"/>
          <element name="upDate" type="dateTime"
           minOccurs="0"/>
          <element name="authInfo" type="contact:authInfoType"
           minOccurs="0"/>
          <element name="disclose" type="contact:discloseType"
           minOccurs="0"/>
          <element name="transfData" type="rdeContact:transferDataType"
           minOccurs="0"/>
          <element name="extension" type="rde:extAnyType"
           minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

 <complexType name="transferDataType">
  <sequence>
   <element name="trStatus" type="eppcom:trStatusType"/>
   <element name="reID" type="eppcom:clIDType"/>
   <element name="reDate" type="dateTime"/>
   <element name="acID" type="eppcom:clIDType"/>
   <element name="acDate" type="dateTime"/>
  </sequence>
 </complexType>

 <!--
  Child elements of the <rde:delete> object
  -->
  <element name="delete" type="rdeContact:deleteType"
   substitutionGroup="rde:delete"/>

  <complexType name="deleteType">
    <complexContent>
      <extension base="rde:deleteType">
        <sequence>
          <element name="id" type="eppcom:clIDType"
           minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

7.5. RDE Registrar Object

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rdeRegistrar-1.0"
        xmlns:rdeRegistrar="urn:ietf:params:xml:ns:rdeRegistrar-1.0"
        xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
        xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
        xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

  <!--
  Import common element types.
  -->
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
          schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:domain-1.0"
          schemaLocation="domain-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:contact-1.0"
          schemaLocation="contact-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rde-1.0"
          schemaLocation="rde-1.0.xsd"/>

  <annotation>
    <documentation>
      Registry Data Escrow registrar provisioning schema
    </documentation>
  </annotation>

  <!--
  Child elements of the <rde:contents> object
  -->
  <element name="contents" type="rdeRegistrar:contentsType"
   substitutionGroup="rde:contents"/>

  <complexType name="contentsType">
    <complexContent>
      <extension base="rde:contentsType"/>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="registrar" type="rdeRegistrar:contentType"
   substitutionGroup="rde:content"/>

   <complexType name="contentType">
    <complexContent>
      <extension base="rde:contentType">
        <sequence>
          <element name="id" type="eppcom:clIDType"/>
          <element name="roid" type="eppcom:roidType"/>
          <element name="icannId" type="positiveInteger"
           minOccurs="0"/>
          <element name="postalInfo" type="contact:postalInfoType"
           maxOccurs="2"/>
          <element name="voice" type="contact:e164Type"
           minOccurs="0"/>
          <element name="fax" type="contact:e164Type"
           minOccurs="0"/>
          <element name="email" type="eppcom:minTokenType"
           minOccurs="0"/>
          <element name="url" type="anyURI"
           minOccurs="0"/>
          <element name="contact" type="domain:contactType"
           minOccurs="0" maxOccurs="unbounded"/>
          <element name="crDate" type="dateTime"/>
          <element name="upDate" type="dateTime"
           minOccurs="0"/>
          <element name="authInfo" type="contact:authInfoType"
           minOccurs="0"/>
          <element name="extension" type="rde:extAnyType"
           minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:delete> object
  -->
  <element name="delete" type="rdeRegistrar:deleteType"
   substitutionGroup="rde:delete"/>

  <complexType name="deleteType">
    <complexContent>
      <extension base="rde:deleteType">
        <sequence>
          <element name="id" type="eppcom:clIDType"
           minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

7.6. RDE IDN and IDN Table Reference Objects

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rdeIDN-1.0"
        xmlns:rdeIDN="urn:ietf:params:xml:ns:rdeIDN-1.0"
        xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

  <!--
  Import common element types
  -->
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
   schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rde-1.0"
   schemaLocation="rde-1.0.xsd"/>

  <annotation>
    <documentation>
      Registry Data Escrow IDN provisioning schema
    </documentation>
  </annotation>

  <!--
  Child elements of the <rde:contents> object
  -->
  <element name="contents" type="rdeIDN:contentsType"
    substitutionGroup="rde:contents"/>

  <complexType name="contentsType">
    <complexContent>
      <extension base="rde:contentsType"/>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="idn" type="rdeIDN:contentType"
    substitutionGroup="rde:content"/>

  <complexType name="contentType">
    <complexContent>
      <extension base="rde:contentType">
        <sequence>
          <element name="aName" type="eppcom:labelType"/>
          <element name="uName" type="eppcom:labelType"
           minOccurs="0"/>
          <element name="type" type="rdeIDN:variantType"/>
          <element name="idnTableId" type="IDREF"/>
          <element name="roid" type="eppcom:roidType"
           minOccurs="0"/>
          <element name="canonicalRoid" type="eppcom:roidType"
           minOccurs="0"/>
          <element name="extension" type="rde:extAnyType"
           minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <simpleType name="variantType">
    <restriction base="token">
      <enumeration value="registered"/>
      <enumeration value="reserved"/>
      <enumeration value="blocked"/>
      <enumeration value="canonical"/>
    </restriction>
  </simpleType>
  
  <!--
    Child elements of the <rde:delete> object
  -->
  <element name="delete" type="rdeIDN:deleteType"
    substitutionGroup="rde:delete"/>
  
  <complexType name="deleteType">
    <complexContent>
      <extension base="rde:deleteType">
        <sequence>
          <element name="aName" type="eppcom:labelType"
            minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="idnTableRef" type="rdeIDN:idnTableRefType"
   substitutionGroup="rde:content"/>

  <complexType name="idnTableRefType">
    <complexContent>
      <extension base="rde:contentType">
        <sequence>
          <element name="url" type="anyURI"/>
        </sequence>
        <attribute name="id" type="ID"/>
      </extension>
    </complexContent>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

7.7. EPP Parameters Object

Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

BEGIN
<?xml version="1.0" encoding="UTF-8"?>

<schema targetNamespace="urn:ietf:params:xml:ns:rdeEppParams-1.0"
        xmlns:rdeEppParams="urn:ietf:params:xml:ns:rdeEppParams-1.0"
        xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
        xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
        xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
        xmlns="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified">

  <!--
  Import common element types
  -->
  <import namespace="urn:ietf:params:xml:ns:epp-1.0"
   schemaLocation="epp-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0"
   schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:rde-1.0"
   schemaLocation="rde-1.0.xsd"/>

  <annotation>
    <documentation>
      Registry Data Escrow EPP Parameters schema
    </documentation>
  </annotation>

  <!--
  Child elements of the <rde:contents> object
  -->
  <element name="contents" type="rdeEppParams:contentsType"
    substitutionGroup="rde:contents"/>

  <complexType name="contentsType">
    <complexContent>
      <extension base="rde:contentsType"/>
    </complexContent>
  </complexType>

  <!--
  Child elements of the <rde:content> object
  -->
  <element name="eppParams" type="rdeEppParams:contentType"
    substitutionGroup="rde:content"/>

  <complexType name="contentType">
    <complexContent>
      <extension base="rde:contentType">
        <sequence>
          <element name="version" type="epp:versionType"
            maxOccurs="unbounded"/>
          <element name="lang" type="language"
            maxOccurs="unbounded"/>
          <element name="objURI" type="anyURI"
            maxOccurs="unbounded"/>
          <element name="svcExtension" type="epp:extURIType"
            minOccurs="0"/>
          <element name="dcp" type="epp:dcpType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!--
  End of schema.
  -->
</schema>
END

8. Extension Guidelines

TBD

9. Internationalization Considerations

Data Escrow deposits are represented in XML, which provides native support for encoding information using the Unicode character set and its more compact representations including UTF-8. Conformant XML processors recognize both UTF-8 and UTF-16. Though XML includes provisions to identify and use other character encodings through use of an "encoding" attribute in an <?xml?> declaration, use of UTF-8 is RECOMMENDED.

10. IANA Considerations

This document uses URNs to describe XML namespaces and XML schemas conforming to a registry mechanism described in [RFC3688]. Fourteen URI assignments have been registered by the IANA.

Registration request for the RDE namespace:

Registration request for the RDE XML schema:

Registration request for the RDE domain namespace:

Registration request for the RDE domain XML schema:

Registration request for the RDE host namespace:

Registration request for the RDE host XML schema:

Registration request for the RDE contact namespace:

Registration request for the RDE contact XML schema:

Registration request for the RDE registrar namespace:

Registration request for the RDE registrar XML schema:

Registration request for the RDE IDN namespace:

Registration request for the RDE IDN XML schema:

Registration request for the RDE EPP parameters namespace:

Registration request for the RDE EPP parameters XML schema:

11. Security Considerations

This specification does not define the security mechanisms to be used in the transmission of the data escrow deposits, since it only specifies the minimum necessary to enable the rebuilding of a Registry from deposits without intervention from the original Registry.

Depending on local policies, some elements or most likely, the whole deposit will be considered confidential. As such the Registry transmitting the data to the Escrow Agent SHOULD take all the necessary precautions like encrypting the data itself and/or the transport channel to avoid inadvertent disclosure of private data.

It is also of the utmost importance the authentication of the parties passing data escrow deposit files. The Escrow Agent SHOULD properly authenticate the identity of the Registry before accepting data escrow deposits. In a similar manner, the Registry SHOULD authenticate the identity of the Escrow Agent before submitting any data.

Additionally, the Registry and the Escrow Agent SHOULD use integrity checking mechanisms to ensure the data transmitted is what the source intended. Validation of the contents by the Escrow Agent is RECOMMENDED to ensure not only the file was transmitted correctly from the Registry, but also the contents are also "meaningful".

12. Acknowledgments

Parts of this document are based on EPP [RFC5730] and related RFCs by Scott Hollenbeck.

TBD

13. Change History

[[RFC Editor: Please remove this section.]]

13.1. Changes from version 00 to 01

  1. Included DNSSEC elements as part of the basic <domain> element as defined in [RFC5910].
  2. Included RGP elements as part of the basic <domain> element as defined in [RFC3915].
  3. Added support for IDNs and IDN variants.
  4. Eliminated the <summary> element and all its subordinate objects, except <watermarkDate>.
  5. Renamed <watermarkDate> to <watermark> and included it directly under root element.
  6. Renamed root element to <deposit>.
  7. Added <authinfo> element under <registrar> element.
  8. Added <roid> element under <registrar> element.
  9. Reversed the order of the <deletes> and <contents> elements.
  10. Removed <rdeDomain:status> minOccurs="0".
  11. Added <extension> element under root element.
  12. Added <extension> element under <contact> element.
  13. Removed <period> element from <domain> element.
  14. Populated the "Security Considerations" section.
  15. Populated the "Internationalization Considerations" section.
  16. Populated the "Extension Example" section.
  17. Added <deDate> element under <domain> element.
  18. Added <icannId> element under <registrar> element.
  19. Added <eppParams> element under root element.
  20. Fixed some typographical errors and omissions.

13.2. Changes from version 01 to 02

  1. Added definition for "canonical" in the "IDN variants Handling" section.
  2. Clarified that "blocked" and "reserved" IDN variants are optional.
  3. Made <rdeRegistrar:authInfo> optional.
  4. Introduced substitutionGroup as the mechanism for extending the protocol.
  5. Moved <eppParams> element to be child of <contents>
  6. Text improvements in the Introduction, Terminology, and Problem Scope per Jay's suggestion.
  7. Removed <trDate> from <rdeDomain> and added <transfData> instead, which include all the data from the last (pending/processed) transfer request
  8. Removed <trDate> from <rdeContact> and added <transfData> instead, which include all the data from the last (pending/processed) transfer request
  9. Fixed some typographical errors and omissions.

14. References

14.1. Normative References

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, July 2002.
[RFC3915] Hollenbeck, S., "Domain Registry Grace Period Mapping for the Extensible Provisioning Protocol (EPP)", RFC 3915, September 2004.
[RFC5730] Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, August 2009.
[RFC5731] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Domain Name Mapping", STD 69, RFC 5731, August 2009.
[RFC5732] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Host Mapping", STD 69, RFC 5732, August 2009.
[RFC5733] Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Contact Mapping", STD 69, RFC 5733, August 2009.
[RFC5910] Gould, J. and S. Hollenbeck, "Domain Name System (DNS) Security Extensions Mapping for the Extensible Provisioning Protocol (EPP)", RFC 5910, May 2010.
[ISO-3166-1] International Organization for Standardization, "Codes for the representation of names of countries and their subdivisions -- Part 1: Country codes ", ISO Standard 3166, November 2006.
[ITU-E164] International Telecommunication Union, "The international public telecommunication numbering plan ", ITU-T Recommendation E.164, February 2005.

14.2. Informative References

[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006.

Authors' Addresses

Francisco Arias Internet Corporation for Assigned Names and Numbers 4676 Admiralty Way, Suite 330 Marina del Rey, 90292 United States of America Phone: +1.310.823.9358 EMail: francisco.arias@icann.org
Shoji Noguchi Japan Registry Services Co., Ltd. Chiyoda First Bldg. East 13F, 3-8-1 Nishi-Kanda Chiyoda-ku, Tokyo, 101-0065 Japan Phone: +81.3.5215.8451 EMail: noguchi@jprs.co.jp