Network Working Group J.G. Gould
Internet-Draft C.T. Thippeswamy
Intended status: Standards Track Verisign
Expires: May 09, 2013 November 05, 2012

Domain Name Registration Data (DNRD) Comma-Separated Values (CSV) Objects Mapping
draft-gould-thippeswamy-dnrd-csv-mapping-00

Abstract

This document specifies the format and contents of Data Escrow deposits for the standard set of Domain Name Registration Data (DNRD) objects including domain, host, contact, and registrar using XML for definition and Comma-Separated Values (CSV) Files for data.

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 May 09, 2013.

Copyright Notice

Copyright (c) 2012 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

The Registry Data Escrow Specification can be extended to support any type of object that is included in a data escrow. This document defines the data escrow structure of the standard set of objects for Domain Name Registration Data (DNRD), using XML for definition and Comma-Seperated Values (CSV) files for data, which include:

Domain:
Internet domain names that are typically provisioned in a Domain Name Registry using the EPP domain name mapping [RFC5731]. The attributes defined in the EPP domain name mapping [RFC5731] are fully supported by this document.
Host:
Internet host names that are typically provisioned in a Domain Name Registry using the EPP host mapping [RFC5732]. The attributes defined in the EPP host mapping [RFC5732] are fully supported by this document.
Contact:
Individual or organization social information provisioned in a Domain Name Registry using the EPP contact mapping [RFC5733]. The attributes defined in the EPP contact mapping [RFC5733] are fully supported by this document.
Registrar:
The organization that sponsors objects like domains, hosts, and contacts in a Domain Name Registry. The Registrar MAY also be associated with contacts, referred to as Registrars contacts.
IDN language rules:
Internationalized Domain Names (IDN) in the Domain Object Data Escrow include references to the languages rules that define the set of character code points allowed for a specific language.

Bulk data exports and imports from and to a database is a natural fit for the use of Comma-Seperated Values (CSV) files, but CSV files don't provide any formal description that is a natural fit for the use of XML. This document fully supports the full, incremental, and differential deposits defined in the Registry Data Escrow Specification with a flexible and extensible model for Domain Name Registration Data (DNRD) that leverages Comma-Seperated Values (CSV) files for creating and consuming the deposits in a cost effective manner.

2. 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 RFC 2119 [RFC2119].

3. Object Attributes

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

3.2. Country names

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

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

3.4. Internationalized and Localized Elements

Some elements MAY be provided in either internationalized form ("int") or provided in localized form ("loc"). Those elements use a field value or "isLoc" attribute to specify the form used. If an "isLoc" attribute is used, a value of "true" indicates the use of the localized form and a value of "false" indicates the use of the internationalized form. This MAY override the form specified for a parent element. A value of "int" is used to indicate the internationalized form and a value of "loc" is used to indicate the localized form. When the internalized form ("int") is provided, the field value MUST be represented in a subset of UTF-8 that can be represented in the 7-bit US-ASCII character set. When the localized form ("loc") is provided, the field value MAY be represented in unrestricted UTF-8. Some of the field elements below of the "registrar" <rdeCsv:csv"> <rdeCsv:fields> element specify the internationalized form with the isLoc="false" attribute:

...
<csvRegistrar:contents>
  ...
  <rdeCsv:csv name="registrar">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvRegistrar:fId/>
      <rdeCsv:fRoid/>
      <csvRegistrar:fName isLoc="false"/>
      <csvRegistrar:fGurid/>
      <csvRegistrar:fStatus/>
      <csvContact:fStreet isLoc="false" index="0"/>
      <csvContact:fStreet isLoc="false" index="1"/>
      <csvContact:fStreet isLoc="false" index="2"/>
      <csvContact:fCity isLoc="false" />
      <csvContact:fSp isLoc="false" />
      <csvContact:fPc isLoc="false" />
      <csvContact:fCc isLoc="false" />
      <csvContact:fVoice/>
      <csvContact:fVoiceExt/>
      <csvContact:fFax/>
      <csvContact:fFaxExt/>
      <csvContact:fEmail/>
      <csvRegistrar:fUrl/>
      <csvRegistrar:fWhoisUrl/>
      <rdeCsv:fCrID/>
      <rdeCsv:fCrDate/>
      <rdeCsv:fUpID/>
      <rdeCsv:fUpDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1924040625 268">
        registrar-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvRegistrar:contents>
...
                        

The following is an example of using the <csvContact:fPostalType> field value to define the internationalized or localized form of the remainder of the "contactPostal" field values.

...
<csvContact:contents>
  ...
  <rdeCsv:csv name="contactPostal">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvContact:fId/>
      <csvContact:fPostalType/>
      <csvContact:fName/>
      <csvContact:fOrg/>
      <csvContact:fStreet index="0"/>
      <csvContact:fStreet index="1"/>
      <csvContact:fStreet index="2"/>
      <csvContact:fCity/>
      <csvContact:fSp/>
      <csvContact:fPc/>
      <csvContact:fCc/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactPostal-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>     
  ...
</csvContact:contents>
...
                        

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

3.6. CSV elements

3.6.1. <rdeCsv:csv> and <rdeCsv:csvDelete> elements

To support a CSV model with the Registry Data Escrow Specification, a <rdeCsv:csv> element is defined that substitutes for <rde:content> as a child element of a <rde:contents> substitute element like the <csvDomain:contents> element. A <rdeCsv:csvDelete> element substitutes for <rde:delete> as a child element of the <rde:deletes> element. The <rdeCsv:csv> and <rdeCsv:csvDelete> elements share the following child elements:

<rdeCsv:sep>
Optional definition of the CSV separator characters with the default separator character of ",".
<rdeCsv:fields>
Ordered list of CSV fields used in the CSV files. There is one or more child elements that substitute for the <rdeCsv:field> abstract element. Each element defines the format of the CSV field contained in the CSV files. <rdeCsv:field> elements by convention support the "type" attribute that defines the XML data type of the field elements, an optional "list" attribute that when "true" indicates that the field is a list with the list elements type defined by the "type" attribute, and an optional "sep" attribute for list fields that defines the list element separator characters with a default seperator of ','. List fields MUST be enclosed in double quotes '"'. By convention all fields are optional, where an undefined field can be represented with an empty field value ",," in the CSV file, where ',' is the seperator character.
<rdeCsv:files>
A list of one or more CSV files using the <rdeCsv:file> child element. The <rdeCsv:file> child element defines a reference to the CSV file name and has the following optional attributes:
compression
If the CSV file is compressed, the "compression" attribute defines the compression format like "gzip" or "zip".
encoding
Defines the encoding of the CSV file with the default encoding of "UTF-8".
chksum
Defines the checksum CRC (UNIX cksum) of the CSV file. This attribute is used to validate that the full CSV file exists and has not been tampered with.

The <rdeCsv:csv> and <rdeCsv:csvDelete> elements requires a "name" attribute that defines the purpose of the CSV file with values like "domain", "host", "contact". The supported "name" attribute values are defined for each object type.

The following is an example of the <rdeCsv:csv> element for domain name records.

<rdeCsv:csv name="domain">
  <rdeCsv:sep>,</rdeCsv:sep>
  <rdeCsv:fields>
    <rdeCsv:fName/>
    <rdeCsv:fRoid/>
    <csvDomain:fIdn/>
    <rdeCsv:fLanguage/>
    <csvDomain:fVariant/>
    <csvDomain:fOriginalName/>
    <csvDomain:fReserved/>
    <rdeCsv:fStatuses/>
    <csvDomain:fRgpStatuses/>
    <rdeCsv:fRegistrant/>
    <rdeCsv:fAdminContacts/>
    <rdeCsv:fTechContacts/>
    <rdeCsv:fBillingContacts/>
    <csvDomain:fNsObjs/>
    <rdeCsv:fClID/>
    <rdeCsv:fCrID/>
    <rdeCsv:fCrDate/>
    <rdeCsv:fUpID/>
    <rdeCsv:fUpDate/>
    <rdeCsv:fExDate/>
    <rdeCsv:fPwAuthInfo/>
  </rdeCsv:fields>
  <rdeCsv:files>
    <rdeCsv:file 
      cksum="2670296305 91797970">
      domain-YYYYMMDD.csv
    </rdeCsv:file> 
  </rdeCsv:files>
</rdeCsv:csv>
                        

The following is example of the "domain-YYYYMMDD.csv" file with a single record matching the <rdeCsv:fields> definition.

domain1.test,domain1-TEST,0,,0,0,,0,"pendingDelete",
"pendingDelete",registrantid,"adminid","techid","billingid",
"ns1.example.com,ns1.example.net",clientX,clientY,
1999-04-03T22:00:00.0Z,clientX,2009-12-03T09:05:00.0Z,
2015-04-03T22:00:00.0Z,2fooBAR
domain2.test,domain2-TEST,0,,0,0,,0,"ok",,registrantid,
"adminid","techid","billingid","ns1.example.com,ns1.example.net",
clientX,clientY,2009-04-03T22:00:00.0Z,clientX,
2009-12-03T09:05:00.0Z,2015-04-03T22:00:00.0Z,2fooBAR
                        

The following is an example of the <rde:csvDelete> element for domain name records.

<rdeCsv:csvDelete name="domain">
  <rdeCsv:fields>
    <rdeCsv:fName/>
  </rdeCsv:fields>
  <rdeCsv:files>
    <rdeCsv:file 
      cksum="2670296305 91797970">
      domain-delete-YYYYMMDD.csv
    </rdeCsv:file> 
  </rdeCsv:files>
</rdeCsv:csvDelete>
                        

The following is example of the "domain-delete-YYYYMMDD.csv" file with a single record and matching the single <rdeCsv:fName> field.

domain1.test
domain2.test
domainN.test
                        

3.6.2. CSV common field elements

The <rdeCsv:fields> element defined in the <rdeCsv:csv> and <rdeCsv:csvDelete> elements [rdeCsv-csv-csvDelete] section has child elements that substitute for the abstract <rdeCsv:field> element. By convention <rdeCsv:field> elements incude an 'f' prefix to identify it as a field definition element. There are a set of common field elements that are used across multiple data escrow objects. The common field elements are defined using the "urn:ietf:params:xml:ns:rdeCsv-1.0" namespace and using the "rdeCsv" sample namespace prefix. The CSV common field elements include:

<rdeCsv:fName>
Name field with type="eppcom:labelType".
<rdeCsv:fUName>
UTF-8 encoded name field with type="eppcom:labelType".
<rdeCsv:fRoid>
Repository Object IDentifier (ROID) field with type="eppcom:roidType".
<rdeCsv:fRegistrant>
Registrant contact identifier with type="eppcom:clIDType".
<rdeCsv:fAdminContacts>
List of administration contact identifiers with the list elements type="eppcom:clIDType".
<rdeCsv:fTechContacts>
List of technical contact identifiers with the list elements type="eppcom:clIDType".
<rdeCsv:fBillingContacts>
List of billing contact identifiers with the list elements type="eppcom:clIDType".
<rdeCsv:fStatuses>
List of statuses with the list element type="eppcom:statusType".
<rdeCsv:fClID>
Identifier of client that sponsors the object with type="eppcom:clIDType".
<rdeCsv:fCrID>
Identifier of client that created the object with type="eppcom:clIDType".
<rdeCsv:fUpID>
Identifier of client that updated the object with type="eppcom:clIDType".
<rdeCsv:fReID>
Identifier of client that requested the transfer with type="eppcom:clIDType".
<rdeCsv:fAcID>
Identifier of client that should take or took action for transfer with type="eppcom:clIDType".
<rdeCsv:fCrDate>
Created date of object with type="datetime".
<rdeCsv:fUpDate>
Updated date of object with type="datetime".
<rdeCsv:fExDate>
Expiration date of object with type="datetime".
<rdeCsv:fReDate>
Date that transfer was requested with type="datetime".
<rdeCsv:fAcDate>
Date that transfer action should be taken or has been taken with type="datetime".
<rdeCsv:fTrDate>
Date of last transfer with type="datetime".
<rdeCsv:fTrStatus>
State of the most recent transfer request with type="eppcom:trStatusType".
<rdeCsv:fTokenType>
General token field with type="token".
<rdeCsv:fLanguage>
General language field with type="language".
<rdeCsv:fPositiveIntegerType>
General positive integer field with type="positiveInteger".
<rdeCsv:fPwAuthInfo>
Password authorization info value with type="normalizedString".
<rdeCsv:fCustom>
Custom field with name attribute that defines the custom field name" with type="token".

4. Protocol Description

The following is a format for Data Escrow deposits for the standard set of objects for Domain Name Registration Data (DNRD). Format elements are reused from the EPP [RFC5730] and related RFCs.

4.1. Domain Name Object

The domain name object is based on the EPP domain name mapping in [RFC5731]. The elements used for the Domain Name Object is defined in this section. The <csvDomain:contents> child element of the <rde:contents> element is used to hold the domain name objects for the deposit. The <rdeCsv:csv> and the <rdeCsv:csvDelete> elements, defined in the "<rdeCsv:csv> and <rdeCsv:csvDelete> elements [rdeCsv-csv-csvDelete]" section, are used with the following supported "name" attribute values:

...
<csvDomain:contents>
  ...
  <rdeCsv:csv name="domain">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <rdeCsv:fRoid/>
      <csvDomain:fIdn/>
      <rdeCsv:fLanguage/>
      <csvDomain:fVariant/>
      <csvDomain:fOriginalName/>
      <csvDomain:fReserved/>
      <rdeCsv:fStatuses/>
      <csvDomain:fRgpStatuses/>
      <rdeCsv:fRegistrant/>
      <rdeCsv:fAdminContacts/>
      <rdeCsv:fTechContacts/>
      <rdeCsv:fBillingContacts/>
      <csvDomain:fNsObjs/>
      <rdeCsv:fClID/>
      <rdeCsv:fCrID/>
      <rdeCsv:fCrDate/>
      <rdeCsv:fUpID/>
      <rdeCsv:fUpDate/>
      <rdeCsv:fExDate/>
      <rdeCsv:fPwAuthInfo/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        domain-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvDomain:contents>
...
                        
domain1.test,Ddomain2-TEST,0,,0,0,,0,"ok",,registrantid,
"adminid","techid","billingid","ns1.example.com,ns1.example.net",
clientX,clientY,2009-04-03T22:00:00.0Z,clientX,
2009-12-03T09:05:00.0Z,2015-04-03T22:00:00.0Z,2fooBAR
domain2.test,Ddomain1-TEST,0,,0,0,,0,"pendingDelete","pendingDelete",
registrantid,"adminid","techid","billingid",
"ns1.example.com,ns1.example.net",clientX,clientY,
1999-04-03T22:00:00.0Z,clientX,2009-12-03T09:05:00.0Z,
2015-04-03T22:00:00.0Z,2fooBAR
xn-abc123.test,Dxn-abc123-TEST,1,LANG1,0,1,,0,"ok",,
registrantid,"adminid","techid","billingid",
"ns1.example.com,ns1.example.net",clientX,clientY,
2009-04-03T22:00:00.0Z,clientX,2009-12-03T09:05:00.0Z,
2015-04-03T22:00:00.0Z,2fooBAR
xn-abc321.test,Dxn-abc321-TEST,1,LANG1,1,
0,xn-abc123.test,0,"ok",,registrantid,"adminid",
"techid","billingid","ns1.example.com,ns1.example.net",
clientX,clientY,2009-04-03T22:00:00.0Z,clientX,
2009-12-03T09:05:00.0Z,2015-04-03T22:00:00.0Z,2fooBAR
                        
...
<rde:deletes>
...
 <rdeCsv:csvDelete name="domain">
  <rdeCsv:fields>
    <rdeCsv:fName/>
  </rdeCsv:fields>
  <rdeCsv:files>
    <rdeCsv:file 
     cksum="2670296305 91797970">
     domain-delete-YYYYMMDD.csv
    </rdeCsv:file> 
  </rdeCsv:files>
 </rdeCsv:csvDelete>
...
</rde:deletes>
...
                        
domain1.test
domain2.test
domainN.test
                        
<csvDomain:contents>
...
  <rdeCsv:csv name="dnssec">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <csvDomain:fMaxSigLife/>
      <csvDomain:fKeyTag/>
      <csvDomain:fDsAlg/>
      <csvDomain:fDigestType/>
      <csvDomain:fDigest/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
       cksum="2670296305 91797970">
       dnssec-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
...
</csvDomain:contents>
...
                        
domain1.test,604800,12345,3,1,49FD46E6C4B45C55D4AC
domain1.test,604800,12346,3,1,38EC35D5B3A34B44C39B
                        
<csvDomain:contents>
...
  <rdeCsv:csv name="dnssec">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <csvDomain:fMaxSigLife/>
      <csvDomain:fFlags/>
      <csvDomain:fProtocol/>
      <csvDomain:fKeyAlg/>
      <csvDomain:fPubKey/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
       cksum="2670296305 91797970">
       dnssec-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
...
</csvDomain:contents>
...
                        
domain1.test,604800,257,3,1,AQPJ////4Q==
domain1.test,604800,257,3,1,AQPJ////4QQQ
                        
...
<rde:deletes>
...
  <rdeCsv:csvDelete name="dnssec">
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <csvDomain:fKeyTag/>
      <csvDomain:fDsAlg/>
      <csvDomain:fDigestType/>
      <csvDomain:fDigest/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
       cksum="2670296305 91797970">
       dnssec-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
...
</rde:deletes>
...
                        
domain1.test,604800,12345,3,1,49FD46E6C4B45C55D4AC
domain1.test,604800,12346,3,1,38EC35D5B3A34B44C39B
                        
...
<rde:deletes>
...
  <rdeCsv:csvDelete name="dnssec">
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <csvDomain:fFlags/>
      <csvDomain:fProtocol/>
      <csvDomain:fKeyAlg/>
      <csvDomain:fPubKey/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
       cksum="2670296305 91797970">
       dnssec-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
...
</rde:deletes>
...
                        
domain1.test,257,3,1,AQPJ////4Q==
domain1.test,257,3,1,AQPJ////4QQQ
                        
...
<csvDomain:contents>
...
  <rdeCsv:csv name="domainTransfer">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <rdeCsv:fTrStatus/>
      <rdeCsv:fReID/>
      <rdeCsv:fReDate/>
      <rdeCsv:fAcID/>
      <rdeCsv:fAcDate/>
      <rdeCsv:fExDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
       cksum="2670296305 91797970">
       domainTransfer-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
...
</csvDomain:contents>
...
                        
domain1.test,pending,clientW,2011-03-08T19:38:00.0Z,
clientX,2011-03-13T23:59:59.0Z,2016-04-03T22:00:00.0Z
domain2.test,clientApproved,clientW,2012-03-08T19:38:00.0Z,
clientX,2012-03-09T23:59:59.0Z,2016-05-04T23:00:00.0Z
                        
...
<rde:deletes>
...
  <rdeCsv:csvDelete name="domainTransfer">
    <rdeCsv:fields>
      <rdeCsv:fName/>
      <rdeCsv:fReDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
       cksum="2670296305 91797970">
       domainTransfer-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
...
</rde:deletes>
...
                        
domain1.test,2011-03-08T19:38:00.0Z
domain2.test,2012-03-08T19:38:00.0Z
                        

"domain"
Defines the fields and CSV file references used for the domain name object records. The following field elements were added for use in the "domain" <rdeCsv:csv> <rdeCsv:fields> element:
<csvDomain:fIdn>
Boolean flag indicating if the domain name object is an IDN domain name object with type="boolean".
<csvDomain:fVariant>
Boolean flag indicating if the domain name object is an IDN variant domain name object with type="boolean".
<csvDomain:fOriginalName>
Fully qualified name of the original IDN domain name object related to the variant domain name object with type="eppcom:labelType".
<csvDomain:fReserved>
Boolean flag indicating if the domain name object is a reserved domain with type="boolean".
<csvDomain:fRgpStatuses>
List of Registry Grace Period (RGP) status descriptors with the list elements type="rgp:statusType" as defined in [RFC3915].
<csvDomain:fNsObjs>
List of fully qualified names of the delegated host objects associated with the domain name object with the list elements type="eppcom:labelType".
The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "domain" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "domain" <rdeCsv:csv> element:
Example of the corresponding domain-YYYYMMDD.csv file. The file contains four records (active ASCII domain, pendingDelete domain, original IDN with LANG1 language rules, and variant IDN with LANG1 language rules).
Example of a "domain" <rdeCsv:csvDelete> element:
Example of the corresponding domain-delete-YYYYMMDD.csv file. The file contains three domain name records.
"dnssec"
Defines the fields and CSV file referenes used for the domain name object DNSSEC records (DS or Key Data). The following field elements were added for use in the "dnssec" <rdeCsv:csv> and <rdeCsv:csvDelete> rdeCsv:fields> elements:
<csvDomain:fMaxSigLife>
Indicates a child's preference for the number of seconds after signature generation when the parent's signature on the DS information provided by the child will expire with type="secDNS:maxSigLifeType" defined in [RFC5910].
<csvDomain:fKeyTag>
Contains the DS key tag value per [RFC5910] with type="unsignedShort".
<csvDomain:fDsAlg>
Contains the DS algorithm value per [RFC5910] with type="unsignedByte".
<csvDomain:fDigestType>
Contains the DS digest type value per [RFC5910] with type="unsignedByte".
<csvDomain:fDigest>
Contains the DS digest value per [RFC5910] with type="hexBinary".
<csvDomain:fFlags>
Contains the flags field value per [RFC5910] with type="unsignedShort".
<csvDomain:fProtocol>
Contains the Key protocol value per [RFC5910] with type="unsignedByte".
<csvDomain:fKeyAlg>
Contains the Key algorithm value per [RFC5910] with type="unsignedByte".
<csvDomain:fPubKey>
Contains the public key value per [RFC5910] with type="secDNS:keyType".
The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "dnssec" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "dnssec" <rdeCsv:csv> element with the DS Data Interface of [RFC5910]:
Example of the corresponding dnssec-YYYYMMDD.csv file. The file contains two DS records for domain1.test.
Example of a "dnssec" <rdeCsv:csv> element with the Key Data Interface of [RFC5910]:
Example of the corresponding dnssec-YYYYMMDD.csv file. The file contains two key records for domain1.test.
Example of a "dnssec" <rdeCsv:csvDelete> element with the DS Data Interface of [RFC5910]:
Example of the corresponding dnssec-delete-YYYYMMDD.csv file. The file contains two DS records for domain1.test.
Example of a "dnssec" <rdeCsv:csvDelete> element with the Key Data Interface of [RFC5910]:
Example of the corresponding dnssec-delete-YYYYMMDD.csv file. The file contains two key records for domain1.test.
"domainTransfer"
Defines the fields and CSV file referenes used for the domain name object pending and completed transfer records. No additional field elements were added for use in the "domainTransfer" <rdeCsv:csv> <rdeCsv:fields> element. The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "domainTransfer" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "domainTransfer" <rdeCsv:csv> element:
Example of the corresponding domainTransfer-YYYYMMDD.csv file. The file contains two domain transfer records, with one in pending status and the second in clientApproved status.
Example of a "domainTransfer" <rdeCsv:csvDelete> element:
Example of the corresponding domainTransfer-delete-YYYYMMDD.csv file. The file contains two domain transfer records.

4.2. Host Object

The host object is based on the EPP host mapping in [RFC5732]. The elements used for Host Object is defined in this section. The <csvHost:contents> child element of the <rde:contents> element is used to hold the host objects for the deposit. The <rdeCsv:csv> and the <rdeCsv:csvDelete> elements, defined in the "<rdeCsv:csv> and <rdeCsv:csvDelete> elements [rdeCsv-csv-csvDelete]" section, are used with the following supported "name" attribute values:

...
<csvHost:contents>
  ...
  <rdeCsv:csv name="host">
   <rdeCsv:sep>,</rdeCsv:sep>
   <rdeCsv:fields>
     <rdeCsv:fName/>
     <rdeCsv:fRoid/>
     <rdeCsv:fParentDomain/>
     <rdeCsv:fStatuses/>
     <csvHost:fV4Addrs/>
     <csvHost:fV6Addrs/>
     <rdeCsv:fClID/>
     <rdeCsv:fCrID/>
     <rdeCsv:fCrDate/>
     <rdeCsv:fUpID/>
     <rdeCsv:fUpDate/>
     <rdeCsv:fTrDate/>
   </rdeCsv:fields>
   <rdeCsv:files>
     <rdeCsv:file 
      cksum="1410255126 216">
      host-YYYYMMDD.csv
     </rdeCsv:file> 
   </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvHost:contents>
...
                        
ns1.example.test,Hns1_example_test-TEST,example.test,
"linked,clientUpdateProhibited","192.0.2.2,192.0.2.29",
"1080:0:0:0:8:800:200C:417A",clientY,clientX,
1999-05-08T12:10:00.0Z,clientX,2009-10-03T09:34:00.0Z,
2007-01-08T09:19:00.0Z
ns1.example.test2,Hns1_example_test2-TEST,,
"linked,clientUpdateProhibited",,,clientY,clientX,
2009-05-08T12:10:00.0Z,clientX,2010-10-03T09:34:00.0Z,
                        
...
<rde:deletes>
...
 <rdeCsv:csvDelete name="host">
  <rdeCsv:fields>
    <rdeCsv:fName/>
  </rdeCsv:fields>
  <rdeCsv:files>
    <rdeCsv:file 
     cksum="2670296305 91797970">
     host-delete-YYYYMMDD.csv
    </rdeCsv:file> 
  </rdeCsv:files>
 </rdeCsv:csvDelete>
...
</rde:deletes>
...
                        
ns1.example.test
ns1.example.test2
                        

"host"
Defines the fields and CSV file references used for the host object records. The following field elements were added for use in the "host" <rdeCsv:csv> <rdeCsv:fields> element:
<csvHost:fParentDomain>
Contains parent domain name for the subordinate host object with type="eppcom:labelType".
<csvHost:fIdn>
Boolean flag indicating if the host object is an IDN host object with type="boolean".
<csvHost:fV4Addrs>
List of IPv4 IP addresses for the host object with the list elements type="host:addrStringType".
<csvHost:fV6Addrs>
List of IPv6 IP addresses for the host object with the list elements type="host:addrStringType".
The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "host" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "host" <rdeCsv:csv> element:
Example of the corresponding host-YYYYMMDD.csv file. The file contains two host records with one being an internal host and the second being an external host.
Example of a "host" <rdeCsv:csvDelete> element:
Example of the host-delete-YYYYMMDD.csv file. The file contains two host records.

4.3. Contact Object

The contact object is based on the EPP contact mapping in [RFC5733]. The elements used for the Contact Object are defined in this sections The <csvContact:contents> child element of the <rde:contents> element to hold the contact objects for the deposit. The <rdeCsv:csv> and the <rdeCsv:csvDelete> elements, defined in the "<rdeCsv:csv> and <rdeCsv:csvDelete> elements [rdeCsv-csv-csvDelete]" section, are used with the following supported "name" attribute values:

...
<csvContact:contents>
  ...
  <rdeCsv:csv name="contact">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
     <csvContact:fId/>
     <rdeCsv:fRoid/>
     <rdeCsv:fStatuses/>
     <csvContact:fVoice/>
     <csvContact:fVoiceExt/>
     <csvContact:fFax/>
     <csvContact:fFaxExt/>
     <csvContact:fEmail/>
     <rdeCsv:fClID/>
     <rdeCsv:fCrID/>
     <rdeCsv:fCrDate/>
     <rdeCsv:fUpID/>
     <rdeCsv:fUpDate/>
     <rdeCsv:fPwAuthInfo/>
    </rdeCsv:fields>
    <rdeCsv:files>
     <rdeCsv:file 
      cksum="1410255126 216">
      contact-YYYYMMDD.csv
     </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvContact:contents>
...
                        
sh8013,Csh8013-TEST,"linked,clientDeleteProhibited",
+1.7035555555,1234,+1.7035555556,,jdoe@example.test,clientY,
clientX,2009-09-13T08:01:00.0Z,clientX,
2009-11-26T09:10:00.0Z,2fooBAR
mycontactid,Cmycontactid-TEST,"ok",+1.7034444444,1234,
+1.7033333333,,jsmith@example.test,clientY,clientX,
2010-09-13T08:01:00.0Z,clientX,2011-11-26T09:10:00.0Z,2fooBAR
                        
...
<rde:deletes>
  ...
  <rdeCsv:csvDelete name="contact">
    <rdeCsv:fields>
      <csvContact:fId/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1410255126 216">
        contact-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
  ...
</rde:deletes>
...
                        
sh8013
mycontactid
                        
...
<csvContact:contents>
  ...
  <rdeCsv:csv name="contactPostal">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvContact:fId/>
      <csvContact:fPostalType/>
      <csvContact:fName/>
      <csvContact:fOrg/>
      <csvContact:fStreet index="0"/>
      <csvContact:fStreet index="1"/>
      <csvContact:fStreet index="2"/>
      <csvContact:fCity/>
      <csvContact:fSp/>
      <csvContact:fPc/>
      <csvContact:fCc/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactPostal-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>     
  ...
</csvContact:contents>
...
                        
sh8013,int,"John Doe","Example Inc.",
"123 Example Dr.","Suite 100",,Reston,VA,20190,US
mycontactid,int,"John Smith","Acme Inc.",
"123 Sample Dr.",,,Reston,VA,20190,US
                        
...
<rde:deletes>
  ...
  <rdeCsv:csvDelete name="contactPostal">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvContact:fId/>
      <csvContact:fPostalType/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactPostal-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>     
  ...
</rde:deletes>
...
                        
sh8013,int
mycontactid,int
                        
...
<rde:deletes>
  ...
  <rdeCsv:csv name="contactTransfer">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvContact:fId/>
      <rdeCsv:fTrStatus/>
      <rdeCsv:fReID/>
      <rdeCsv:fReDate/>
      <rdeCsv:fAcID/>
      <rdeCsv:fAcDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactTransfer-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvContact:contents>
...
                        
sh8013,pending,clientW,2011-03-08T19:38:00.0Z,
clientX,2011-03-13T23:59:59.0Z
mycontactid,clientApproved,clientW,2011-04-08T19:38:00.0Z,
clientX,2011-04-09T20:38:00.0Z
                        
...
<csvContact:contents>
  ...
  <rdeCsv:csvDelete name="contactTransfer">
    <rdeCsv:fields>
      <csvContact:fId/>
      <rdeCsv:fReDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactTransfer-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
  ...
</rde:deletes>
...
                        
sh8013,2011-03-08T19:38:00.0Z
mycontactid,2011-04-08T19:38:00.0Z
                        
...
<csvContact:contents>
  ...
  <rdeCsv:csv name="contactDisclose">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvContact:fId/>
      <csvContact:fDiscloseFlag/>
      <csvContact:fDiscloseNameLoc/>
      <csvContact:fDiscloseNameInt/>
      <csvContact:fDiscloseOrgLoc/>
      <csvContact:fDiscloseOrgInt/>
      <csvContact:fDiscloseAddrLoc/>
      <csvContact:fDiscloseAddrInt/>
      <csvContact:fDiscloseVoice/>
      <csvContact:fDiscloseFax/>
      <csvContact:fDiscloseEmail/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactDisclose-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvContact:contents>
...
                        
sh8013,0,0,0,0,0,0,0,1,1,1
mycontactid,1,1,1,0,0,0,0,0,0,0
                        
...
<csvContact:contents>
  ...
  <rdeCsv:csvDelete name="contactDisclose">
    <rdeCsv:fields>
      <csvContact:fId/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        contactDisclose-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
  ...
</rde:deletes>
...
                        

"contact"
Defines the fields and CSV file references used for the contact object records. The following field elements were added for use in the "contact" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
<csvContact:fId>
Contains the server-unique contact identifier with type="eppcom:clIDType".
<csvContact:fVoice>
Contains the contact's voice telephone number with type="contact:e164StringType".
<csvContact:fVoiceExt>
Contains the contact's voice telephone number extension with type="token".
<csvContact:fFax>
Contains the contact's facsimile telephone number with type="contact:e164StringType".
<csvContact:fFaxExt>
Contains the contact's facsimile telephone number extension with type="token".
<csvContact:fEmail>
Contains the contact's email address with type="eppcom:minTokenType".
The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "contact" <rdeCsv:csv> <rdeCsv:fields> element:
Example of a "contact" <rdeCsv:csv> element:
Example of the contact-YYYYMMDD.csv file. The file contains two contact records.
Example of a "contact" <rdeCsv:csvDelete> element:
Example of the contact-delete-YYYYMMDD.csv file. The file contains two contact records.
"contactPostal"
Defines the fields and CSV file references used for the contact postal info object records. The following field elements were added for use in the "contactPostal" <rdeCsv:csv> <rdeCsv:fields> element:
<csvContact:fPostalType>
Contains the form of the postal-address information with type="contact:postalLineType". This field specifies the form ("int" or "loc"), as defined in Section 3.4, of the <csvContact:fName>, <csvContact:fOrg>, <csvContact:fStreet>, <csvContact:fCity>, <csvContact:fSp>, <csvContact:fPc>, <csvContact:fCc> fields.
<csvContact:fName>
Contains the contact's name of the individual or role represented by the contact with type="contact:postalLineType". An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
<csvContact:fOrg>
Contains the name of the organization with which the contact is affiliated with type="contact:optPostalLineType". An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
<csvContact:fStreet>
Contains the contact's contact's street address line with type="contact:fPostalLineType". An index attribute is required to indicate which street address line the field represents with index "0" for the first line and index "2" for the last line. An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
<csvContact:fCity>
Contains the contact's city with type="contact:postalLineType". An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
<csvContact:fSp>
Contains the contact's state or province with type="contact:optPostalLineType". An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
<csvContact:fPc>
Contains the contact's postal code with type="contact:pcType". An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
<csvContact:fCc>
Contains the contact's country code with type="contact:ccType". An OPTIONAL "isLoc" attribute to used to indicate the localized or internationalized form as defined in section Section 3.4.
The following "csvContact" fields, defined for the "contact" <rdeCsv:csv> <rdeCsv:fields> element, is used in the "contactPostal" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "contactPostal" <rdeCsv:csv> element:
Example of the contactPostal-YYYYMMDD.csv file. The file contains two contact postal records.
Example of a "contactPostal" <rdeCsv:csvDelete> element:
Example of the contactPostal-delete-YYYYMMDD.csv file. The file contains two contact postal records.
"contactTransfer"
Defines the fields and CSV file referenes used for the contact object pending and completed transfer records. No additional field elements were added for use in the "contactTransfer" <rdeCsv:csv> <rdeCsv:fields> element. The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "contactTransfer" <rdeCsv:csv> <rdeCsv:fields> element:
The following "csvContact" fields, defined for the "contact" <rdeCsv:csv> <rdeCsv:fields> element, is used in the "contactTransfer" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "contactTransfer" <rdeCsv:csv> element:
Example of the contactTransfer-YYYYMMDD.csv file. The file contains two contact transfer records with one in pending status and the second in clientApproved status.
Example of a "contactTransfer" <rdeCsv:csvDelete> element:
Example of the contactTransfer-delete-YYYYMMDD.csv file. The file contains two contact transfer records.
"contactDisclose"
Defines the fields and CSV file references used for the contact disclose object records. The following field elements were added for use in the "contactDisclose" <rdeCsv:csv> <rdeCsv:fields> element:
<csvContact:fDiscloseFlag>
Contains flag with a value of "true" or "1" (one) notes the preference to allow disclosure of the specified elements as an exception to the stated data-collection policy. A value of "false" or "0" (zero) notes a client preference to not allow disclosure of the specified elements as an exception to the stated data-collection policy with type="boolean". The additional fields define specific exceptional disclosure preferences based on the <csvContact:fDiscloseFlag> field.
<csvContact:fDiscloseNameLoc>
Exceptional disclosure preference flag for the localized form of the contact name with type="boolean".
<csvContact:fDiscloseNameInt>
Exceptional disclosure preference flag for the internationalized form of the contact name with type="boolean".
<csvContact:fDiscloseOrgLoc>
Exceptional disclosure preference flag for the localized form of the contact organization with type="boolean". with type="boolean".
<csvContact:fDiscloseOrgInt>
Exceptional disclosure preference flag for the internationalized form of the contact organization with type="boolean". with type="boolean".
<csvContact:fDiscloseAddrLoc>
Exceptional disclosure preference flag for the localized form of the contact address with type="boolean".
<csvContact:fDiscloseAddrInt>
Exceptional disclosure preference flag for the internationalized form of the contact address with type="boolean".
<csvContact:fDiscloseVoice>
Exceptional disclosure preference flag of the contact voice telephone number with type="boolean".
<csvContact:fDiscloseFax>
Exceptional disclosure preference flag of the contact facsimile telephone number with type="boolean".
<csvContact:fDiscloseEmail>
Exceptional disclosure preference flag of the contact email address with type="boolean".
The following "csvContact" fields, defined for the "contact" <rdeCsv:csv> <rdeCsv:fields> element, is used in the "contactDisclose" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "contactDisclose" <rdeCsv:csv> element:
Example of the contactDisclose-YYYYMMDD.csv file. The file contains two disclosure records. The first contact disables disclosure of voice, fax, and email. The second contact enables disclosure of the localized and internationalized form of the name.
Example of a "contactDisclose" <rdeCsv:csvDelete> element:

Example of the contactDisclose-delete-YYYYMMDD.csv file. The file contains two disclosure records.

sh8013
mycontactid
                        

4.4. Registrar Object

The registrar object represents the sponsoring client for other objects. The registrar object MAY be related to registrar contacts using Contact Object, as defined in Section 4.3, references or MAY contain registrar contacts. The elements used for the Registrar Object references are defined in this section. The <csvRegistrar:contents> child element of the <rde:contents> element holds the registrar objects for the deposit. The <rdeCsv:csv> and the <rdeCsv:csvDelete> elements, defined in the "<rdeCsv:csv> and <rdeCsv:csvDelete> elements [rdeCsv-csv-csvDelete]" section, are used with the following supported "name" attribute values:

...
<csvRegistrar:contents>
  ...
  <rdeCsv:csv name="registrar">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvRegistrar:fId/>
      <rdeCsv:fRoid/>
      <csvRegistrar:fName isLoc="false"/>
      <csvRegistrar:fGurid/>
      <csvRegistrar:fStatus/>
      <csvContact:fStreet isLoc="false" index="0"/>
      <csvContact:fStreet isLoc="false" index="1"/>
      <csvContact:fStreet isLoc="false" index="2"/>
      <csvContact:fCity isLoc="false" />
      <csvContact:fSp isLoc="false" />
      <csvContact:fPc isLoc="false" />
      <csvContact:fCc isLoc="false" />
      <csvContact:fVoice/>
      <csvContact:fVoiceExt/>
      <csvContact:fFax/>
      <csvContact:fFaxExt/>
      <csvContact:fEmail/>
      <csvRegistrar:fUrl/>
      <csvRegistrar:fWhoisUrl/>
      <rdeCsv:fCrID/>
      <rdeCsv:fCrDate/>
      <rdeCsv:fUpID/>
      <rdeCsv:fUpDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1924040625 268">
        registrar-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvRegistrar:contents>
...
                        
EXAMPLE,REGISTRAR123-TEST,"Example Inc.",1234,ok,"123 Example Dr.",
"Suite 100",,Dulles,VA,20166-6503,US,+1.7035555555,1234,
+1.7035555556,,jdoe@example.test,http://www.example.test,
http://whois.example.test,clientX,2005-04-23T11:49:00.0Z,
clientY,2009-02-17T17:51:00.0Z
                        
...
<csvRegistrar:contents>
  ...
  <rdeCsv:csv name="registrar">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvRegistrar:fId/>
      <rdeCsv:fRoid/>
      <csvRegistrar:fName isLoc="false"/>
      <csvRegistrar:fGurid/>
      <csvRegistrar:fStatus/>
      <csvContact:fStreet isLoc="false" index="0"/>
      <csvContact:fStreet isLoc="false" index="1"/>
      <csvContact:fStreet isLoc="false" index="2"/>
      <csvContact:fCity isLoc="false" />
      <csvContact:fSp isLoc="false" />
      <csvContact:fPc isLoc="false" />
      <csvContact:fCc isLoc="false" />
      <csvContact:fVoice/>
      <csvContact:fVoiceExt/>
      <csvContact:fFax/>
      <csvContact:fFaxExt/>
      <csvContact:fEmail/>
      <csvRegistrar:fUrl/>
      <csvRegistrar:fWhoisUrl/>
      <rdeCsv:fAdminContacts>
      <rdeCsv:fTechContacts>
      <rdeCsv:fBillingContacts>
      <rdeCsv:fCrID/>
      <rdeCsv:fCrDate/>
      <rdeCsv:fUpID/>
      <rdeCsv:fUpDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1924040625 268">
        registrar-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvRegistrar:contents>
...
                        
EXAMPLE,REGISTRAR123-TEST,"Example Inc.",1234,ok,"123 Example Dr.",
"Suite 100",,Dulles,VA,20166-6503,US,+1.7035555555,1234,
+1.7035555556,,jdoe@example.test,http://www.example.test,
http://whois.example.test,"sh8013,mycontactid","sh8013,mycontactid",
"sh8013,mycontactid",clientX,2005-04-23T11:49:00.0Z,
clientY,2009-02-17T17:51:00.0Z
                        
...
<rde:deletes>
  ...
  <rdeCsv:csvDelete name="registrar">
    <rdeCsv:fields>
      <csvRegistrar:fId/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1924040625 268">
        registrar-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
  ...
</rde:deletes>
...
                        
EXAMPLE
EXAMPLE2
                        
...
<csvRegistrar:contents>
  ...
  <rdeCsv:csv name="registrarContact">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
     <csvRegistrar:fId/>
     <csvContact:fId/>
     <rdeCsv:fRoid/>
     <csvContact:fName isLoc="false"/>
     <csvContact:fVoice/>
     <csvContact:fVoiceExt/>
     <csvContact:fFax/>
     <csvContact:fFaxExt/>
     <csvContact:fEmail/>
     <rdeCsv:fCrID/>
     <rdeCsv:fCrDate/>
     <rdeCsv:fUpID/>
     <rdeCsv:fUpDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
     <rdeCsv:file 
      cksum="2186160075 371">
      registrarcontact-YYYYMMDD.csv
     </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvRegistrar:contents>
...
                        
EXAMPLE,rr0013,REGISTRARCONTACT12345-VRSN,"John Doe",
"admin",+1.7035555555,1234,+1.7035555556,,johndoe@example.test,
clientY,clientX,2009-09-13T08:01:00.0Z,
clientX,2009-11-26T09:10:00.0Z
EXAMPLE,rr0012,REGISTRARCONTACT12346-VRSN,"Jane Doe",
"tech",+1.7035555555,1235,+1.7035555556,,janedoe@example.test,
clientY,clientX,2009-09-13T08:01:00.0Z,
clientX,2009-11-26T09:10:00.0Z
                        
...
<csvRegistrar:contents>
  ...
  <rdeCsv:csv name="registrarContact">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
     <csvRegistrar:fId/>
     <csvContact:fId/>
     <rdeCsv:fRoid/>
     <csvContact:fName isLoc="false"/>
     <csvRegistrar:fContactTypes/>
     <!-- "int" type of postal information -->
     <csvContact:fPostalType/>
     <csvContact:fStreet index="0"/>
     <csvContact:fStreet index="1"/>
     <csvContact:fStreet index="2"/>
     <csvContact:fCity/>
     <csvContact:fSp/>
     <csvContact:fPc/>
     <csvContact:fCc/>
     <!-- "loc" type of postal information -->
     <csvContact:fPostalType/>
     <csvContact:fStreet index="0"/>
     <csvContact:fStreet index="1"/>
     <csvContact:fStreet index="2"/>
     <csvContact:fCity/>
     <csvContact:fSp/>
     <csvContact:fPc/>
     <csvContact:fCc/>
     <csvContact:fVoice/>
     <csvContact:fVoiceExt/>
     <csvContact:fFax/>
     <csvContact:fFaxExt/>
     <csvContact:fEmail/>
     <rdeCsv:fCrID/>
     <rdeCsv:fCrDate/>
     <rdeCsv:fUpID/>
     <rdeCsv:fUpDate/>
    </rdeCsv:fields>
    <rdeCsv:files>
     <rdeCsv:file 
      cksum="2186160075 371">
      registrarcontact-YYYYMMDD.csv
     </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvRegistrar:contents>
...
                        
EXAMPLE,rr0013,REGISTRARCONTACT12345-VRSN,"John Doe","admin",
int,"123 Example Dr.","Suite 100",,Reston,VA,20190,US,
loc,int,"123 Example Dr.","Suite 100",,Reston,VA,20190,US,
+1.7035555555,1234,+1.7035555556,,johndoe@example.test,
clientY,clientX,2009-09-13T08:01:00.0Z,
clientX,2009-11-26T09:10:00.0Z
                        
...
<rde:deletes>
  ...
  <rdeCsv:csvDelete name="registrarContact">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <csvRegistrar:fId/>
      <csvContact:fId/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="2670296305 91797970">
        registrarContact-delete-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>     
  ...
</rde:deletes>
...
                        
EXAMPLE,rr0013
EXAMPLE,rr0012
                        

"registrar"
Defines the fields and CSV file references used for the registrar object records. The following field elements were added for use in the "registrar" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
<csvRegistrar:fId>
Contains the server-unique registrar identifier with type="eppcom:clIDType".
<csvRegistrar:fName>
Contains the name of the registrar with type="normalizedString".
<csvRegistrar:fGurid>
Contains the ID assigned by ICANN with type="positiveInteger".
<csvRegistrar:fStatus>
Contains the status of the registrar with type="csvRegistrar:statusValueType".
<csvRegistrar:fStatusName>
Contains the name of the registrar sub-status or the full name of the status when the fStatus value is "custom" with type="token".
<csvRegistrar:fUrl>
Contains the URL of the registrar with type="anyURI".
<csvRegistrar:fWhoisUrl>
Contains the Whois URL of the registrar with type="anyURI".
The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "registrar" <rdeCsv:csv> <rdeCsv:fields> element:
The following "csvContact" fields, defined in section Section 4.3, MAY be used in the "registrar" <rdeCsv:csv> <rdeCsv:fields> element:
Example of a "registrar" <rdeCsv:csv> element with no registrar contact object references:
Example of the registrar-YYYYMMDD.csv file. The file contains one registrar record.
Example of a "registrar" <rdeCsv:csv> element with registrant contact object references:
Example of the registrar-YYYYMMDD.csv file. The file contains one registrar record with the registrar contact object references.
Example of a "registrar" <rdeCsv:csvDelete> element:
Example of the registrar-delete-YYYYMMDD.csv file. The file contains two registrar records.
"registrarContact"
Defines the fields and CSV file references used for the registrar contact attribute records. The registrar contact attribute records SHALL NOT be referenced by more than one registrar or referenced by any other object. The following field elements were added for use in the "registrarContact" <rdeCsv:csv> <rdeCsv:fields> element:
<csvRegistrar:fContactTypes>
List of registrar contact types for the registrar contact attribute record with list elements type="csvRegistrar:contactTypeType", which is an enumerated list of values "admin", "tech", "billing", and "custom".
The following "csvRegistrar" fields, defined for the "registrar" <rdeCsv:csv> <rdeCsv:fields> element, is used in the "registrarContact" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
The following "csvContact" fields, defined for the "contact" <rdeCsv:csv> <rdeCsv:fields> element, MAY be used in the "registrarContact" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
The following "rdeCsv" fields, defined in section CSV common field elements [csvCommonFieldElements], MAY be used in the "registrarContact" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "registrarContact" <rdeCsv:csv> element without any postal information information:
Example of the registrarcontact-YYYYMMDD.csv file. The file contains two registrar contact records.
Example of a "registrarContact" <rdeCsv:csv> element with support for both "int" and "loc" postal information:
Example of the registrarcontact-YYYYMMDD.csv file. The file contains one registrar contact record.
Example of a "registrarContact" <rdeCsv:csvDelete> element:
Example of the registrarContact-delete-YYYYMMDD.csv file. The file contains two registrar contact record.

4.5. IDN Language Object

The IDN domain names, defined in Section 4.1, MAY have references to the IDN language using the <rdeCsv:fLanguage> field element. The IDN language object defines the mapping of a language to a language table URL. The language table URL defines the character code points that can be used for the language. The elements used for the IDN language object is defined in this section. The <csvIDN:contents> child element of the <rde:contents> element is used to hold the IDN language objects for the deposit. The <rdeCsv:csv> and the <rdeCsv:csvDelete> elements, defined in the "<rdeCsv:csv> and <rdeCsv:csvDelete> elements [rdeCsv-csv-csvDelete]" section, are used with the following supported "name" attribute values:

...
<csvIDN:contents>
  ...
  <rdeCsv:csv name="idnLanguage">
    <rdeCsv:sep>,</rdeCsv:sep>
    <rdeCsv:fields>
      <rdeCsv:fLanguage/>
      <rdeCsv:fUrl/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1924040625 268">
        idnLanguage-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csv>
  ...
</csvIDN:contents>
...
                        
LANG1,http://www.iana.org/domains/idn-tables/tables/test_tab1_1.1.txt
LANG2,http://www.iana.org/domains/idn-tables/tables/test_tab2_1.1.txt
                        
...
<rde:deletes>
...
 <rdeCsv:csvDelete name="idnLanguage">
    <rdeCsv:fields>
      <rdeCsv:fLanguage/>
    </rdeCsv:fields>
    <rdeCsv:files>
      <rdeCsv:file 
        cksum="1924040625 268">
        idnLanguage-YYYYMMDD.csv
      </rdeCsv:file> 
    </rdeCsv:files>
  </rdeCsv:csvDelete>
...
</rde:deletes>
...
                        
LANG1
LANG2
                        

"idnLanguage"
Defines the fields and CSV file references used for the IDN language object records.
The following "rdeCsv" fields, defined in Section 3.6.2, MAY be used in the "idnLanguage" <rdeCsv:csv> and <rdeCsv:csvDelete> <rdeCsv:fields> elements:
Example of a "idnLanguage" <rdeCsv:csv> element:
Example of the corresponding idnLanguage-YYYYMMDD.csv file. The file contains two IDN language records.
Example of a "idnLanguage" <rdeCsv:csvDelete> element:
Example of the idnLanguage-delete-YYYYMMDD.csv file. The file contains two IDN language records.

5. Formal Syntax

Six schemas are presented here. The first schema is the base CSV schema. The second schema defines domain name CSV object for RDE. The third schema defines host CSV object for RDE. The fourth schema defines contact CSV object for RDE. The fifth schema defines registrar CSV object for RDE. The sixth schema defines the IDN language CSV object.

5.1. RDE CSV Schema

Copyright (c) 2012 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:rdeCsv-1.0"
       xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-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 Comma-Seperated Values (CSV) 
   </documentation>
  </annotation>

  <!-- csv content element -->  
  <element name="csv" type="rdeCsv:csvType"
  substitutionGroup="rde:content"/>
  
  
  <!-- Definition of CSV file -->  
 <complexType name="csvType">
  <complexContent>
  <extension base="rde:contentType">
   <sequence>
    <element name="sep" type="token" default="," 
      minOccurs="0"/>
    <element name="fields" type="rdeCsv:fieldsType"/>
    <element name="files" type="rdeCsv:filesType"/>
   </sequence>
   <attribute name="name" type="token" use="required"/>
  </extension>
  </complexContent>
 </complexType>


  <element name="csvDelete" type="rdeCsv:csvDeleteType"
  substitutionGroup="rde:delete"/>
  
 <complexType name="csvDeleteType">
  <complexContent>
  <extension base="rde:deleteType">
   <sequence>
    <element name="sep" type="token" default="," 
      minOccurs="0"/>
    <element name="fields" type="rdeCsv:fieldsType"/>
    <element name="files" type="rdeCsv:filesType"/>
   </sequence>
   <attribute name="name" type="token" use="required"/>
  </extension>
  </complexContent>
 </complexType>

 
 <!-- Abstract field type -->
 <element name="field" type="rdeCsv:fieldType" 
  abstract="true"/>
 <complexType name="fieldType">
  <sequence/>
 </complexType>
 
 <!-- Concrete field types -->
 
 <!-- Name field (e.g. domain name) -->
 <element name="fName" type="rdeCsv:fNameType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- UTF-8 Name field (e.g. domain name) -->
 <element name="fUName" type="rdeCsv:fNameType" 
   substitutionGroup="rdeCsv:field"/>   
 <complexType name="fNameType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:labelType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Registry Object IDentifier (roid) field -->
 <element name="fRoid" type="rdeCsv:fRoidType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fRoidType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:roidType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Registrant field -->
 <element name="fRegistrant" type="rdeCsv:fRegistrantType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fRegistrantType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:clIDType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Contact fields (Admin, Tech, Billing) -->
 <element name="fAdminContacts" type="rdeCsv:fContactsType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fTechContacts" type="rdeCsv:fContactsType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fBillingContacts" type="rdeCsv:fContactsType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fContactsType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:clIDType"/>
      <attribute name="list" type="boolean" 
        default="true"/>
      <attribute name="sep" type="token" 
        default=","/>
    </extension>
  </complexContent>
 </complexType>



 <!-- Statuses as a list of delimited statuses 
      with ',' as delimeter -->
 <element name="fStatuses" type="rdeCsv:fStatusesType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fStatusesType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:statusType"/>
      <attribute name="list" type="boolean" 
        default="true"/>
      <attribute name="sep" type="token" 
        default=","/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- clID fields (fClID, fCrID, fUpID) -->
 <!-- Identifier of client that sponsors the object -->   
 <element name="fClID" type="rdeCsv:fClIDType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Identifier of client that created the object -->  
 <element name="fCrID" type="rdeCsv:fClIDType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Identifier of client that updated the object -->  
 <element name="fUpID" type="rdeCsv:fClIDType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Identifier of client that requested the transfer -->
 <element name="fReID" type="rdeCsv:fClIDType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Identifier of client that should take or took action -->
 <element name="fAcID" type="rdeCsv:fClIDType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fClIDType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:clIDType"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- datetime fields (fCrDate, fUpDate, fExDate) -->
 <element name="fCrDate" type="rdeCsv:fDatetimeType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fUpDate" type="rdeCsv:fDatetimeType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fExDate" type="rdeCsv:fDatetimeType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Date and time that transfer was requested -->
 <element name="fReDate" type="rdeCsv:fDatetimeType" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Date and time of a required or completed response -->
 <element name="fAcDate" type="rdeCsv:fDatetimeType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fTrDate" type="rdeCsv:fDatetimeType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fDatetimeType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="datetime"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- boolean type -->
 <complexType name="fBooleanType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="boolean"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- unsignedbyte type -->
 <complexType name="fUnsignedByteType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="unsignedbyte"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- unsignedShort type -->
 <complexType name="fUnsignedShortType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="unsignedShort"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- hexBinary type -->
 <complexType name="fHexBinaryType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="hexBinary"/>
    </extension>
  </complexContent>
 </complexType>


 <!-- language type -->
 <element name="fLanguage" type="rdeCsv:fLanguageType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fLanguageType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="language"/>
    </extension>
  </complexContent>
 </complexType>

 
 <!-- State of the most recent transfer request -->
 <element name="fTrStatus" type="rdeCsv:fTrStatusType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fTrStatusType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="eppcom\:trStatusType"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- General token type -->
 <complexType name="fTokenType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="token"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- positive integer type -->
 <complexType name="fPositiveIntegerType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="positiveInteger"/>
    </extension>
  </complexContent>
 </complexType>

 
 <!-- Password authorization info -->
 <element name="fPwAuthInfo" type="rdeCsv:fPwAuthInfoType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fPwAuthInfoType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="normalizedString"/>
    </extension>
  </complexContent>
 </complexType>
 
 
 <!-- Custom / extension field type -->
 <element name="fCustom" type="rdeCsv:fCustomType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fCustomType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="name" type="token"/>
      <attribute name="type" type="token"  
        default="token"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Ordered list of field definitions for the csv --> 
 <complexType name="fieldsType">
  <sequence maxOccurs="unbounded">
    <element ref="rdeCsv:field"/>
  </sequence>
 </complexType>
 
 <!-- List of files -->
 <complexType name="filesType">
  <sequence>
    <element name="file" type="rdeCsv:fileType" 
      maxOccurs="unbounded"/>
  </sequence>
 </complexType>
 
 <!-- File definition -->
 <complexType name="fileType">
  <simpleContent>
    <extension base="token">
      <attribute name="compression" type="token"/>
      <attribute name="encoding" type="token" 
        default="UTF-8"/>
      <attribute name="cksum" type="token"/>
    </extension>
  </simpleContent>
 </complexType>
 
 <!-- URL fields -->
 <element name="fUrl" type="rdeCsv:anyURIType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="anyURIType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="anyURI"/>
    </extension>
  </complexContent>
 </complexType>

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

5.2. Domain Object

Copyright (c) 2012 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:csvDomain-1.0"
       xmlns:csvDomain="urn:ietf:params:xml:ns:csvDomain-1.0"
       xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
       xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-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"/>
  <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0"
       schemaLocation="rdeCsv-1.0.xsd"/>

  <annotation>
   <documentation>
    Domain Name Comma-Separated Values (CSV) Object 
   </documentation>
  </annotation>

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

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

 
 <!-- RGP statuses field -->
 <element name="fRgpStatuses" 
 type="csvDomain:fRgpStatusesType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fRgpStatusesType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="rgp\:statusType"/>
      <attribute name="list" type="boolean" 
      default="true"/>
      <attribute name="sep" type="token" 
      default=","/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- Name server object list field -->
 <element name="fNsObjs" type="csvDomain:fNsObjsType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fNsObjsType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="eppcom\:labelType"/>
      <attribute name="list" type="boolean" 
      default="true"/>
      <attribute name="sep" type="token" 
      default=","/>
    </extension>
  </complexContent>
 </complexType>


 <!-- DNSSEC field types -->
 
 <!-- Maximum signature lifetime field -->
 <element name="fMaxSigLife" type="csvDomain:fMaxSigLifeType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fMaxSigLifeType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="secDNS\:maxSigLifeType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Key tag field -->
 <element name="fKeyTag" type="rdeCsv:fUnsignedShortType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- DS Algorithm field -->
 <element name="fDsAlg" type="rdeCsv:fUnsignedByteType" 
  substitutionGroup="rdeCsv:field"/>
 
 <!-- Digest type field -->
 <element name="fDigestType" type="rdeCsv:fUnsignedByteType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Digest field -->
 <element name="fDigest" type="rdeCsv:fHexBinaryType" 
  substitutionGroup="rdeCsv:field"/>
 
 <!-- Flags field -->
 <element name="fFlags" type="rdeCsv:fUnsignedShortType" 
  substitutionGroup="rdeCsv:field"/>
 
 <!-- Protocol field -->
 <element name="fProtocol" type="rdeCsv:fUnsignedByteType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Key Algorithm field -->
 <element name="fKeyAlg" type="rdeCsv:fUnsignedByteType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Public Key field -->
 <element name="fPubKey" type="csvDomain:fPubKeyType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fPubKeyType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="secDNS\:keyType"/>
    </extension>
  </complexContent>
 </complexType>
 
 
 <!-- Boolean type  fields -->
 <element name="fIdn" type="rdeCsv:fBooleanType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fVariant" type="rdeCsv:fBooleanType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fReserved" type="rdeCsv:fBooleanType" 
  substitutionGroup="rdeCsv:field"/>
 
 <!-- Original Domain Name for Variant field -->
 <element name="fOriginalName" type="rdeCsv:fNameType" 
  substitutionGroup="rdeCsv:field"/>
 
  <!--
  End of schema.
  -->
</schema>
END

5.3. Host Object

Copyright (c) 2012 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:csvHost-1.0"
      xmlns:csvHost="urn:ietf:params:xml:ns:csvHost-1.0"
      xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
      xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-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"/>
  <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0"
       schemaLocation="rdeCsv-1.0.xsd"/>

  <annotation>
   <documentation>
    Host Comma-Separated Values (CSV) Object 
   </documentation>
  </annotation>

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

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

 
 <!-- IP address fields (fV4Addrs, fV6Addrs) -->
 <element name="fV4Addrs" type="csvHost:fAddrsType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fV6Addrs" type="csvHost:fAddrsType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fAddrsType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="host\:addrStringType"/>
      <attribute name="list" type="boolean" 
        default="true"/>
      <attribute name="sep" type="token" 
        default=","/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Boolean type  fields -->
 <element name="fIdn" type="rdeCsv:fBooleanType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Parent domain name for subordinate host field -->
 <element name="fParentDomain" type="rdeCsv:fNameType" 
  substitutionGroup="rdeCsv:field"/>

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

5.4. Contact Object

Copyright (c) 2012 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:csvContact-1.0"
    xmlns:csvContact="urn:ietf:params:xml:ns:csvContact-1.0"
    xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-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"/>
<import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0"
      schemaLocation="rdeCsv-1.0.xsd"/>

<annotation>
  <documentation>
    Contact Comma-Separated Values (CSV) Object 
  </documentation>
</annotation>

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

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

 <!-- Server-unique contact identifier field -->
 <element name="fId" type="csvContact:fIdType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fIdType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="eppcom\:clIDType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- voice and fax telephone number fields -->
 <element name="fVoice" type="csvContact:fE164StringType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fFax" type="csvContact:fE164StringType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fE164StringType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="contact\:e164StringType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- voice and fax telephone extension fields -->
 <element name="fVoiceExt" type="rdeCsv:fTokenType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fFaxExt" type="rdeCsv:fTokenType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- contact email address field -->
 <element name="fEmail" type="csvContact:fEmailType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fEmailType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="eppcom\:minTokenType"/>
    </extension>
  </complexContent>
 </complexType>



 <!-- 
   Postal type field
   ("loc" = localized, "int" = internationalized)  
 -->
 <element name="fPostalType" type="csvContact:fPostalTypeType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fPostalTypeType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="contact\:postalInfoEnumType"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Standard postal line field -->
 <complexType name="fPostalLineType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="contact\:postalLineType"/>
      <attribute name="isLoc" type="boolean"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Standard optional postal line field -->
 <complexType name="fOptPostalLineType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="contact\:optPostalLineType"/>
      <attribute name="isLoc" type="boolean"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Name of the individual or role field -->
 <element name="fName" type="csvContact:fPostalLineType" 
  substitutionGroup="rdeCsv:field"/>
  

 <!-- Name organization field -->
 <element name="fOrg" type="csvContact:fOptPostalLineType" 
  substitutionGroup="rdeCsv:field"/>


 <!-- Street address line field with required index attribute  -->
 <!-- starting with index 0.  -->
 <element name="fStreet" type="csvContact:fStreetType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fStreetType">
  <complexContent>
    <extension base="csvContact:fPostalLineType">
      <sequence/>
      <attribute name="index" type="int"  
      use="required"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- Contact's city field -->
 <element name="fCity" type="csvContact:fPostalLineType" 
  substitutionGroup="rdeCsv:field"/>
 
 <!-- Contact's state or province field -->
 <element name="fSp" type="csvContact:fOptPostalLineType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Contact's postal code field -->
 <element name="fPc" type="csvContact:fPcType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fPcType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="contact\:pcType"/>
      <attribute name="isLoc" type="boolean"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- Contact's country code field -->
 <element name="fCc" type="csvContact:fCcType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fCcType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="contact\:ccType"/>
      <attribute name="isLoc" type="boolean"/>
    </extension>
  </complexContent>
 </complexType>

 <!-- Disclosure element fields -->
 <!-- Flag of "1" to allow disclosure 
      and "0" to disallow disclosure -->
 <element name="fDiscloseFlag" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure of localized name 
      based on fDiscloseFlag? -->
 <element name="fDiscloseNameLoc" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure of internationalized name 
      based on fDiscloseFlag? -->
 <element name="fDiscloseNameInt" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure of localized org 
      based on fDiscloseFlag? -->
 <element name="fDiscloseOrgLoc" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure of internationalized org 
      based on fDiscloseFlag? -->
 <element name="fDiscloseOrgInt" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure of localized address 
      based on fDiscloseFlag? -->
 <element name="fDiscloseAddrLoc" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure of internationalized address 
      based on fDiscloseFlag? -->
 <element name="fDiscloseAddrInt" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure voice telephone number 
      based on fDiscloseFlag? -->
 <element name="fDiscloseVoice" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure facsimile telephone number 
      based on fDiscloseFlag? -->
 <element name="fDiscloseFax" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <!-- Disclosure email address 
      based on fDiscloseFlag? -->
 <element name="fDiscloseEmail" type="csvContact:fBoolean" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fBoolean">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="boolean"/>
    </extension>
  </complexContent>
 </complexType>
 
<!--
End of schema.
-->
</schema>
END

5.5. Registrar Object

Copyright (c) 2012 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:csvRegistrar-1.0"
      xmlns:csvRegistrar="urn:ietf:params:xml:ns:csvRegistrar-1.0"
      xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
    xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-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"/>
  <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0"
        schemaLocation="rdeCsv-1.0.xsd"/>

  <annotation>
   <documentation>
    Registar Comma-Separated Values (CSV) Object 
   </documentation>
  </annotation>

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

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

  <!--
  Supported form / type of postal information
  -->
  <simpleType name="postalInfoEnumType">
    <restriction base="token">
      <enumeration value="loc"/>
      <enumeration value="int"/>
    </restriction>
  </simpleType>

 <!-- Registrar unique identifier (short name / id) -->
 <element name="fId" type="rdeCsv:fClIDType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Registrar name (full name) -->
 <element name="fName" type="csvRegistrar:fNameType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Registrar name field -->
 <complexType name="fNameType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="normalizedString"/>
      <attribute name="isLoc" type="boolean" default="false"/>
    </extension>
  </complexContent>
 </complexType>


 <!-- Registrar GURID field -->
 <element name="fGurid" 
  type="rdeCsv:fPositiveIntegerType" 
  substitutionGroup="rdeCsv:field"/>

 <!-- Registrar status field -->
 <element name="fStatus" type="csvRegistrar:fStatusType" 
  substitutionGroup="rdeCsv:field"/>
 <element name="fStatusName" type="rdeCsv:fTokenType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="fStatusType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
      default="csvRegistrar\:statusType"/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- Registrar status type with optional name attr -->
 <complexType name="statusType">
   <simpleContent>
     <extension base="csvRegistrar:statusValueType">
       <attribute name="name" type="token"/>
     </extension>
   </simpleContent>
 </complexType>
 
 <!-- Registrar status enumerated values -->
 <simpleType name="statusValueType">
   <restriction base="token">
     <enumeration value="ok"/>
     <enumeration value="hold"/>
     <enumeration value="terminated"/>
     <enumeration value="custom"/>
   </restriction>
 </simpleType>

   <!-- URL fields -->
 <element name="fWhoisUrl" type="rdeCsv:anyURIType" 
  substitutionGroup="rdeCsv:field"/>
  
 <!-- Registrar contact types field --> 
 <element name="fContactTypes" 
  type="csvRegistrar:contactTypesType" 
  substitutionGroup="rdeCsv:field"/>
 <complexType name="contactTypesType">
  <complexContent>
    <extension base="rdeCsv:fieldType">
      <sequence/>
      <attribute name="type" type="token"  
        default="csvRegistrar\:contactTypeType"/>
      <attribute name="list" type="boolean" 
        default="true"/>
      <attribute name="sep" type="token" 
        default=","/>
    </extension>
  </complexContent>
 </complexType>
 
 <!-- Contact type enumerated values -->
  <simpleType name="contactTypeType">
    <restriction base="token">
      <enumeration value="admin"/>
      <enumeration value="billing"/>
      <enumeration value="tech"/>
      <enumeration value="custom"/>
    </restriction>
  </simpleType>
  
  <!--
  End of schema.
  -->
</schema>
END

5.6. IDN Language Object

Copyright (c) 2012 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:csvIDN-1.0"
      xmlns:csvIDN="urn:ietf:params:xml:ns:csvIDN-1.0"
      xmlns:rde="urn:ietf:params:xml:ns:rde-1.0"
      xmlns="http://www.w3.org/2001/XMLSchema"
      elementFormDefault="qualified">

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

  <annotation>
   <documentation>
    IDN Language Comma-Separated Values (CSV) Object 
   </documentation>
  </annotation>

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

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

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

5.7. Extension Guidelines

TBD

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

5.9. 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 CSV namespace:

Registration request for the RDE CSV XML schema:

Registration request for the RDE CSV domain namespace:

Registration request for the RDE CSV domain XML schema:

Registration request for the RDE CSV host namespace:

Registration request for the RDE CSV host XML schema:

Registration request for the RDE CSV contact namespace:

Registration request for the RDE CSV contact XML schema:

Registration request for the RDE CSV registrar namespace:

Registration request for the RDE CSV registrar XML schema:

Registration request for the RDE CSV IDN namespace:

Registration request for the RDE CSV IDN XML schema:

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

5.11. Acknowledgments

Parts of this document are based on EPP [RFC5730] and related RFCs by Scott Hollenbeck. The structure and some of the sample data and content of this document is based on the Domain Name Registration Data (DNRD) Objects Mapping by Francisco Arias and Shoji Noguchi.

TBD

5.12. Change History

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

6. References

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

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

James Gould Verisign 12061 Bluemont Way Reston, VA 20190 US EMail: jgould@verisign.com URI: http://www.verisigninc.com
Chethan Thippeswamy Verisign 12061 Bluemont Way Reston, VA 20190 US EMail: cthippeswamy@verisign.com URI: http://www.verisigninc.com