RFC 9022 | DNRD Objects Mapping | May 2021 |
Lozano, et al. | Standards Track | [Page] |
This document specifies the format, contents, and semantics of Domain Name Registration Data (DNRD) escrow deposits for a domain name registry.¶
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9022.¶
Copyright (c) 2021 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 (https://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.¶
Registry Data Escrow (RDE) is the process by which a registry periodically submits data deposits to a third party called an escrow agent. These deposits comprise the minimum data needed by a third party to resume operations if the registry cannot function and is unable or unwilling to facilitate an orderly transfer of service. For example, for a domain name registry or registrar, the data to be deposited would include all the objects related to registered domain names, e.g., names, contacts, name servers, etc.¶
The goal of data escrow is higher resiliency of registration services for the benefit of Internet users. The beneficiaries of a registry are not just those registering information there, but also the users of services relying on the registry data.¶
In the context of domain name registries, registration data escrow is a requirement for generic top-level domains (e.g., Specification 2 of the ICANN Base Registry Agreement, see [ICANN-GTLD-RA-20170731]) and some country code top-level domain managers are also currently escrowing data. There is also a similar requirement for ICANN-accredited domain registrars.¶
This document defines the standard set of objects for a domain name registry that uses the Registry Data Escrow Specification described in [RFC8909] for escrow. The set of objects include:¶
This document defines the following pseudo-objects:¶
Extensible Markup Language (XML) 1.0 as described in [W3C.REC-xml-20081126] and XML Schema notation as described in [W3C.REC-xmlschema-1-20041028] and [W3C.REC-xmlschema-2-20041028] are used in this specification.¶
This document defines two different models that can be used to deposit data escrow objects: XML and CSV (comma-separated values).¶
The data escrow deposit MAY contain a mix of both models, but an object MUST be escrowed only in one model.¶
This document does not suggest the use of a particular model, and both are equivalent. A domain name registry may choose the model that is more appropriate for the peculiarities of its systems. For example, a registry may use the CSV-export functionality of the Relational Database Management System (RDBMS) for escrow; therefore, the CSV model may be more appropriate. Another registry may use the code developed for EPP to implement escrow.¶
The XML model includes all the deposit information (metadata and data) in an XML document. The definition of the XML format is fully defined in the XML schemas. As a convention, the objects represented using the XML model are referenced using RDE and an XML namespace that is prefixed with "rde". For example, the Domain Name object represented using the XML model can be referred to as the RDE Domain Name with the XML namespace including rdeDomain (urn:ietf:params:xml:ns:rdeDomain-1.0).¶
The CSV model uses XML to define the data escrow format of the data contained in referenced CSV files. As a convention, the objects represented using the CSV model is referenced using CSV and an XML namespace that is prefixed with "csv". For example, the domain name object represented using the CSV model can be referred to as the CSV Domain Name with the XML namespace including csvDomain (urn:ietf:params:xml:ns:csvDomain-1.0).¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
In the following section, the most common terms are briefly explained:¶
Numerous fields indicate "dates", such as the creation and expiry dates for domain names. These fields SHALL contain timestamps indicating the date and time in UTC as specified in [RFC3339], with no offset from the zero meridian.¶
Country identifiers SHALL be represented using two character identifiers as specified in [ISO-3166-1].¶
Telephone numbers (both voice and facsimile) 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 0x2B), followed by a country code defined in [ITU-E164], followed by a dot (".", ASCII value 0x2E), followed by a sequence of digits representing the telephone number.¶
A checksum MAY be used to verify the integrity of the CSV files, for example, if another layer (i.e., encryption of an archive containing the deposit files) does not provide integrity. By default, the CRC32 algorithm (see Section 8.1.1.6.2 of [V42]) is used. A stronger algorithm, such as SHA-256 (see [RFC6234]) MAY be used for enhanced security if required.¶
The syntax of IP addresses MUST conform to the text representation of either Internet Protocol Version 4 [RFC0791] or Internet Protocol Version 6 [RFC5952].¶
The CSV model represents a relational model where the CSV files represent relational tables, the fields of the CSV files represent columns of the tables, and each line of the CSV file represents a record. As in a relational model, the CSV files can have relationships utilizing primary keys in the parent CSV file definitions and foreign keys in the child CSV file definitions for a one-to-many relationship. The primary keys are not explicitly defined, but the foreign keys are using the boolean "parent" field attribute in the child CSV file. The relationships between the CSV files are used to support a cascade replace or cascade delete of records starting from the parent record in Differential and Incremental Deposits (see [RFC8909]).¶
The following is an example of the CSV file definitions, using the element <rdeCsv:csv> (see Section 4.6.2.1), for a Sample object consisting of a parent "sample" CSV File Definition and a child "sampleStatuses" CSV File Definition. The primary key for the Sample object is the field <csvSample:fName> that is used as the foreign key in the "sampleStatuses" CSV File Definition by specifying the "parent=true" attribute. If a Sample record is updated or deleted in a Differential or Incremental Deposit, it should cascade replace the data using the records included in the child "sampleStatuses" CSV File Definition or cascade delete the existing records in the child "sampleStatuses" CSV File Definition, respectively.¶
<csvSample:contents> ... <rdeCsv:csv name="sample" sep=","> <rdeCsv:fields> <csvSample:fName/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fExDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="75E2D22F"> sample-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="sampleStatuses" sep=","> <rdeCsv:fields> <csvSample:fName parent="true"/> <csvSample:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="EB9C558E"> sampleStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvSample:contents>¶
To support the CSV model, an element is defined for each object that substitutes for the <rde:content> element and for the <rde:delete> element, that contains one or more <rdeCsv:csv> elements. For example, the 'Domain Name Object' (Section 5.1) defines the <csvDomain:contents> element, that substitutes for the <rde:content> element, and the <csvDomain:deletes> element, that substitutes for the <rde:delete> element. Both the <csvDomain:contents> element and the <csvDomain:deletes> elements contain one or more <rdeCsv:csv> elements. The <rdeCsv:csv> element has the following child elements:¶
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:¶
The <rdeCsv:csv> element 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 OPTIONAL "sep" attribute defines the CSV separator character with the default separator character of ",". The need for quoting or escaping of the CSV data could be avoided by choosing a separator character that is not in the data set of the CSV files.¶
The following is an example of the <csvDomain:contents> <rdeCsv:csv> element for domain name records where the <rdeCsv:fRegistrant> is set as required with isRequired="true".¶
<csvDomain:contents> ... <rdeCsv:csv name="domain" sep=","> <rdeCsv:fields> <csvDomain:fName/> <rdeCsv:fRoid/> <rdeCsv:fIdnTableId/> <csvDomain:fOriginalName/> <rdeCsv:fRegistrant isRequired="true"/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fExDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="75E2D01F"> domain-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents>¶
The following is an example of the domain-YYYYMMDD.csv file with one record matching the <rdeCsv:fields> definition.¶
domain1.example,Ddomain2-TEST,,,registrantid,registrarX,registrarX, clientY,2009-04-03T22:00:00.0Z,registrarX,clientY, 2009-12-03T09:05:00.0Z,2025-04-03T22:00:00.0Z¶
The following is an example of the <csvDomain:deletes> <rdeCsv:csv> element for domain name records.¶
<csvDomain:deletes> ... <rdeCsv:csv name="domain"> <rdeCsv:fields> <csvDomain:fName/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="6F2B988F"> domain-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:deletes>¶
The following is example of the domain-delete-YYYYMMDD.csv file with three records that matches the single <csvDomain:fName> field.¶
domain1.example domain2.example domainN.example¶
The <rdeCsv:fields> element defined in the '<rdeCsv:csv> Element' (Section 4.6.2.1) has child elements that substitute for the abstract <rdeCsv:field> element. By convention, <rdeCsv:field> elements include an "f" prefix to identify them as field definition elements. 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:¶
Some elements MAY be provided in either internationalized form ("int") or 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.¶
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" 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 isRequired="false"/> <rdeCsv:fUrl/> <csvRegistrar:fWhoisUrl/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="306178BB"> 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:fields> <csvContact:fId parent="true"/> <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="02CC2504"> contactPostal-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:contents> ...¶
This section describes the base objects supported by this specification:¶
The domain name object is based on the EPP domain name mapping specified in [RFC5731]. The domain name object supports both the XML model and the CSV model, defined in 'Models' (Section 2). The elements used for both models are defined in the following sections.¶
There are two elements used in the data escrow of the domain name objects for the XML model, including the <rdeDomain:domain> element, under the <rde:contents> element, and the <rdeDomain:delete> element, under the <rde:deletes> element.¶
The domain element is based on the EPP domain <info> response for an authorized client (see Section 3.1.2 of [RFC5731]) with additional data from an EPP <transfer> query response, see Section 3.1.3 of [RFC5731], Registry Grace Period (RGP) status from [RFC3915], and data from the EPP <secDNS:create> command, see Section 5.2.1 of [RFC5910].¶
A <domain> element substitutes for the <abstractDomain> abstract element to create a concrete definition of a domain. The <abstractDomain> element can be replaced by other domain definitions using the XML schema substitution groups feature.¶
The <domain> element contains the following child elements:¶
An OPTIONAL <trnData> element that contains the following child elements related to the last transfer request of the domain name object. This element MUST NOT be present if a transfer request for the domain name has never been created.¶
The following is an example of a domain name object:¶
... <rdeDomain:domain> <rdeDomain:name>xn--exampl-gva.example</rdeDomain:name> <rdeDomain:roid>Dexample1-TEST</rdeDomain:roid> <rdeDomain:idnTableId>pt-BR</rdeDomain:idnTableId> <rdeDomain:originalName>example.example</rdeDomain:originalName> <rdeDomain:status s="ok"/> <rdeDomain:registrant>jd1234</rdeDomain:registrant> <rdeDomain:contact type="admin">sh8013</rdeDomain:contact> <rdeDomain:contact type="tech">sh8013</rdeDomain:contact> <rdeDomain:ns> <domain:hostObj>ns1.example.com</domain:hostObj> <domain:hostObj>ns1.example1.example</domain:hostObj> </rdeDomain:ns> <rdeDomain:clID>RegistrarX</rdeDomain:clID> <rdeDomain:crRr client="jdoe">RegistrarX</rdeDomain:crRr> <rdeDomain:crDate>1999-04-03T22:00:00.0Z</rdeDomain:crDate> <rdeDomain:exDate>2025-04-03T22:00:00.0Z</rdeDomain:exDate> </rdeDomain:domain> ...¶
The <rdeDomain:delete> element contains the FQDN that was deleted and purged.¶
The following is an example of an <rdeDomain:delete> object:¶
... <rde:deletes> ... <rdeDomain:delete> <rdeDomain:name>foo.example</rdeDomain:name> <rdeDomain:name>bar.example</rdeDomain:name> </rdeDomain:delete> ... </rde:deletes> ...¶
For the CSV model of the domain name object, the <csvDomain:contents> child element of the <rde:contents> element is used to hold the new or updated domain name objects for the deposit. The <csvDomain:deletes> child element of the <rde:deletes> element is used to hold the deleted or purged domain name objects for the deposit. Both the <csvDomain:contents> and <csvDomain:deletes> elements contain one or more <rdeCsv:csv> elements with a set of named CSV file definitions using the <rdeCsv:csv> "name" attribute.¶
Differential and Incremental Deposits are based on changes to the domain name objects. The updated domain name object data under the <csvDomain:contents> element is a cascade replace down all of the domain name CSV files starting with the parent '"domain" CSV File Definition' (Section 5.1.2.1.1). The child CSV file definitions include a <csvDomain:fName parent="true"> field. All the child CSV file definition data for the domain name objects in the parent '"domain" CSV File Definition' (Section 5.1.2.1.1) MUST first be deleted and then set using the data in the child CSV files. The deleted domain name object data under the <csvDomain:deletes> element is a cascade delete starting from the '"domain" Deletes CSV File Definition' (Section 5.1.2.2.1).¶
The <csvDomain:contents> is used to hold the new or updated domain name object information for the deposit. The <csvDomain:contents> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following sections include the supported domain name CSV file definitions.¶
The "domain" CSV File Definition defines the fields and CSV file references used for the parent domain name object records. All the other domain name CSV file definitions are child CSV files based on the inclusion of the <csvDomain:fName parent="true"> field.¶
The following "csvDomain" field elements MUST be used in the "domain" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvDomain" field elements MAY be used in the "domain" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" and "csvRegistrar" fields, MUST be used in the "domain" <rdeCsv:csv> <rdeCsv:fields> element:¶
A choice of the following:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "domain" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "domain" <csvDomain:contents> <rdeCsv:csv> element.¶
... <csvDomain:contents> ... <rdeCsv:csv name="domain"> <rdeCsv:fields> <csvDomain:fName/> <rdeCsv:fRoid/> <rdeCsv:fIdnTableId/> <csvDomain:fOriginalName/> <rdeCsv:fRegistrant/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fExDate isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="5E403BD6"> domain-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding domain-YYYYMMDD.csv file. The file contains four records (two active ASCII domains, original IDN with LANG-1 language rules, and variant IDN with LANG-1 language rules).¶
domain1.example,Ddomain1-TEST,,,registrantid,registrarX,registrarX, clientY,2009-04-03T22:00:00.0Z,registrarX,clientY, 2009-12-03T09:05:00.0Z,2025-04-03T22:00:00.0Z domain2.example,Ddomain2-TEST,,,registrantid,registrarX,registrarX, clientY,1999-04-03T22:00:00.0Z,registrarX,clientY, 2009-12-03T09:05:00.0Z,2025-04-03T22:00:00.0Z xn--bc123-3ve.example,Dxnabc123-TEST,LANG-1,,registrantid,registrarX, registrarX,clientY,2009-04-03T22:00:00.0Z,registrarX,clientY, 2009-12-03T09:05:00.0Z,2025-04-03T22:00:00.0Z xn--bc321-3ve.example,Dxnabc321-TEST,LANG-1,xn--bc123-3ve.example, registrantid,registrarX,registrarX,clientY,2009-04-03T22:00:00.0Z, registrarX,clientY,2009-12-03T09:05:00.0Z,2025-04-03T22:00:00.0Z¶
The "domainContacts" CSV File Definition defines the fields and CSV file references used for the domain name object link records to contact objects, as described in 'Contact Object' (Section 5.3).¶
The following "csvDomain" field elements, defined for the '"domain" CSV File Definition' (Section 5.1.2.1.1), MUST be used in the "domainContacts" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvContact" fields, defined for the '"contact" CSV File Definition' (Section 5.3.2.1.1), MUST be used in the "domainContacts" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "domainContacts" <csvDomain:contents> <rdeCsv:csv> element:¶
... <csvDomain:contents> ... <rdeCsv:csv name="domainContacts"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvContact:fId/> <csvDomain:fContactType/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="6B976A6C"> domainContacts-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding domainContacts-YYYYMMDD.csv file. The file contains an admin, tech, and billing contact for the four domain names domain1.example, domain2.example, xn--bc123-3ve.example, and xn--bc321-3ve.example:¶
domain1.example,domain1admin,admin domain1.example,domain1tech,tech domain1.example,domain1billing,billing domain2.example,domain2admin,admin domain2.example,domain2tech,tech domain2.example,domain2billing,billing xn--bc123-3ve.example,xnabc123admin,admin xn--bc123-3ve.example,xnabc123tech,tech xn--bc123-3ve.example,xnabc123billing,billing xn--bc321-3ve.example,xnabc123admin,admin xn--bc321-3ve.example,xnabc123tech,tech xn--bc321-3ve.example,xnabc123billing,billing¶
The "domainStatuses" CSV File Definition defines the fields and CSV file references used for the domain name object statuses.¶
The following "csvDomain" fields, defined for the '"domain" CSV File Definition' (Section 5.1.2.1.1), MUST be used in the "domainStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "domainStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "domainStatuses" <csvDomain:contents> <rdeCsv:csv> element:¶
... <csvDomain:contents> ... <rdeCsv:csv name="domainStatuses"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> <csvDomain:fRgpStatus/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="98D139A3"> domainStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding domainStatuses-YYYYMMDD.csv file. The file contains the statuses for the four domain names domain1.example, domain2.example, xn--bc123-3ve.example, and xn--bc321-3ve.example:¶
domain1.example,clientUpdateProhibited,"Disallow update", en, domain1.example,clientDeleteProhibited,"Disallow delete", en, domain2.example,ok,,, xn--bc123-3ve.example,ok,,, xn--bc321-3ve.example,ok,,,¶
The "domainNameServers" CSV File Definition defines the fields and CSV file references used for the domain name delegated hosts (name servers). The "domainNameServers" CSV files define the relationship between a domain name object and a delegated host. The "domainNameServers" CSV File is used to support the <domain:hostObj> model, defined in [RFC5731].¶
The following "csvDomain" fields, defined for the '"domain" CSV File Definition' (Section 5.1.2.1.1), MUST be used in the "domainNameServers" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvHost" and "rdeCsv" field elements MUST be used in the "domainNameServers" <rdeCsv:csv> <rdeCsv:fields> element:¶
A choice of the following:¶
The following is an example of a "domainNameServers" <csvDomain:contents> <rdeCsv:csv> element:¶
... <csvDomain:contents> ... <rdeCsv:csv name="domainNameServers"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <rdeCsv:fRoid/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="8FE6E9E1"> domainNameServers-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding domainNameServers-YYYYMMDD.csv file. The file contains the delegated hosts (name servers) for the four domain names domain1.example, domain2.example, xn--bc123-3ve.example, and xn--bc321-3ve.example referenced via the <rdeCsv:fRoid> field element:¶
domain1.example,Hns1_domain1_test-TEST domain1.example,Hns2_domain1_test-TEST domain2.example,Hns1_domain2_test-TEST domain2.example,Hns2_domain2_test-TEST xn--bc123-3ve.example,Hns1_example_test-TEST xn--bc123-3ve.example,Hns2_example_test-TEST xn--bc321-3ve.example,Hns1_example_test-TEST xn--bc321-3ve.example,Hns2_example_test-TEST¶
The "domainNameServersAddresses" CSV File Definition defines the fields and CSV file references used for supporting the domain host attributes model.¶
The following "csvDomain" fields, defined for the '"domain" CSV File Definition' (Section 5.1.2.1.1), MUST be used in the "domainNameServersAddresses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Model' (Section 5.2.2), MUST be used in the "domainNameServersAddresses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvHost" fields, defined in 'CSV Model' (Section 5.2.2), MAY be used in the "domainNameServersAddresses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "domainNameServersAddresses" <csvDomain:contents> <rdeCsv:csv> element:¶
... <csvDomain:contents> ... <rdeCsv:csv name="domainNameServersAddresses"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvHost:fName/> <csvHost:fAddr/> <csvHost:fAddrVersion/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D3B77438"> domainNameServersAddresses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding domainNameServersAddresses-YYYYMMDD.csv file. The file contains the delegated hosts (name servers) for the four domain names domain1.example, domain2.example, xn--bc123-3ve.example, and xn--bc321-3ve.example:¶
domain1.example,ns1.domain1.example,192.0.2.1,v4 domain1.example,ns2.domain1.example,2001:DB8::1,v6 domain2.example,ns1.example.net,, domain2.example,ns2.example.net,, xn--bc123-3ve.example,ns1.example.net,, xn--bc123-3ve.example,ns2.example.net,, xn--bc321-3ve.example,ns1.example.net,, xn--bc321-3ve.example,ns2.example.net,,¶
The "dnssec" CSV File Definition defines the fields and CSV file references used for the domain name object DNSSEC records (Delegation Signer (DS) or key data).¶
The following "csvDomain" field elements MUST be used in the "dnssec" <rdeCsv:csv> <rdeCsv:fields> element when the DS Data Interface per [RFC5910] is used:¶
The following "csvDomain" field elements MUST be used in the "dnssec" <rdeCsv:csv> <rdeCsv:fields> element when the Key Data Interface per [RFC5910] is used and MAY be used in the "dnssec" <rdeCsv:csv> <rdeCsv:fields> element when the DS Data Interface per [RFC5910] is used:¶
The following "csvDomain" field elements MAY be used in the "dnssec" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "domain" fields, defined for the '"domain" CSV File Definition' (Section 5.1.2.1.1), MUST be used in the "dnssec" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "dnssec" <csvDomain:contents> <rdeCsv:csv> element with the DS Data Interface of [RFC5910]:¶
<csvDomain:contents> ... <rdeCsv:csv name="dnssec"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fMaxSigLife/> <csvDomain:fKeyTag/> <csvDomain:fDsAlg/> <csvDomain:fDigestType/> <csvDomain:fDigest/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="10ED6C42"> dnssec-ds-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding dnssec-ds-YYYYMMDD.csv file. The file contains two DS records for domain1.example:¶
domain1.example,604800,30730,8,2,91C9B176EB////F1C46F6A55 domain1.example,604800,61882,8,2,9F8FEAC94B////1272AF09F3¶
The following is an example of a "dnssec" <csvDomain:contents> <rdeCsv:csv> element with the Key Data Interface of [RFC5910]:¶
<csvDomain:contents> ... <rdeCsv:csv name="dnssec"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fMaxSigLife/> <csvDomain:fFlags/> <csvDomain:fProtocol/> <csvDomain:fKeyAlg/> <csvDomain:fPubKey/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="183C3F79"> dnssec-key-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding dnssec-key-YYYYMMDD.csv file. The file contains two key records for domain1.example:¶
domain1.example,604800,257,3,8,AwEAAZD1+z////G1jqviK8c= domain1.example,604800,257,3,8,AwEAAbntWP////vwDitt940=¶
The "domainTransfer" CSV File Definition defines the fields and CSV file references 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 'CSV Common Field Elements' (Section 4.6.2.2), MUST be used in the "domainTransfer" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "domainTransfer" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvDomain" fields, defined for the '"domain" CSV File Definition' (Section 5.1.2.1.1), MUST be used in the "domainTransfer" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "domainTransfer" <csvDomain:contents> <rdeCsv:csv> element:¶
... <csvDomain:contents> ... <rdeCsv:csv name="domainTransfer"> <rdeCsv:fields> <csvDomain:fName parent="true"/> <rdeCsv:fTrStatus/> <rdeCsv:fReRr/> <rdeCsv:fReID/> <rdeCsv:fReDate/> <rdeCsv:fAcRr/> <rdeCsv:fAcID/> <rdeCsv:fAcDate/> <rdeCsv:fExDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="2E5A9ACD"> domainTransfer-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:contents> ...¶
The following is an example of the corresponding domainTransfer-YYYYMMDD.csv file. The file contains one domain transfer record with a pending status:¶
domain1.example,pending,registrarX,clientY, 2011-03-08T19:38:00.0Z,registrarY,,2011-03-13T23:59:59.0Z, 2025-04-03T22:00:00.0Z¶
The <csvDomain:deletes> is used to hold the deleted domain name objects in a Differential or Incremental Deposit. All the domain name object data is deleted as part of a cascade delete. The <csvDomain:deletes> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following section defines the supported domain name deletes CSV file definition.¶
The following "csvDomain" field elements MUST be used in the deletes "domain" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "domain" <csvDomain:deletes> <rdeCsv:csv> element:¶
... <csvDomain:deletes> ... <rdeCsv:csv name="domain"> <rdeCsv:fields> <csvDomain:fName/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="A06D8194"> domain-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvDomain:deletes> ...¶
The following is an example of the corresponding domain-delete-YYYYMMDD.csv file. The file contains two domain name records:¶
domain1.example domain2.example¶
The host object is based on the EPP host name mapping in [RFC5732]. The host object supports both the XML model and the CSV model, defined in 'Models' (Section 2). The elements used for both models are defined in the following sections. Both the <csvHost:contents> and <csvHost:deletes> elements contain one or more <rdeCsv:csv> elements with a set of named CSV file definitions using the <rdeCsv:csv> "name" attribute.¶
There are two elements used in the data escrow of the host objects for the XML model including the <rdeHost:host> element, under the <rdeHost:contents> element, and the <rdeHost:delete> element, under the <rde:deletes> element.¶
An <rdeHost:host> element substitutes for the <rdeHost:abstractHost> abstract element to create a concrete definition of a host. The <rdeHost:abstractHost> element can be replaced by other host definitions using the XML schema substitution groups feature.¶
The RDE host object is based on the EPP host <info> response for an authorized client (Section 3.1.2 of [RFC5732]).¶
The OPTIONAL <host> element contains the following child elements:¶
The following is an example of a <host> object:¶
... <rdeHost:host> <rdeHost:name>ns1.example1.example</rdeHost:name> <rdeHost:roid>Hns1_example_test-TEST</rdeHost:roid> <rdeHost:status s="ok"/> <rdeHost:status s="linked"/> <rdeHost:addr ip="v4">192.0.2.2</rdeHost:addr> <rdeHost:addr ip="v4">192.0.2.29</rdeHost:addr> <rdeHost:addr ip="v6">2001:DB8:1::1</rdeHost:addr> <rdeHost:clID>RegistrarX</rdeHost:clID> <rdeHost:crRr>RegistrarX</rdeHost:crRr> <rdeHost:crDate>1999-05-08T12:10:00.0Z</rdeHost:crDate> <rdeHost:upRr>RegistrarX</rdeHost:upRr> <rdeHost:upDate>2009-10-03T09:34:00.0Z</rdeHost:upDate> </rdeHost:host> ...¶
The <rdeHost:delete> element contains the FQDN of a host that was deleted. The <rdeHost:delete> element also supports host removal based on ROID to support SRS systems in which different hosts with the same FQDN are active at the same time.¶
The following is an example of an <rdeHost:delete> object:¶
... <rde:deletes> ... <rdeHost:delete> <rdeHost:name>ns1.example.example</rdeHost:name> </rdeHost:delete> ... </rde:deletes> ...¶
For the CSV model of the host object, the <csvHost:contents> child element of the <rde:contents> element is used to hold the new or updated host objects for the deposit. The <csvHost:deletes> child element of the <rde:deletes> element is used to hold the deleted or purged host objects for the deposit.¶
Differential and Incremental Deposits are based on changes to the host objects. The updated host object data under the <csvHost:contents> element is a cascade replace down all of the host CSV files starting with the parent '"host" CSV File Definition' (Section 5.2.2.1.1). The child CSV file definitions include an <rdeCsv:fRoid parent="true"> field. All the child CSV file definition data for the host objects in the parent '"host" CSV File Definition' (Section 5.2.2.1.1) MUST first be deleted and then set using the data in the child CSV files. The deleted host object data under the <csvHost:deletes> element is a cascade delete starting from the '"host" Deletes CSV File Definition' (Section 5.2.2.2.1).¶
The <csvHost:contents> is used to hold the new or updated host object information for the deposit. The <csvHost:contents> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following sections include the supported host CSV file definitions.¶
The "host" CSV File Definition defines the fields and CSV file references used for the host object records.¶
The following "csvHost" field elements MUST be used in the "host" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MUST be used in the "host" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" and "csvRegistrar" fields MAY be used in the "host" <rdeCsv:csv> <rdeCsv:fields> element:¶
A choice of the following:¶
The following is an example of a "host" <csvHost:contents> <rdeCsv:csv> element:¶
... <csvHost:contents> ... <rdeCsv:csv name="host"> <rdeCsv:fields> <csvHost:fName/> <rdeCsv:fRoid/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fTrDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="6F1E58E5"> host-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvHost:contents> ...¶
The following is an example of the corresponding host-YYYYMMDD.csv file. The file contains six host records with four being internal hosts and two being external hosts:¶
ns1.domain1.example,Hns1_example_test-TEST,registrarX,registrarX, clientY,1999-05-08T12:10:00.0Z,registrarX, clientY,2009-10-03T09:34:00.0Z,2007-01-08T09:19:00.0Z ns2.domain1.example,Hns2_domain1_test-TEST,registrarX,registrarX, clientY,1999-05-08T12:10:00.0Z,registrarX, clientY,2009-10-03T09:34:00.0Z,2007-01-08T09:19:00.0Z ns1.domain2.example,Hns1_domain2_test-TEST,registrarX,registrarX, clientY,1999-05-08T12:10:00.0Z,registrarX, clientY,2009-10-03T09:34:00.0Z,2007-01-08T09:19:00.0Z ns2.domain2.example,Hns2_domain2_test-TEST,registrarX,registrarX, clientY,1999-05-08T12:10:00.0Z,registrarX, clientY,2009-10-03T09:34:00.0Z,2007-01-08T09:19:00.0Z ns1.example.net,Hns1_example_test-TEST,registrarX,registrarX, clientY,1999-05-08T12:10:00.0Z,registrarX, clientY,2009-10-03T09:34:00.0Z,2007-01-08T09:19:00.0Z ns2.example.net,Hns2_example_test-TEST,registrarX,registrarX, clientY,1999-05-08T12:10:00.0Z,registrarX, clientY,2009-10-03T09:34:00.0Z,2007-01-08T09:19:00.0Z¶
The "hostStatuses" CSV File Definition defines the fields and CSV file references used for the host object statuses.¶
The following "csvHost" fields, defined for the '"host" CSV File Definition' (Section 5.2.2.1.1), MUST be used in the "hostStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MUST be used in the "hostStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "hostStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "hostStatuses" <csvHost:contents> <rdeCsv:csv> element:¶
... <csvHost:contents> ... <rdeCsv:csv name="hostStatuses"> <rdeCsv:fields> <rdeCsv:fRoid parent="true"/> <csvHost:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="0DAE0583"> hostStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvHost:contents> ...¶
The following is an example of the corresponding hostStatuses-YYYYMMDD.csv file. The file contains the statuses for the six host names ns1.domain1.example, ns2.domain1.example, ns1.domain2.example, ns2.domain2.example, ns1.example.net, and ns2.example.net:¶
Hns1_domain1_test-TEST,ok,, Hns2_domain1_test-TEST,ok,, Hns1_domain2_test-TEST,ok,, Hns2_domain2_test-TEST,ok,, Hns1_example_test-TEST,ok,, Hns2_example_test-TEST,ok,,¶
The "hostAddresses" CSV File Definition defines the fields and CSV file references used for the host object IP addresses.¶
The following "csvHost" field elements MUST be used in the "hostAddresses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MUST be used in the "hostAddresses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "hostAddresses" <csvHost:contents> <rdeCsv:csv> element:¶
... <csvHost:contents> ... <rdeCsv:csv name="hostAddresses"> <rdeCsv:fields> <rdeCsv:fRoid parent="true"/> <csvHost:fAddr isRequired="true"/> <csvHost:fAddrVersion isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="28B194B0"> hostAddresses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvHost:contents> ...¶
The following is an example of the corresponding hostAddresses-YYYYMMDD.csv file. The file contains the IP addresses for the host names ns1.domain1.example, ns2.domain1.example, ns1.domain2.example, and ns2.domain2.example:¶
Hns1_domain1_test-TEST,192.0.2.1,v4 Hns2_domain1_test-TEST,2001:DB8::1,v6 Hns1_domain2_test-TEST,192.0.2.2,v4 Hns2_domain2_test-TEST,2001:DB8::2,v6¶
The <csvHost:deletes> is used to hold the deleted host objects in a Differential or Incremental Deposit. All the host object data is deleted as part of a cascade delete. The <csvHost:deletes> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following section defines the supported host deletes CSV file definition.¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MUST be used in the "host" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "host" <csvHost:deletes> <rdeCsv:csv> element:¶
... <csvHost:deletes> ... <rdeCsv:csv name="host"> <rdeCsv:fields> <rdeCsv:fRoid/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="777F5F0E"> host-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvHost:deletes> ...¶
The following is an example of the host-delete-YYYYMMDD.csv file. The file contains four host records:¶
Hns1_domain1_test-TEST Hns2_domain1_test-TEST Hns1_domain2_test-TEST Hns2_domain2_test-TEST¶
The contact object is based on the EPP contact name mapping in [RFC5733]. The contact object supports both the XML model and the CSV model, defined in 'Models' (Section 2). The elements used for both models are defined in the following sections.¶
There are two elements used in the data escrow of the contact objects for the XML model including the <rdeContact:contact> element, under the <rdeContact:contents> element, and the <rdeContact:delete> element, under the <rde:deletes> element.¶
A <contact> element substitutes for the <abstractContact> abstract element to create a concrete definition of a contact. The <abstractContact> element can be replaced by other contact definitions using the XML schema substitution groups feature.¶
The contact object is based on the EPP contact <info> response for an authorized client (Section 3.1.2 of [RFC5733]) with some additions including the data from an EPP <transfer> query response, see Section 3.1.3 of [RFC5733].¶
The OPTIONAL <contact> element contains the following child elements:¶
One or two <postalInfo> elements that contain postal-address information. Two elements are provided so that address information can be provided in both internationalized and localized forms; a "type" attribute is used to identify the two forms. If an internationalized form (type="int") is provided, element content MUST be represented in a subset of UTF-8 that can be represented in the 7-bit US-ASCII character set. If a localized form (type="loc") is provided, element content MAY be represented in unrestricted UTF-8. The <postalInfo> element contains the following child elements:¶
An <addr> element that contains address information associated with the contact. An <addr> element contains the following child elements:¶
An OPTIONAL <trnData> element that contains the following child elements related to the last transfer request of the contact object:¶
The following is an example of a <contact> object:¶
... <rdeContact:contact> <rdeContact:id>sh8013</rdeContact:id> <rdeContact:roid>Csh8013-TEST</rdeContact:roid> <rdeContact:status s="linked"/> <rdeContact:status s="clientDeleteProhibited"/> <rdeContact:postalInfo type="int"> <contact:name>John Doe</contact:name> <contact:org>Example Inc.</contact:org> <contact:addr> <contact:street>123 Example Dr.</contact:street> <contact:street>Suite 100</contact:street> <contact:city>Dulles</contact:city> <contact:sp>VA</contact:sp> <contact:pc>20166-6503</contact:pc> <contact:cc>US</contact:cc> </contact:addr> </rdeContact:postalInfo> <rdeContact:voice x="1234">+1.7035555555</rdeContact:voice> <rdeContact:fax>+1.7035555556</rdeContact:fax> <rdeContact:email>[email protected]</rdeContact:email> <rdeContact:clID>RegistrarX</rdeContact:clID> <rdeContact:crRr client="jdoe">RegistrarX</rdeContact:crRr> <rdeContact:crDate>2009-09-13T08:01:00.0Z</rdeContact:crDate> <rdeContact:upRr client="jdoe">RegistrarX</rdeContact:upRr> <rdeContact:upDate>2009-11-26T09:10:00.0Z</rdeContact:upDate> <rdeContact:trDate>2009-12-03T09:05:00.0Z</rdeContact:trDate> <rdeContact:trnData> <rdeContact:trStatus>pending</rdeContact:trStatus> <rdeContact:reRr client="jstiles">clientW</rdeContact:reRr> <rdeContact:reDate>2011-03-08T19:38:00.0Z</rdeContact:reDate> <rdeContact:acRr client="rmiles">RegistrarX</rdeContact:acRr> <rdeContact:acDate>2011-03-13T23:59:59.0Z</rdeContact:acDate> </rdeContact:trnData> <rdeContact:disclose flag="0"> <contact:voice/> <contact:email/> </rdeContact:disclose> </rdeContact:contact> ...¶
The <rdeContact:delete> element contains the id of a contact that was deleted.¶
The following is an example of an <rdeContact:delete> object:¶
... <rde:deletes> ... <rdeContact:delete> <rdeContact:id>sh8013-TEST</rdeContact:id> <rdeContact:id>co8013-TEST</rdeContact:id> </rdeContact:delete> ... </rde:deletes> ...¶
For the CSV model of the contact object, the <csvContact:contents> child element of the <rde:contents> element is used to hold the new or updated contacts objects for the deposit. The <csvContact:deletes> child element of the <rde:deletes> element is used to hold the deleted or purged contact objects for the deposit. Both the <csvContact:contents> and <csvContact:deletes> elements contain one or more <rdeCsv:csv> elements with a set of named CSV file definitions using the <rdeCsv:csv> "name" attribute.¶
Differential and Incremental Deposits are based on changes to the contact objects. The updated contact object data under the <csvContact:contents> element is a cascade replace down all of the contact CSV files starting with the parent '"contact" CSV File Definition' (Section 5.3.2.1.1). The child CSV file definitions include a <csvContact:fId parent="true"> field. All the child CSV file definition data for the contact objects in the parent '"contact" CSV File Definition' (Section 5.3.2.1.1) MUST first be deleted and then set using the data in the child CSV files. The deleted contact object data under the <csvContact:deletes> element is a cascade delete starting from the '"contact" Deletes CSV File Definition' (Section 5.3.2.2.1).¶
The <csvContact:contents> is used to hold the new or updated contact object information for the deposit. The <csvContact:contents> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following sections include the supported contact CSV file definitions.¶
The "contact" CSV File Definition defines the fields and CSV file references used for the contact object records.¶
The following "csvContact" field elements MUST be used in the "contact" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following field elements MAY be used in the "contact" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" and "csvRegistrar" fields MUST be used in the "contact" <rdeCsv:csv> <rdeCsv:fields> element:¶
A choice of the following:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "contact" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "contact" <csvContact:contacts> <rdeCsv:csv> element:¶
... <csvContact:contents> ... <rdeCsv:csv name="contact"> <rdeCsv:fields> <csvContact:fId/> <rdeCsv:fRoid/> <csvContact:fVoice/> <csvContact:fVoiceExt/> <csvContact:fFax/> <csvContact:fFaxExt/> <csvContact:fEmail/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="8587AA49"> contact-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:contents> ...¶
The following is an example of the contact-YYYYMMDD.csv file. The file contains nine object contact records:¶
domain1admin,Cdomain1admin-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z domain1tech,Cdomain1tech-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z domain1billing,Cdomain1billing-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z domain2admin,Cdomain2admin-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z domain2tech,Cdomain2tech-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z domain2billing,Cdomain2billing-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z xnabc123admin,Cxnabc123admin-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z xnabc123tech,Cxnabc123tech-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z xnabc123billing,Cxnabc123billing-TEST,+1.7035555555,1234, +1.7035555556,,[email protected],registrarX,registrarX, clientY,2009-09-13T08:01:00.0Z,registrarX,clientY, 2009-11-26T09:10:00.0Z¶
The "contactStatuses" CSV File Definition defines the fields and CSV file references used for the contact object statuses.¶
The following "csvContact" field elements, defined in the '"contact" CSV File Definition' (Section 5.3.2.1.1), MUST be used in the "contactStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "contactStatuses" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "contactStatuses" <csvContact:contents> <rdeCsv:csv> element:¶
... <csvContact:contents> ... <rdeCsv:csv name="contactStatuses"> <rdeCsv:fields> <csvContact:fId parent="true"/> <csvContact:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="137E13EC"> contactStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:contents> ...¶
The following is an example of the corresponding contactStatuses-YYYYMMDD.csv file. The file contains the statuses for the nine contact identifiers:¶
domain1admin,ok,, domain1tech,ok,, domain1billing,ok,, domain2admin,ok,, domain2tech,ok,, domain2billing,ok,, xnabc123admin,ok,, xnabc123tech,ok,, xnabc123billing,ok,,¶
The "contactPostal" CSV File Definition defines the fields and CSV file references used for the contact postal info object records.¶
The following "csvContact" field elements MUST be used in the "contactPostal" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvContact" field elements MAY be used in the "contactPostal" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvContact" fields, defined in the '"contact" CSV File Definition' (Section 5.3.2.1.1), MUST be used in the "contactPostal" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "contactPostal" <csvContact:contents> <rdeCsv:csv> element:¶
... <csvContact:contents> ... <rdeCsv:csv name="contactPostal"> <rdeCsv:fields> <csvContact:fId parent="true"/> <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="1456A89C"> contactPostal-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:contents> ...¶
The following is an example of the contactPostal-YYYYMMDD.csv file. The file contains nine contact postal records:¶
domain1admin,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US domain1tech,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US domain1billing,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US domain2admin,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US domain2tech,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US domain2billing,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US xnabc123admin,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US xnabc123tech,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US xnabc123billing,int,"John Doe","Example Inc.", "123 Example Dr.","Suite 100",,Reston,VA,20190,US¶
The "contactTransfer" CSV File Definition defines the fields and CSV file references 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 'CSV Common Field Elements' (Section 4.6.2.2), MUST be used in the "contactTransfer" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "contactTransfer" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvContact" fields, defined for the '"contact" CSV File Definition' (Section 5.3.2.1.1), MUST be used in the "contactTransfer" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "contactTransfer" <csvContact:contents> <rdeCsv:csv> element:¶
... <csvContact:contents> ... <rdeCsv:csv name="contactTransfer"> <rdeCsv:fields> <csvContact:fId parent="true"/> <rdeCsv:fTrStatus/> <rdeCsv:fReRr/> <rdeCsv:fReID/> <rdeCsv:fReDate/> <rdeCsv:fAcRr/> <rdeCsv:fAcID/> <rdeCsv:fAcDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="788D308E"> contactTransfer-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:contents> ...¶
The following is an example of the contactTransfer-YYYYMMDD.csv file. The file contains one contact transfer record in pending status:¶
xnabc123admin,clientApproved,registrarX,clientX, 2011-04-08T19:38:00.0Z,registrarY,clientY,2011-04-09T20:38:00.0Z¶
The "contactDisclose" CSV File Definition defines the fields and CSV file references used for the contact disclose object records.¶
The following "csvContact" field elements MAY be used in the "contactDisclose" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvContact" fields, defined for the '"contact" CSV File Definition' (Section 5.3.2.1.1), MUST be used in the "contactDisclose" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "contactDisclose" <csvContact:contents> <rdeCsv:csv> element:¶
... <csvContact:contents> ... <rdeCsv:csv name="contactDisclose"> <rdeCsv:fields> <csvContact:fId parent="true"/> <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="1141EFD4"> contactDisclose-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:contents> ...¶
The following is an example of the contactDisclose-YYYYMMDD.csv file. The file contains one disclosure records, disabling disclosure of voice, fax, and email:¶
xnabc123admin,0,0,0,0,0,0,0,1,1,1¶
The <csvContact:deletes> is used to hold the deleted contact objects in a Differential or Incremental Deposit. All the contact object data is deleted as part of a cascade delete. The <csvContact:deletes> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following section defines the supported contact deletes CSV file definition.¶
The following "csvContact" field elements MUST be used in the deletes "contact" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "contact" <csvContact:deletes> <rdeCsv:csv> element:¶
... <csvContact:deletes> ... <rdeCsv:csv name="contact"> <rdeCsv:fields> <csvContact:fId/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="0C4B70DC"> contact-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvContact:deletes> ...¶
The following is an example of the contact-delete-YYYYMMDD.csv file. The file contains six contact records:¶
domain1admin domain1tech domain1billing domain2admin domain2tech domain2billing¶
The registrar object represents the sponsoring client for other objects and is typically referred to as the sponsoring registrar. The registrar object supports both the XML model and the CSV model, defined in Section 2. The elements used for both models are defined in the following sections.¶
There are two elements used in the data escrow of the registrar objects for the XML model including the <rdeRegistrar:registrar> element, under the <rdeRegistrar:contents> element, and the <rdeRegistrar:delete> element, under the <rde:deletes> element.¶
An <rdeRegistrar:registrar> element substitutes for the <rdeRegistrar:abstractRegistrar> abstract element to create a concrete definition of a registrar. The <rdeRegistrar:abstractRegistrar> element can be replaced by other domain definitions using the XML schema substitution groups feature.¶
The <registrar> element contains the following child elements:¶
One or two OPTIONAL <postalInfo> elements that contain postal address information. Two elements are provided so that address information can be provided in both internationalized and localized forms; a "type" attribute is used to identify the two forms. If an internationalized form (type="int") is provided, element content MUST be represented in a subset of UTF-8 that can be represented in the 7-bit US-ASCII character set. If a localized form (type="loc") is provided, element content MAY be represented in unrestricted UTF-8. The <postalInfo> element contains the following child elements:¶
A <addr> element that contains address information associated with the registrar. The <addr> element contains the following child elements:¶
An OPTIONAL <whoisInfo> element that contains WHOIS information. The <whoisInfo> element contains the following child elements:¶
The following is an example of a <registrar> object:¶
... <rdeRegistrar:registrar> <rdeRegistrar:id>RegistrarX</rdeRegistrar:id> <rdeRegistrar:name>Registrar X</rdeRegistrar:name> <rdeRegistrar:gurid>8</rdeRegistrar:gurid> <rdeRegistrar:status>ok</rdeRegistrar:status> <rdeRegistrar:postalInfo type="int"> <rdeRegistrar:addr> <rdeRegistrar:street>123 Example Dr.</rdeRegistrar:street> <rdeRegistrar:street>Suite 100</rdeRegistrar:street> <rdeRegistrar:city>Dulles</rdeRegistrar:city> <rdeRegistrar:sp>VA</rdeRegistrar:sp> <rdeRegistrar:pc>20166-6503</rdeRegistrar:pc> <rdeRegistrar:cc>US</rdeRegistrar:cc> </rdeRegistrar:addr> </rdeRegistrar:postalInfo> <rdeRegistrar:voice x="1234">+1.7035555555</rdeRegistrar:voice> <rdeRegistrar:fax>+1.7035555556</rdeRegistrar:fax> <rdeRegistrar:email>[email protected]</rdeRegistrar:email> <rdeRegistrar:url>http://www.example.example</rdeRegistrar:url> <rdeRegistrar:whoisInfo> <rdeRegistrar:name>whois.example.example</rdeRegistrar:name> <rdeRegistrar:url>http://whois.example.example</rdeRegistrar:url> </rdeRegistrar:whoisInfo> <rdeRegistrar:crDate>2005-04-23T11:49:00.0Z</rdeRegistrar:crDate> <rdeRegistrar:upDate>2009-02-17T17:51:00.0Z</rdeRegistrar:upDate> </rdeRegistrar:registrar> ...¶
The <rdeRegistrar:delete> element contains the id of a registrar that was deleted.¶
The following is an example of <rdeRegistrar:delete> object:¶
... <rde:deletes> ... <rdeRegistrar:delete> <rdeRegistrar:id>agnt0001-TEST</rdeRegistrar:id> </rdeRegistrar:delete> ... </rde:deletes> ...¶
For the CSV model of the registrar object, the <csvRegistrar:contents> child element of the <rde:contents> element is used to hold the new or updated registrar objects for the deposit. The <csvRegistrar:deletes> child element of the <rde:deletes> element is used to hold the deleted or purged registrar objects for the deposit. Both the <csvRegistrar:contents> and <csvRegistrar:deletes> elements contain one or more <rdeCsv:csv> elements with a set of named CSV file definitions using the <rdeCsv:csv> "name" attribute.¶
Differential and Incremental Deposits are based on changes to the registrar objects. The updated registrar object data under the <csvContact:contents> element is a cascade replace down all of the registrar CSV files starting with the parent '"registrar" CSV File Definition' (Section 5.4.2.1.1). The child CSV file definitions include a <csvRegistrar:fId parent="true"> field. All the child CSV file definition data for the registrar objects in the parent '"registrar" CSV File Definition' (Section 5.4.2.1.1) MUST first be deleted and then set using the data in the child CSV files. The deleted registrar object data under the <csvRegistrar:deletes> element is a cascade delete starting from the '"registrar" Deletes CSV File Definition' (Section 5.4.2.2.1).¶
The <csvRegistrar:contents> is used to hold the new or updated registrar object information for the deposit. The <csvRegistrar:contents> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following sections include the supported registrar CSV file definitions.¶
The "registrar" CSV File Definition defines the fields and CSV file references used for the registrar object records.¶
The following "csvRegistrar" field elements MUST be used in the "registrar" <rdeCsv:csv> <rdeCsv:fields> element:¶
A choice of the following:¶
The following field elements MAY be used in the "registrar" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "registrar" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "csvContact" fields, defined in 'Contact Object' (Section 5.3), MAY be used in the "registrar" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "registrar" <csvRegistrar:contents> <rdeCsv:csv> element:¶
... <csvRegistrar:contents> ... <rdeCsv:csv name="registrar"> <rdeCsv:fields> <csvRegistrar:fId/> <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 isRequired="false"/> <rdeCsv:fUrl/> <csvRegistrar:fWhoisUrl/> <rdeCsv:fCrDate/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="57F6856F"> registrar-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvRegistrar:contents> ...¶
The following is an example of the registrar-YYYYMMDD.csv file. The file contains one registrar record:¶
registrarX,"Example Inc.",8,ok,"123 Example Dr.", "Suite 100",,Dulles,VA,20166-6503,US,+1.7035555555,1234, +1.7035555556,,[email protected],http://www.example.example, http://whois.example.example,2005-04-23T11:49:00.0Z, 2009-02-17T17:51:00.0Z¶
The <csvRegistrar:deletes> is used to hold the deleted registrar objects in a Differential or Incremental Deposit. All the registrar object data is deleted as part of a cascade delete. The <csvRegistrar:deletes> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following section defines the supported registrar deletes CSV file definition.¶
The following "csvRegistrar" field elements MUST be used in the deletes "registrar" <rdeCsv:csv> <rdeCsv:fields> element:¶
A choice of the following:¶
The following is an example of a "registrar" <csvRegistrar:deletes> <rdeCsv:csv> element:¶
... <csvRegistrar:deletes> ... <rdeCsv:csv name="registrar"> <rdeCsv:fields> <csvRegistrar:fId/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="5CB20A52"> registrar-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvRegistrar:deletes> ...¶
The following is an example of the registrar-delete-YYYYMMDD.csv file. The file contains one registrar record:¶
registrarZ¶
The Internationalized Domain Names (IDN) table reference object is a pseudo-object that is used to provide a short reference to the IDN table and policy used in IDN registrations. The IDN reference object supports both the XML and the CSV model, defined in 'Models' (Section 2). The elements used for both models are defined in the following sections.¶
There is one element used in the data escrow of the IDN table reference objects for the XML model, and that is the <rdeIDN:idnTableRef>, under the <rde:contents> element.¶
The <rdeIDN:idnTableRef> contains the following elements. An "id" attribute is used to specify an identifier for the IDN table.¶
The following is an example of <idnTableRef> object:¶
... <rdeIDN:idnTableRef id="pt-BR"> <rdeIDN:url> http://www.iana.org/domains/idn-tables/tables/br_pt-br_1.0.html </rdeIDN:url> <rdeIDN:urlPolicy> http://registro.br/dominio/regras.html </rdeIDN:urlPolicy> </rdeIDN:idnTableRef> ...¶
The IDN domain names, defined in Section 5.1, MAY have references to the IDN language identifier using the <rdeCsv:fIdnTableId> field element. The IDN table reference object defines the mapping of a language identifier to a language table URL. The language table URL defines the character code points that can be used for the language identifier. The elements used for the IDN table reference object are defined in this section. The <csvIDN:contents> child element of the <rde:contents> element is used to hold the new or updated IDN table reference objects for the deposit. The <csvIDN:deletes> child element of the <rde:deletes> element is used to hold the deleted or purged IDN table reference objects for the deposit. Both the <csvIDN:contents> and <csvIDN:deletes> elements contain one or more <rdeCsv:csv> elements with a set of named CSV file definitions using the <rdeCsv:csv> "name" attribute.¶
The <csvIDN:contents> is used to hold the new or updated IDN table reference object information for the deposit. The <csvIDN:contents> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following sections include the supported IDN table reference CSV file definitions.¶
The "idnLanguage" CSV File Definition defines the fields and CSV file references used for the IDN table reference object records.¶
The following "rdeCsv" fields, defined in Section 4.6.2.2, MUST be used in the "idnLanguage" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "idnLanguage" <csvIDN:contents> <rdeCsv:csv> element:¶
... <csvIDN:contents> ... <rdeCsv:csv name="idnLanguage" sep=","> <rdeCsv:fields> <rdeCsv:fIdnTableId isRequired="true"/> <rdeCsv:fUrl isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D6B0424F"> idnLanguage-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvIDN:contents> ...¶
The following is an example of the corresponding idnLanguage-YYYYMMDD.csv file. The file contains two IDN language records:¶
LANG-1, http://www.iana.org/domains/idn-tables/tables/test_tab1_1.1.txt LANG-2, http://www.iana.org/domains/idn-tables/tables/test_tab2_1.1.txt¶
The <csvIDN:deletes> is used to hold the deleted IDN table reference objects in a Differential or Incremental Deposit. The <csvIDN:deletes> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following section defines the supported IDN table reference deletes CSV file definition.¶
The following "idnLanguage" field elements MUST be used in the deletes "idnLanguage" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of a "idnLanguage" <csvIDN:deletes> <rdeCsv:csv> element:¶
... <csvIDN:deletes> ... <rdeCsv:csv name="idnLanguage"> <rdeCsv:fields> <rdeCsv:fIdnTableId isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="4A28A569"> idnLanguage-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvIDN:deletes> ...¶
The following is an example of the idnLanguage-delete-YYYYMMDD.csv file. The file contains one IDN language record:¶
LANG-2¶
An NNDN (NNDN's not domain name) can be used to store registry reserved names or (blocked, withheld, or mirrored) IDN variants.¶
Domain name registries may maintain domain names without their being persisted as domain objects in the registry system, for example, a list of reserved names not available for registration. The NNDN is a lightweight domain-like object that is used to escrow domain names not maintained as domain name objects.¶
A domain name can only exist as a domain name object or an NNDN object, but not both.¶
The NNDN object supports both the XML and the CSV model, defined in 'Models' (Section 2). The elements used for both models are defined in the following sections.¶
There are two elements used in the data escrow of the NNDN objects for the XML model including the <rdeNNDN:NNDN> element, under the <rde:contents> element, and the <rdeNNDN:delete> element, under the <rde:deletes> element.¶
An <rdeNNDN:NNDN> element substitutes for the <rdeNNDN:abstractNNDN> abstract element to create a concrete definition of an NNDN. The <rdeNNDN:abstractDomain> element can be replaced by other NNDN definitions using the XML schema substitution groups feature.¶
The <rdeNNDN:NNDN> element contains the following child elements:¶
A <nameState> element that indicates the state of the NNDN: blocked, withheld, or mirrored.¶
The following is an example of an <rdeNNDN:NNDN> object:¶
... <rdeNNDN:NNDN> <rdeNNDN:aName>xn--exampl-gva.example</rdeNNDN:aName> <rdeNNDN:idnTableId>pt-BR</rdeNNDN:idnTableId> <rdeNNDN:originalName>example.example</rdeNNDN:originalName> <rdeNNDN:nameState>withheld</rdeNNDN:nameState> <rdeNNDN:crDate>2005-04-23T11:49:00.0Z</rdeNNDN:crDate> </rdeNNDN:NNDN> ...¶
The <rdeNNDN:delete> element contains the NNDN that was deleted, i.e., the <aName>.¶
The following is an example of an <rdeNNDN::delete> object:¶
... <rde:deletes> ... <rdeNNDN:delete> <rdeNNDN:aName>xn--pingino-q2a.example</rdeNNDN:aName> </rdeNNDN:delete> ... </rde:deletes> ...¶
For the CSV model of the NNDN object, the <csvNNDN:contents> child element of the <rde:contents> element is used to hold the new or updated NNDN objects for the deposit. The <csvNNDN:deletes> child element of the <rde:deletes> element is used to hold the deleted or purged NNDN objects for the deposit. Both the <csvNNDN:contents> and <csvNNDN:deletes> elements contain one or more <rdeCsv:csv> elements with a set of named CSV file definitions using the <rdeCsv:csv> "name" attribute.¶
The <csvNNDN:contents> is used to hold the new or updated NNDN object information for the deposit. The <csvNNDN:contents> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following sections include the supported NNDN CSV file definitions.¶
The "NNDN" CSV File Definition defines the fields and CSV file references used for the NNDN object records.¶
The following "csvNNDN" field elements MUST be used in the "NNDN" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following field elements MAY be used in the "NNDN" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following "rdeCsv" fields, defined in 'CSV Common Field Elements' (Section 4.6.2.2), MAY be used in the "NNDN" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of an "NNDN" <csvNNDN:contents> <rdeCsv:csv> element:¶
... <csvNNDN:contents> ... <rdeCsv:csv name="NNDN" sep=","> <rdeCsv:fields> <csvNNDN:fAName/> <rdeCsv:fIdnTableId/> <csvNNDN:fOriginalName/> <csvNNDN:fNameState/> <csvNNDN:fMirroringNS/> <rdeCsv:fCrDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="085A7CE4"> NNDN-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvNNDN:contents> ...¶
The following is an example of the corresponding NNDN-YYYYMMDD.csv file. The file contains two NNDN records for an IDN with one blocked variant and one mirrored variant:¶
xn--bc456-3ve.example,LANG-1,xn--bc123-3ve.example, blocked,,2005-04-23T11:49:00.0Z xn--bc789-3ve.example,LANG-1,xn--bc123-3ve.example, mirrored,1,2005-04-23T11:49:00.0Z¶
The <csvNNDN:deletes> is used to hold the deleted NNDN objects in a Differential or Incremental Deposit. The <csvNNDN:deletes> is split into separate CSV file definitions using named <rdeCsv:csv> elements with the "name" attribute. The following section defines the supported NNDN deletes CSV file definition.¶
The following "NNDN" field elements MUST be used in the deletes "NNDN" <rdeCsv:csv> <rdeCsv:fields> element:¶
The following is an example of an "NNDN" <csvNNDN:deletes> <rdeCsv:csv> element:¶
... <csvNNDN:deletes> ... <rdeCsv:csv name="NNDN"> <rdeCsv:fields> <csvNNDN:fAName/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="A41F1D9B"> NNDN-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> ... </csvNNDN:deletes> ...¶
The following is an example of the corresponding NNDN-delete-YYYYMMDD.csv file. The file contains one NNDN records:¶
xn--bc456-3ve.example¶
The EPP parameters object is a pseudo-object that defines the set of object and object extension services supported by the registry, as defined in [RFC5730]. The EPP parameters object is only defined as XML but could be used in either the XML model or CSV model. The EPP parameters object is defined using the <rdeEppParams:eppParams> element. The EPP parameters object SHOULD be included if the registry supports EPP. A maximum of one EPP parameters object MUST exist at a certain point in time (Time Watermark).¶
The syntax and content of the <rdeEppParams:eppParams> children elements is as explained in Section 2.4 of [RFC5730]. The children of the <eppParams> are as follows:¶
The following is an example of <eppParams> element object:¶
... <rdeEppParams:eppParams> <rdeEppParams:version>1.0</rdeEppParams:version> <rdeEppParams:lang>en</rdeEppParams:lang> <rdeEppParams:objURI>urn:ietf:params:xml:ns:domain-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI>urn:ietf:params:xml:ns:contact-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI>urn:ietf:params:xml:ns:host-1.0 </rdeEppParams:objURI> <rdeEppParams:svcExtension> <epp:extURI>urn:ietf:params:xml:ns:rgp-1.0</epp:extURI> <epp:extURI>urn:ietf:params:xml:ns:secDNS-1.1</epp:extURI> </rdeEppParams:svcExtension> <rdeEppParams:dcp> <epp:access><epp:all/></epp:access> <epp:statement> <epp:purpose> <epp:admin/> <epp:prov/> </epp:purpose> <epp:recipient> <epp:ours/> <epp:public/> </epp:recipient> <epp:retention> <epp:stated/> </epp:retention> </epp:statement> </rdeEppParams:dcp> </rdeEppParams:eppParams> ...¶
The policy object is a pseudo-object that is used to specify which OPTIONAL elements from the XML model are REQUIRED based on the business model of the registry. For the CSV model, the OPTIONAL "isRequired" attribute of the <rdeCsv:field> elements, defined in Section 4.6.2.1, is used to specify which OPTIONAL fields are REQUIRED based on the business model of the registry.¶
The OPTIONAL <policy> contains the following attributes:¶
The following is an example of <rdePolicy:policy> object:¶
... <rdePolicy:policy scope="//rde:deposit/rde:contents/rdeDomain:domain" element="rdeDomain:registrant" /> ...¶
The header object is a pseudo-object that is used to specify the number of objects in the repository at a specific point in time (Timeline Watermark) regardless of the type of deposit: Differential, Full, or Incremental Deposit. The header object may also be used to provide additional information on the contents of the deposit. The header object is only defined as XML but one header object MUST always be present per escrow deposit regardless of using the XML model or CSV model. The header object is defined using the <rdeHeader:header> element.¶
The <rdeHeader:header> contains the following elements:¶
A choice of one of the elements defined in the "repositoryTypeGroup" group element that indicates the unique identifier for the repository being escrowed. Possible elements are:¶
A <count> element that contains the number of objects in the SRS at a specific point in time (Timeline Watermark) regardless of the type of deposit: Differential, Full, or Incremental. The <count> element supports the following attributes:¶
The following is an example of <rdeHeader:header> object referencing only the XML model objects:¶
... <rdeHeader:header> <rdeHeader:tld>test</rdeHeader:tld> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">2</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeContact-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeNNDN-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeEppParams-1.0">1 </rdeHeader:count> </rdeHeader:header> ...¶
The following is an example of an <rdeHeader:header> object referencing the CSV and XML model objects:¶
... <rdeHeader:header> <rdeHeader:tld>test</rdeHeader:tld> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvDomain-1.0">2</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvHost-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvContact-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvRegistrar-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvIDN-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvNNDN-1.0">1</rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeEppParams-1.0">1 </rdeHeader:count> </rdeHeader:header> ...¶
The DNRD common objects collection contains data structures referenced by two or more of the main objects in the XML model.¶
Depending on the registration policy of the registry, for a domain name there may be multiple variant names. See [variantTLDsReport] for further details on IDN variants.¶
A registry could choose to escrow IDN variants as domains or NNDN objects. A specific IDN variant can be represented in the escrow deposit, as a domain or as an NNDN object, but not both.¶
If using domain objects to represent IDN variants, the normal behavior during restoration of an SRS based on an escrow deposit is to restore the IDN variants as a mirrored variant. If the registration data of the IDN variant is different from the original name, the details of this specific implementation MUST be described in the IDN policy document.¶
An NNDN or a domain name are explicit representations of an IDN variant while an IDN variant that is computed based on an algorithm is an implicit representation. Explicit representation of an IDN variant takes precedence over an implicit representation.¶
Different business models of registries exist, therefore the registry is responsible for defining a profile that matches its particular business model. The profile mechanism allows a registry to extend this specification.¶
A profile is the process of the following:¶
Extending base objects with the mechanisms defined for XML and CSV models.¶
A data escrow agent SHOULD perform an extended verification process that starts by creating a dataset to be tested by following Section 5.2 of [RFC8909].¶
The following are the minimum suggested tests on the dataset:¶
Validate the escrow deposits using the definition agreed with the registry.¶
This standard is specified in XML Schema notation. The formal syntax presented here is a complete schema representation suitable for automated validation.¶
The <CODE BEGINS> and <CODE ENDS> tags are not part of the schema; they are used to note the beginning and ending of the schema for URI registration purposes.¶
<CODE BEGINS> <?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" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <annotation> <documentation> Registry Data Escrow Comma-Separated Values (CSV) </documentation> </annotation> <!-- csv content element --> <element name="csv" type="rdeCsv:csvType" /> <!-- Definition of CSV file --> <complexType name="csvType"> <sequence> <element name="fields" type="rdeCsv:fieldsType" /> <element name="files" type="rdeCsv:filesType" /> </sequence> <attribute name="name" type="token" use="required" /> <attribute name="sep" type="rdeCsv:sepType" default="," /> </complexType> <!-- field separator must be a single character --> <simpleType name="sepType"> <restriction base="string"> <minLength value="1" /> <maxLength value="1" /> </restriction> </simpleType> <!-- Abstract field type --> <element name="field" type="rdeCsv:fieldType" abstract="true" /> <complexType name="fieldType"> <sequence /> </complexType> <!-- fieldType with optional value (isRequired=false) --> <complexType name="fieldOptionalType"> <complexContent> <extension base="rdeCsv:fieldType"> <sequence /> <attribute name="isRequired" type="boolean" default="false" /> <attribute name="parent" type="boolean" default="false" /> </extension> </complexContent> </complexType> <!-- fieldType with required value (isRequired=false) --> <complexType name="fieldRequiredType"> <complexContent> <extension base="rdeCsv:fieldType"> <sequence /> <attribute name="isRequired" type="boolean" default="true" /> <attribute name="parent" type="boolean" default="false" /> </extension> </complexContent> </complexType> <!-- Concrete field types --> <!-- UTF-8 Name field (e.g., domain name) --> <element name="fUName" type="rdeCsv:fNameType" substitutionGroup="rdeCsv:field" /> <complexType name="fNameType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="eppcom\:labelType" /> </extension> </complexContent> </complexType> <complexType name="fNameRequiredType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <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:fieldRequiredType"> <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:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="eppcom\:clIDType" /> </extension> </complexContent> </complexType> <!-- Object Status Description --> <element name="fStatusDescription" type="rdeCsv:fNormalizedStringType" substitutionGroup="rdeCsv:field" /> <!-- clID fields (fClID, fCrID, fUpID) --> <!-- Identifier of the client that sponsors the object --> <element name="fClID" type="rdeCsv:fClIDRequiredType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of registrar of client that created the object --> <element name="fCrRr" type="rdeCsv:fClIDType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of the client that created the object --> <element name="fCrID" type="rdeCsv:fClIDType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of registrar of client that updated the object --> <element name="fUpRr" type="rdeCsv:fClIDType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of the client that updated the object --> <element name="fUpID" type="rdeCsv:fClIDType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of registrar of client that requested the transfer --> <element name="fReRr" type="rdeCsv:fClIDRequiredType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of the client that requested the transfer --> <element name="fReID" type="rdeCsv:fClIDType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of registrar client that should take or took action --> <element name="fAcRr" type="rdeCsv:fClIDRequiredType" substitutionGroup="rdeCsv:field" /> <!-- Identifier of the client that should take or took action --> <element name="fAcID" type="rdeCsv:fClIDType" substitutionGroup="rdeCsv:field" /> <complexType name="fClIDType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="eppcom\:clIDType" /> </extension> </complexContent> </complexType> <complexType name="fClIDRequiredType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <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:fRequiredDateTimeType" substitutionGroup="rdeCsv:field" /> <!-- Date and time of a required or completed response --> <element name="fAcDate" type="rdeCsv:fRequiredDateTimeType" substitutionGroup="rdeCsv:field" /> <element name="fTrDate" type="rdeCsv:fDateTimeType" substitutionGroup="rdeCsv:field" /> <complexType name="fDateTimeType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="dateTime" /> </extension> </complexContent> </complexType> <complexType name="fRequiredDateTimeType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="dateTime" /> </extension> </complexContent> </complexType> <!-- boolean type --> <complexType name="fBooleanType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="boolean" /> </extension> </complexContent> </complexType> <complexType name="fRequiredBooleanType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="boolean" /> </extension> </complexContent> </complexType> <!-- unsignedByte type --> <complexType name="fUnsignedByteType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="unsignedByte" /> </extension> </complexContent> </complexType> <complexType name="fRequiredUnsignedByteType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="unsignedByte" /> </extension> </complexContent> </complexType> <!-- unsignedShort type --> <complexType name="fUnsignedShortType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="unsignedShort" /> </extension> </complexContent> </complexType> <complexType name="fRequiredUnsignedShortType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="unsignedShort" /> </extension> </complexContent> </complexType> <!-- hexBinary type --> <complexType name="fHexBinaryType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="hexBinary" /> </extension> </complexContent> </complexType> <complexType name="fRequiredHexBinaryType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="hexBinary" /> </extension> </complexContent> </complexType> <!-- language type --> <element name="fLang" type="rdeCsv:fLangType" substitutionGroup="rdeCsv:field" /> <complexType name="fLangType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="language" /> </extension> </complexContent> </complexType> <!-- IDN Table Identifier --> <element name="fIdnTableId" type="rdeCsv:fTokenType" substitutionGroup="rdeCsv:field" /> <!-- State of the most recent transfer request --> <element name="fTrStatus" type="rdeCsv:fTrStatusType" substitutionGroup="rdeCsv:field" /> <complexType name="fTrStatusType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="eppcom\:trStatusType" /> </extension> </complexContent> </complexType> <!-- General token type --> <complexType name="fTokenType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="token" /> </extension> </complexContent> </complexType> <!-- General normalizedString type --> <complexType name="fNormalizedStringType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="normalizedString" /> </extension> </complexContent> </complexType> <!-- positive integer type --> <complexType name="fPositiveIntegerType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="positiveInteger" /> </extension> </complexContent> </complexType> <!-- Custom / extension field type --> <element name="fCustom" type="rdeCsv:fCustomType" substitutionGroup="rdeCsv:field" /> <complexType name="fCustomType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <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" /> <attribute name="cksumAlg" type="token" default="CRC32" /> </extension> </simpleContent> </complexType> <!-- URL fields --> <element name="fUrl" type="rdeCsv:anyURIType" substitutionGroup="rdeCsv:field" /> <complexType name="anyURIType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="anyURI" /> </extension> </complexContent> </complexType> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeDomain-1.0" xmlns:rdeDomain="urn:ietf:params:xml:ns:rdeDomain-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeIDN="urn:ietf:params:xml:ns:rdeIDN-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:rdeDnrdCommon="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:domain-1.0" /> <import namespace="urn:ietf:params:xml:ns:secDNS-1.1" /> <import namespace="urn:ietf:params:xml:ns:rgp-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeIDN-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" /> <annotation> <documentation> Registry Data Escrow Domain provisioning schema </documentation> </annotation> <element name="abstractDomain" type="rdeDomain:abstractContentType" substitutionGroup="rde:content" abstract="true" /> <element name="domain" substitutionGroup="rdeDomain:abstractDomain" /> <element name="delete" type="rdeDomain:deleteType" substitutionGroup="rde:delete" /> <!-- Content Type --> <complexType name="abstractContentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="name" type="eppcom:labelType" /> <element name="roid" type="eppcom:roidType" /> <element name="uName" type="eppcom:labelType" minOccurs="0" /> <element name="idnTableId" type="rdeIDN:idType" minOccurs="0" /> <element name="originalName" type="eppcom:labelType" minOccurs="0" /> <element name="status" type="domain:statusType" maxOccurs="11" /> <element name="rgpStatus" type="rgp:statusType" minOccurs="0" maxOccurs="unbounded" /> <element name="registrant" type="eppcom:clIDType" minOccurs="0" /> <element name="contact" type="domain:contactType" minOccurs="0" maxOccurs="unbounded" /> <element name="ns" type="domain:nsType" minOccurs="0" /> <element name="clID" type="eppcom:clIDType" /> <element name="crRr" type="rdeDnrdCommon:rrType" minOccurs="0" /> <element name="crDate" type="dateTime" minOccurs="0" /> <element name="exDate" type="dateTime" minOccurs="0" /> <element name="upRr" type="rdeDnrdCommon:rrType" minOccurs="0" /> <element name="upDate" type="dateTime" minOccurs="0" /> <element name="secDNS" type="secDNS:dsOrKeyType" minOccurs="0" /> <element name="trDate" type="dateTime" minOccurs="0" /> <element name="trnData" type="rdeDomain:transferDataType" minOccurs="0" /> </sequence> </extension> </complexContent> </complexType> <complexType name="transferDataType"> <sequence> <element name="trStatus" type="eppcom:trStatusType" /> <element name="reRr" type="rdeDnrdCommon:rrType" /> <element name="reDate" type="dateTime" /> <element name="acRr" type="rdeDnrdCommon:rrType" /> <element name="acDate" type="dateTime" /> <element name="exDate" type="dateTime" minOccurs="0" /> </sequence> </complexType> <!-- Delete Type --> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element name="name" type="eppcom:labelType" minOccurs="0" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?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" /> <import namespace="urn:ietf:params:xml:ns:domain-1.0" /> <import namespace="urn:ietf:params:xml:ns:secDNS-1.1" /> <import namespace="urn:ietf:params:xml:ns:rgp-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0" /> <annotation> <documentation> Domain Name Comma-Separated Values (CSV) Object </documentation> </annotation> <!-- Child elements of the <rde:contents> object --> <element name="contents" type="csvDomain:contentType" substitutionGroup="rde:content" /> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Child elements of the <rde:deletes> object --> <element name="deletes" type="csvDomain:deleteType" substitutionGroup="rde:delete" /> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Domain name field --> <element name="fName" type="rdeCsv:fNameRequiredType" substitutionGroup="rdeCsv:field" /> <!-- RGP status field --> <element name="fRgpStatus" type="csvDomain:fRgpStatusType" substitutionGroup="rdeCsv:field" /> <complexType name="fRgpStatusType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="rgp\:statusValueType" /> </extension> </complexContent> </complexType> <!-- Contact type field --> <element name="fContactType" type="csvDomain:fContactsTypeType" substitutionGroup="rdeCsv:field" /> <complexType name="fContactsTypeType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="domain\:contactAttrType" /> </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:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="secDNS\:maxSigLifeType" /> </extension> </complexContent> </complexType> <!-- Key tag field --> <element name="fKeyTag" type="rdeCsv:fRequiredUnsignedShortType" substitutionGroup="rdeCsv:field" /> <!-- DS Algorithm field --> <element name="fDsAlg" type="rdeCsv:fRequiredUnsignedByteType" substitutionGroup="rdeCsv:field" /> <!-- Digest type field --> <element name="fDigestType" type="rdeCsv:fRequiredUnsignedByteType" substitutionGroup="rdeCsv:field" /> <!-- Digest field --> <element name="fDigest" type="rdeCsv:fRequiredHexBinaryType" substitutionGroup="rdeCsv:field" /> <!-- Flags field --> <element name="fFlags" type="rdeCsv:fRequiredUnsignedShortType" substitutionGroup="rdeCsv:field" /> <!-- Protocol field --> <element name="fProtocol" type="rdeCsv:fRequiredUnsignedByteType" substitutionGroup="rdeCsv:field" /> <!-- Key Algorithm field --> <element name="fKeyAlg" type="rdeCsv:fRequiredUnsignedByteType" substitutionGroup="rdeCsv:field" /> <!-- Public Key field --> <element name="fPubKey" type="csvDomain:fPubKeyType" substitutionGroup="rdeCsv:field" /> <complexType name="fPubKeyType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="secDNS\:keyType" /> </extension> </complexContent> </complexType> <!-- Original Domain Name for Variant field --> <element name="fOriginalName" type="rdeCsv:fNameType" substitutionGroup="rdeCsv:field" /> <!-- Domain status field --> <element name="fStatus" type="csvDomain:fStatusType" substitutionGroup="rdeCsv:field" /> <!-- Domain status based on domain-1.0.xsd --> <complexType name="fStatusType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="domain\:statusValueType" /> </extension> </complexContent> </complexType> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeHost-1.0" xmlns:rdeHost="urn:ietf:params:xml:ns:rdeHost-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:host="urn:ietf:params:xml:ns:host-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns:rdeDnrdCommon="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:host-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" /> <annotation> <documentation> Registry Data Escrow Host provisioning schema </documentation> </annotation> <element name="abstractHost" type="rdeHost:abstractContentType" substitutionGroup="rde:content" abstract="true" /> <element name="host" substitutionGroup="rdeHost:abstractHost" /> <element name="delete" type="rdeHost:deleteType" substitutionGroup="rde:delete" /> <!-- Content Type --> <complexType name="abstractContentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="name" type="eppcom:labelType" /> <element name="roid" type="eppcom:roidType" /> <element name="status" type="host:statusType" maxOccurs="7" /> <element name="addr" type="host:addrType" minOccurs="0" maxOccurs="unbounded" /> <element name="clID" type="eppcom:clIDType" /> <element name="crRr" type="rdeDnrdCommon:rrType" minOccurs="0" /> <element name="crDate" type="dateTime" minOccurs="0" /> <element name="upRr" type="rdeDnrdCommon:rrType" minOccurs="0" /> <element name="upDate" type="dateTime" minOccurs="0" /> <element name="trDate" type="dateTime" minOccurs="0" /> </sequence> </extension> </complexContent> </complexType> <!-- Delete Type --> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <choice minOccurs="0" maxOccurs="unbounded"> <element name="name" type="eppcom:labelType" /> <element name="roid" type="eppcom:roidType" /> </choice> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?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" /> <import namespace="urn:ietf:params:xml:ns:host-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0" /> <annotation> <documentation> Host Comma-Separated Values (CSV) Object </documentation> </annotation> <!-- Child elements of the <rde:contents> object --> <element name="contents" type="csvHost:contentType" substitutionGroup="rde:content" /> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Child elements of the <rde:deletes> object --> <element name="deletes" type="csvHost:deleteType" substitutionGroup="rde:delete" /> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Host name field --> <element name="fName" type="rdeCsv:fNameRequiredType" substitutionGroup="rdeCsv:field" /> <!-- IP address field --> <element name="fAddr" type="csvHost:fAddrType" substitutionGroup="rdeCsv:field" /> <complexType name="fAddrType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="host\:addrStringType" /> </extension> </complexContent> </complexType> <!-- IP address version field --> <element name="fAddrVersion" type="csvHost:fAddrVersionType" substitutionGroup="rdeCsv:field" /> <complexType name="fAddrVersionType"> <complexContent> <extension base="rdeCsv:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="host\:ipType" /> </extension> </complexContent> </complexType> <!-- Host status field --> <element name="fStatus" type="csvHost:fStatusType" substitutionGroup="rdeCsv:field" /> <!-- Host status based on host-1.0.xsd --> <complexType name="fStatusType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="host\:statusValueType" /> </extension> </complexContent> </complexType> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeContact-1.0" xmlns:rdeContact="urn:ietf:params:xml:ns:rdeContact-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns:rdeDnrdCommon="urn:ietf:params:xml:ns:rdeDnrdCommon-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" /> <import namespace="urn:ietf:params:xml:ns:contact-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" /> <annotation> <documentation> Registry Data Escrow contact provisioning schema </documentation> </annotation> <element name="abstractContact" type="rdeContact:abstractContentType" substitutionGroup="rde:content" abstract="true" /> <element name="contact" substitutionGroup="rdeContact:abstractContact" /> <element name="delete" type="rdeContact:deleteType" substitutionGroup="rde:delete" /> <!-- Contact Type --> <complexType name="abstractContentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="id" type="eppcom:clIDType" /> <element name="roid" type="eppcom:roidType" /> <element name="status" type="contact:statusType" maxOccurs="7" /> <element name="postalInfo" type="contact:postalInfoType" maxOccurs="2" /> <element name="voice" type="contact:e164Type" minOccurs="0" /> <element name="fax" type="contact:e164Type" minOccurs="0" /> <element name="email" type="eppcom:minTokenType" /> <element name="clID" type="eppcom:clIDType" /> <element name="crRr" type="rdeDnrdCommon:rrType" minOccurs="0" /> <element name="crDate" type="dateTime" minOccurs="0" /> <element name="upRr" type="rdeDnrdCommon:rrType" minOccurs="0" /> <element name="upDate" type="dateTime" minOccurs="0" /> <element name="trDate" type="dateTime" minOccurs="0" /> <element name="trnData" type="rdeContact:transferDataType" minOccurs="0" /> <element name="disclose" type="contact:discloseType" minOccurs="0" /> </sequence> </extension> </complexContent> </complexType> <complexType name="transferDataType"> <sequence> <element name="trStatus" type="eppcom:trStatusType" /> <element name="reRr" type="rdeDnrdCommon:rrType" /> <element name="reDate" type="dateTime" /> <element name="acRr" type="rdeDnrdCommon:rrType" /> <element name="acDate" type="dateTime" /> </sequence> </complexType> <!-- Delete Type --> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element name="id" type="eppcom:clIDType" minOccurs="0" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?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" /> <import namespace="urn:ietf:params:xml:ns:contact-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0" /> <annotation> <documentation> Contact Comma-Separated Values (CSV) Object </documentation> </annotation> <!-- Child elements of the <rde:contents> object --> <element name="contents" type="csvContact:contentType" substitutionGroup="rde:content" /> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Child elements of the <rde:deletes> object --> <element name="deletes" type="csvContact:deleteType" substitutionGroup="rde:delete" /> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Server-unique contact identifier field --> <element name="fId" type="csvContact:fIdType" substitutionGroup="rdeCsv:field" /> <complexType name="fIdType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="eppcom\:clIDType" /> </extension> </complexContent> </complexType> <!-- Is Registrar Contact field --> <element name="fIsRegistrarContact" type="rdeCsv:fBooleanType" substitutionGroup="rdeCsv:field" /> <!-- 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:fieldOptionalType"> <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:fieldRequiredType"> <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:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="contact\:postalInfoEnumType" /> </extension> </complexContent> </complexType> <!-- Standard postal line field --> <complexType name="fPostalLineType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <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:fieldOptionalType"> <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:fOptPostalLineType"> <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:fieldOptionalType"> <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:fieldRequiredType"> <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:fieldOptionalType"> <sequence /> <attribute name="type" type="token" default="boolean" /> </extension> </complexContent> </complexType> <!-- Contact status field --> <element name="fStatus" type="csvContact:fStatusType" substitutionGroup="rdeCsv:field" /> <!-- Host status based on contact-1.0.xsd --> <complexType name="fStatusType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="contact\:statusValueType" /> </extension> </complexContent> </complexType> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeRegistrar-1.0" xmlns:rdeRegistrar="urn:ietf:params:xml:ns:rdeRegistrar-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <!-- Import common element types. --> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:domain-1.0" /> <import namespace="urn:ietf:params:xml:ns:contact-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <annotation> <documentation> Registry Data Escrow registrar provisioning schema </documentation> </annotation> <element name="abstractRegistrar" type="rdeRegistrar:abstractContentType" substitutionGroup="rde:content" abstract="true" /> <element name="registrar" substitutionGroup="rdeRegistrar:abstractRegistrar" /> <element name="delete" type="rdeRegistrar:deleteType" substitutionGroup="rde:delete" /> <!-- Content Type --> <complexType name="abstractContentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="id" type="eppcom:clIDType" /> <element name="name" type="rdeRegistrar:nameType" /> <element name="gurid" type="positiveInteger" minOccurs="0" /> <element name="status" type="rdeRegistrar:statusType" minOccurs="0" /> <element name="postalInfo" type="rdeRegistrar:postalInfoType" minOccurs="0" maxOccurs="2" /> <element name="voice" type="contact:e164Type" minOccurs="0" /> <element name="fax" type="contact:e164Type" minOccurs="0" /> <element name="email" type="eppcom:minTokenType" minOccurs="0" /> <element name="url" type="anyURI" minOccurs="0" /> <element name="whoisInfo" type="rdeRegistrar:whoisInfoType" minOccurs="0" /> <element name="crDate" type="dateTime" minOccurs="0" /> <element name="upDate" type="dateTime" minOccurs="0" /> </sequence> </extension> </complexContent> </complexType> <simpleType name="nameType"> <restriction base="normalizedString"> <minLength value="1" /> <maxLength value="255" /> </restriction> </simpleType> <simpleType name="statusType"> <restriction base="token"> <enumeration value="ok" /> <enumeration value="readonly" /> <enumeration value="terminated" /> </restriction> </simpleType> <complexType name="postalInfoType"> <sequence> <element name="addr" type="rdeRegistrar:addrType" /> </sequence> <attribute name="type" type="rdeRegistrar:postalInfoEnumType" use="required" /> </complexType> <simpleType name="postalInfoEnumType"> <restriction base="token"> <enumeration value="loc" /> <enumeration value="int" /> </restriction> </simpleType> <complexType name="addrType"> <sequence> <element name="street" type="rdeRegistrar:optPostalLineType" minOccurs="0" maxOccurs="3" /> <element name="city" type="rdeRegistrar:postalLineType" /> <element name="sp" type="rdeRegistrar:optPostalLineType" minOccurs="0" /> <element name="pc" type="rdeRegistrar:pcType" minOccurs="0" /> <element name="cc" type="rdeRegistrar:ccType" /> </sequence> </complexType> <simpleType name="postalLineType"> <restriction base="normalizedString"> <minLength value="1" /> <maxLength value="255" /> </restriction> </simpleType> <simpleType name="optPostalLineType"> <restriction base="normalizedString"> <maxLength value="255" /> </restriction> </simpleType> <simpleType name="pcType"> <restriction base="token"> <maxLength value="16" /> </restriction> </simpleType> <simpleType name="ccType"> <restriction base="token"> <length value="2" /> </restriction> </simpleType> <complexType name="whoisInfoType"> <sequence> <element name="name" type="eppcom:labelType" minOccurs="0" /> <element name="url" type="anyURI" minOccurs="0" /> </sequence> </complexType> <!-- Delete Type --> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element name="id" type="eppcom:clIDType" minOccurs="0" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?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" /> <import namespace="urn:ietf:params:xml:ns:domain-1.0" /> <import namespace="urn:ietf:params:xml:ns:contact-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0" /> <annotation> <documentation> Registrar Comma-Separated Values (CSV) Object </documentation> </annotation> <!-- Child elements of the <rde:contents> object --> <element name="contents" type="csvRegistrar:contentType" substitutionGroup="rde:content" /> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Child elements of the <rde:deletes> object --> <element name="deletes" type="csvRegistrar:deleteType" substitutionGroup="rde:delete" /> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Registrar unique identifier (short name / id) --> <element name="fId" type="rdeCsv:fClIDRequiredType" 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:fieldRequiredType"> <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:fieldOptionalType"> <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="readonly" /> <enumeration value="terminated" /> </restriction> </simpleType> <!-- Whois URL field --> <element name="fWhoisUrl" type="rdeCsv:anyURIType" substitutionGroup="rdeCsv:field" /> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeIDN-1.0" xmlns:rdeIDN="urn:ietf:params:xml:ns:rdeIDN-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <annotation> <documentation> Registry Data Escrow IDN provisioning schema </documentation> </annotation> <element name="idnTableRef" type="rdeIDN:contentType" substitutionGroup="rde:content" /> <element name="delete" type="rdeIDN:deleteType" substitutionGroup="rde:delete" /> <!-- Content Types --> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="url" type="anyURI" /> <element name="urlPolicy" type="anyURI" /> </sequence> <attribute name="id" type="rdeIDN:idType" use="required" /> </extension> </complexContent> </complexType> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element name="id" type="rdeIDN:idType" /> </sequence> </extension> </complexContent> </complexType> <!-- Simple Types --> <simpleType name="idType"> <restriction base="token"> <minLength value="1" /> <maxLength value="64" /> </restriction> </simpleType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?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:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-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" /> <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0" /> <annotation> <documentation> IDN Language Comma-Separated Values (CSV) Object </documentation> </annotation> <!-- Child elements of the <rde:contents> object --> <element name="contents" type="csvIDN:contentType" substitutionGroup="rde:content" /> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Child elements of the <rde:deletes> object --> <element name="deletes" type="csvIDN:deleteType" substitutionGroup="rde:delete" /> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeEppParams-1.0" xmlns:rdeEppParams="urn:ietf:params:xml:ns:rdeEppParams-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <import namespace="urn:ietf:params:xml:ns:epp-1.0" /> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <annotation> <documentation> Registry Data Escrow EPP Parameters schema </documentation> </annotation> <!-- Content Type --> <element name="eppParams" substitutionGroup="rdeEppParams:abstractEppParams" /> <!-- Abstract Content Type --> <element name="abstractEppParams" type="rdeEppParams:abstractContentType" substitutionGroup="rde:content" abstract="true" /> <complexType name="abstractContentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="version" type="epp:versionType" maxOccurs="unbounded" /> <element name="lang" type="language" maxOccurs="unbounded" /> <element name="objURI" type="anyURI" maxOccurs="unbounded" /> <element name="svcExtension" type="epp:extURIType" minOccurs="0" /> <element name="dcp" type="epp:dcpType" /> </sequence> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeNNDN-1.0" xmlns:rdeNNDN="urn:ietf:params:xml:ns:rdeNNDN-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeIDN="urn:ietf:params:xml:ns:rdeIDN-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeIDN-1.0" /> <annotation> <documentation> Registry Data Escrow NNDN provisioning schema </documentation> </annotation> <element name="abstractNNDN" type="rdeNNDN:abstractContentType" substitutionGroup="rde:content" abstract="true" /> <element name="NNDN" substitutionGroup="rdeNNDN:abstractNNDN" /> <element name="delete" type="rdeNNDN:deleteType" substitutionGroup="rde:delete" /> <!-- Content Type --> <complexType name="abstractContentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element name="aName" type="eppcom:labelType" /> <element name="uName" type="eppcom:labelType" minOccurs="0" /> <element name="idnTableId" type="rdeIDN:idType" minOccurs="0" /> <element name="originalName" type="eppcom:labelType" minOccurs="0" /> <element name="nameState" type="rdeNNDN:nameState" /> <element name="crDate" type="dateTime" minOccurs="0" /> </sequence> </extension> </complexContent> </complexType> <simpleType name="nameStateValue"> <restriction base="token"> <enumeration value="withheld" /> <enumeration value="blocked" /> <enumeration value="mirrored" /> </restriction> </simpleType> <complexType name="nameState"> <simpleContent> <extension base="rdeNNDN:nameStateValue"> <attribute name="mirroringNS" type="boolean" default="true" /> </extension> </simpleContent> </complexType> <!-- Delete Type --> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element name="aName" type="eppcom:labelType" minOccurs="0" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:csvNNDN-1.0" xmlns:csvNNDN="urn:ietf:params:xml:ns:csvNNDN-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-1.0" xmlns:rdeNNDN="urn:ietf:params:xml:ns:rdeNNDN-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" /> <import namespace="urn:ietf:params:xml:ns:rdeCsv-1.0" /> <import namespace="urn:ietf:params:xml:ns:rdeNNDN-1.0" /> <annotation> <documentation> NNDN (NNDN's not domain name) (CSV) Object </documentation> </annotation> <!-- Child elements of the <rde:contents> object --> <element name="contents" type="csvNNDN:contentType" substitutionGroup="rde:content" /> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- Child elements of the <rde:deletes> object --> <element name="deletes" type="csvNNDN:deleteType" substitutionGroup="rde:delete" /> <complexType name="deleteType"> <complexContent> <extension base="rde:deleteType"> <sequence> <element ref="rdeCsv:csv" maxOccurs="unbounded" /> </sequence> </extension> </complexContent> </complexType> <!-- A-Label format name field --> <element name="fAName" type="rdeCsv:fNameRequiredType" substitutionGroup="rdeCsv:field" /> <!-- domain name used to generate the IDN variant field --> <element name="fOriginalName" type="rdeCsv:fNameType" substitutionGroup="rdeCsv:field" /> <!-- RGP status field --> <element name="fNameState" type="csvNNDN:fNameStateType" substitutionGroup="rdeCsv:field" /> <complexType name="fNameStateType"> <complexContent> <extension base="rdeCsv:fieldRequiredType"> <sequence /> <attribute name="type" type="token" default="rdeNNDN\:nameState" /> </extension> </complexContent> </complexType> <!-- Mirroring uses NS mirror mechanism? --> <element name="fMirroringNS" type="rdeCsv:fBooleanType" substitutionGroup="rdeCsv:field" /> <!-- End of schema. --> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdePolicy-1.0" xmlns:rdePolicy="urn:ietf:params:xml:ns:rdePolicy-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <annotation> <documentation> Registry Data Escrow Policy schema </documentation> </annotation> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <element name="policy" type="rdePolicy:policyType" substitutionGroup="rde:content" /> <complexType name="policyType"> <complexContent> <extension base="rde:contentType"> <attribute name="scope" type="token" use="required" /> <attribute name="element" type="anyURI" use="required" /> </extension> </complexContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeHeader-1.0" xmlns:rdeHeader="urn:ietf:params:xml:ns:rdeHeader-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 namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <import namespace="urn:ietf:params:xml:ns:rde-1.0" /> <annotation> <documentation> Data Escrow Deposit Header schema </documentation> </annotation> <!-- Root Element --> <element name="header" type="rdeHeader:contentType" substitutionGroup="rde:content" /> <!-- Content Type --> <complexType name="contentType"> <complexContent> <extension base="rde:contentType"> <sequence> <group ref="rdeHeader:repositoryTypeGroup" /> <element name="count" type="rdeHeader:countType" maxOccurs="unbounded" /> <element name="contentTag" type="token" minOccurs="0" /> </sequence> </extension> </complexContent> </complexType> <group name="repositoryTypeGroup"> <choice> <element name="tld" type="eppcom:labelType" /> <element name="registrar" type="positiveInteger" /> <element name="ppsp" type="token" /> <element name="reseller" type="token" /> </choice> </group> <complexType name="countType"> <simpleContent> <extension base="long"> <attribute name="uri" type="anyURI" use="required" /> <attribute name="rcdn" type="eppcom:labelType" /> <attribute name="registrarId" type="positiveInteger" /> </extension> </simpleContent> </complexType> </schema> <CODE ENDS>¶
<CODE BEGINS> <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" xmlns:rdeDnrdCommon="urn:ietf:params:xml:ns:rdeDnrdCommon-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" /> <annotation> <documentation> Data Escrow Deposit Common Objects schema </documentation> </annotation> <complexType name="rrType"> <simpleContent> <extension base="eppcom:clIDType"> <attribute name="client" type="eppcom:clIDType" /> </extension> </simpleContent> </complexType> </schema> <CODE ENDS>¶
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, the use of UTF-8 is RECOMMENDED.¶
This document uses URNs to describe XML namespaces and XML schemas conforming to a registry mechanism described in [RFC3688]. The following URIs have been assigned by IANA.¶
RDE CSV namespace:¶
RDE CSV XML schema:¶
See Section 9.1 of this document.¶
RDE domain namespace:¶
RDE domain XML schema:¶
See Section 9.2 of this document.¶
CSV domain namespace:¶
CSV domain XML schema:¶
See Section 9.3 of this document.¶
RDE host namespace:¶
RDE host XML schema:¶
See Section 9.4 of this document.¶
CSV host namespace:¶
CSV host XML schema:¶
See Section 9.5 of this document.¶
RDE contact namespace:¶
RDE contact XML schema:¶
See Section 9.6 of this document.¶
CSV contact namespace:¶
CSV contact XML schema:¶
See Section 9.7 of this document.¶
RDE registrar namespace:¶
RDE registrar XML schema:¶
See Section 9.8 of this document.¶
CSV registrar namespace:¶
CSV registrar XML schema:¶
See Section 9.9 of this document.¶
RDE IDN namespace:¶
RDE IDN XML schema:¶
See Section 9.10 of this document.¶
CSV IDN namespace:¶
CSV IDN XML schema:¶
See Section 9.11 of this document.¶
RDE EPP parameters namespace:¶
RDE EPP parameters XML schema:¶
See Section 9.12 of this document.¶
RDE NNDN namespace:¶
RDE NNDN XML schema:¶
See Section 9.13 of this document.¶
CSV NNDN namespace:¶
CSV NNDN XML schema:¶
See Section 9.14 of this document.¶
RDE Policy namespace:¶
RDE Policy XML schema:¶
See Section 9.15 of this document.¶
RDE Header namespace:¶
RDE Header XML schema:¶
See Section 9.16 of this document.¶
RDE Common Objects namespace:¶
RDE Common Objects XML schema:¶
See Section 9.17 of this document.¶
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 parties SHOULD take all the necessary precautions such as encrypting the data at rest and in transit to avoid inadvertent disclosure of private data. Regardless of the precautions taken by the parties regarding data at rest and in transit, authentication credentials MUST NOT be escrowed.¶
Authentication of the parties passing data escrow deposit files is also of the utmost importance. The escrow agent MUST properly authenticate the registry's identity before accepting data escrow deposits. The registry MUST authenticate the escrow agent's identity before submitting any data, and the data escrow agent MUST authenticate the identity of the party receiving the data escrow deposits for the purposes deemed appropriate.¶
Additionally, the registry and the escrow agent MUST use integrity checking mechanisms to ensure the data transmitted is what the source intended. Validation of the contents by the parties is RECOMMENDED to ensure that the file was transmitted correctly from the registry or escrow agent and that the contents are "meaningful".¶
A few elements in this specification contain URLs; the use of HTTP over TLS (Transport Layer Security) [RFC2818] is RECOMMENDED on the URLs.¶
The various data structures in the document include a few places that have internal redundancy, and if the values become inconsistent there can be harmful consequences, such as different entities using different fields as their reference.¶
This specification defines a format that may be used to escrow personal data. The process of data escrow is governed by a legal document that is agreed to by the parties, and such a legal document must ensure that privacy-sensitive and/or personal data receives the required protection.¶
The following is an example of a Full Deposit using the XML model:¶
<?xml version="1.0" encoding="UTF-8"?> <rde:deposit type="FULL" id="20191017001" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeHeader="urn:ietf:params:xml:ns:rdeHeader-1.0" xmlns:rdeDomain="urn:ietf:params:xml:ns:rdeDomain-1.0" xmlns:rdeHost="urn:ietf:params:xml:ns:rdeHost-1.0" xmlns:rdeContact="urn:ietf:params:xml:ns:rdeContact-1.0" xmlns:rdeRegistrar="urn:ietf:params:xml:ns:rdeRegistrar-1.0" xmlns:rdeIDN="urn:ietf:params:xml:ns:rdeIDN-1.0" xmlns:rdeNNDN="urn:ietf:params:xml:ns:rdeNNDN-1.0" xmlns:rdeEppParams="urn:ietf:params:xml:ns:rdeEppParams-1.0" xmlns:rdePolicy="urn:ietf:params:xml:ns:rdePolicy-1.0" xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"> <rde:watermark>2019-10-17T00:00:00Z</rde:watermark> <rde:rdeMenu> <rde:version>1.0</rde:version> <rde:objURI>urn:ietf:params:xml:ns:rdeHeader-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeContact-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeHost-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeDomain-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeRegistrar-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeIDN-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeNNDN-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeEppParams-1.0 </rde:objURI> </rde:rdeMenu> <!-- Contents --> <rde:contents> <!-- Header --> <rdeHeader:header> <rdeHeader:tld>test</rdeHeader:tld> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">2 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeContact-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeNNDN-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeEppParams-1.0">1 </rdeHeader:count> </rdeHeader:header> <!-- Domain: example1.example --> <rdeDomain:domain> <rdeDomain:name>example1.example</rdeDomain:name> <rdeDomain:roid>Dexample1-TEST</rdeDomain:roid> <rdeDomain:status s="ok"/> <rdeDomain:registrant>jd1234</rdeDomain:registrant> <rdeDomain:contact type="admin">sh8013</rdeDomain:contact> <rdeDomain:contact type="tech">sh8013</rdeDomain:contact> <rdeDomain:ns> <domain:hostObj>ns1.example.com</domain:hostObj> <domain:hostObj>ns1.example1.example</domain:hostObj> </rdeDomain:ns> <rdeDomain:clID>RegistrarX</rdeDomain:clID> <rdeDomain:crRr client="jdoe">RegistrarX</rdeDomain:crRr> <rdeDomain:crDate>1999-04-03T22:00:00.0Z</rdeDomain:crDate> <rdeDomain:exDate>2025-04-03T22:00:00.0Z</rdeDomain:exDate> </rdeDomain:domain> <!-- Domain: example2.example --> <rdeDomain:domain> <rdeDomain:name>example2.example</rdeDomain:name> <rdeDomain:roid>Dexample2-TEST</rdeDomain:roid> <rdeDomain:status s="ok"/> <rdeDomain:status s="clientUpdateProhibited"/> <rdeDomain:registrant>jd1234</rdeDomain:registrant> <rdeDomain:contact type="admin">sh8013</rdeDomain:contact> <rdeDomain:contact type="tech">sh8013</rdeDomain:contact> <rdeDomain:clID>RegistrarX</rdeDomain:clID> <rdeDomain:crRr>RegistrarX</rdeDomain:crRr> <rdeDomain:crDate>1999-04-03T22:00:00.0Z</rdeDomain:crDate> <rdeDomain:exDate>2025-04-03T22:00:00.0Z</rdeDomain:exDate> </rdeDomain:domain> <!-- Host: ns1.example.example --> <rdeHost:host> <rdeHost:name>ns1.example1.example</rdeHost:name> <rdeHost:roid>Hns1_example_test-TEST</rdeHost:roid> <rdeHost:status s="ok"/> <rdeHost:status s="linked"/> <rdeHost:addr ip="v4">192.0.2.2</rdeHost:addr> <rdeHost:addr ip="v4">192.0.2.29</rdeHost:addr> <rdeHost:addr ip="v6">2001:DB8:1::1</rdeHost:addr> <rdeHost:clID>RegistrarX</rdeHost:clID> <rdeHost:crRr>RegistrarX</rdeHost:crRr> <rdeHost:crDate>1999-05-08T12:10:00.0Z</rdeHost:crDate> <rdeHost:upRr>RegistrarX</rdeHost:upRr> <rdeHost:upDate>2009-10-03T09:34:00.0Z</rdeHost:upDate> </rdeHost:host> <!-- Contact: sh8013 --> <rdeContact:contact> <rdeContact:id>sh8013</rdeContact:id> <rdeContact:roid>Csh8013-TEST</rdeContact:roid> <rdeContact:status s="linked"/> <rdeContact:status s="clientDeleteProhibited"/> <rdeContact:postalInfo type="int"> <contact:name>John Doe</contact:name> <contact:org>Example Inc.</contact:org> <contact:addr> <contact:street>123 Example Dr.</contact:street> <contact:street>Suite 100</contact:street> <contact:city>Dulles</contact:city> <contact:sp>VA</contact:sp> <contact:pc>20166-6503</contact:pc> <contact:cc>US</contact:cc> </contact:addr> </rdeContact:postalInfo> <rdeContact:voice x="1234">+1.7035555555 </rdeContact:voice> <rdeContact:fax>+1.7035555556 </rdeContact:fax> <rdeContact:email>[email protected] </rdeContact:email> <rdeContact:clID>RegistrarX</rdeContact:clID> <rdeContact:crRr client="jdoe">RegistrarX </rdeContact:crRr> <rdeContact:crDate>2009-09-13T08:01:00.0Z </rdeContact:crDate> <rdeContact:upRr client="jdoe">RegistrarX </rdeContact:upRr> <rdeContact:upDate>2009-11-26T09:10:00.0Z </rdeContact:upDate> <rdeContact:trDate>2009-12-03T09:05:00.0Z </rdeContact:trDate> <rdeContact:disclose flag="0"> <contact:voice/> <contact:email/> </rdeContact:disclose> </rdeContact:contact> <!-- Registrar: RegistrarX --> <rdeRegistrar:registrar> <rdeRegistrar:id>RegistrarX</rdeRegistrar:id> <rdeRegistrar:name>Registrar X</rdeRegistrar:name> <rdeRegistrar:gurid>8</rdeRegistrar:gurid> <rdeRegistrar:status>ok</rdeRegistrar:status> <rdeRegistrar:postalInfo type="int"> <rdeRegistrar:addr> <rdeRegistrar:street>123 Example Dr. </rdeRegistrar:street> <rdeRegistrar:street>Suite 100 </rdeRegistrar:street> <rdeRegistrar:city>Dulles</rdeRegistrar:city> <rdeRegistrar:sp>VA</rdeRegistrar:sp> <rdeRegistrar:pc>20166-6503</rdeRegistrar:pc> <rdeRegistrar:cc>US</rdeRegistrar:cc> </rdeRegistrar:addr> </rdeRegistrar:postalInfo> <rdeRegistrar:voice x="1234">+1.7035555555 </rdeRegistrar:voice> <rdeRegistrar:fax>+1.7035555556 </rdeRegistrar:fax> <rdeRegistrar:email>[email protected] </rdeRegistrar:email> <rdeRegistrar:url>http://www.example.example </rdeRegistrar:url> <rdeRegistrar:whoisInfo> <rdeRegistrar:name>whois.example.example </rdeRegistrar:name> <rdeRegistrar:url>http://whois.example.example </rdeRegistrar:url> </rdeRegistrar:whoisInfo> <rdeRegistrar:crDate>2005-04-23T11:49:00.0Z </rdeRegistrar:crDate> <rdeRegistrar:upDate>2009-02-17T17:51:00.0Z </rdeRegistrar:upDate> </rdeRegistrar:registrar> <!-- IDN Table --> <rdeIDN:idnTableRef id="pt-BR"> <rdeIDN:url> http://www.iana.org/domains/idn-tables/tables/br_pt-br_1.0.html </rdeIDN:url> <rdeIDN:urlPolicy> http://registro.br/dominio/regras.html </rdeIDN:urlPolicy> </rdeIDN:idnTableRef> <!-- NNDN: pinguino.example --> <rdeNNDN:NNDN> <rdeNNDN:aName>xn--exampl-gva.example</rdeNNDN:aName> <rdeNNDN:idnTableId>pt-BR</rdeNNDN:idnTableId> <rdeNNDN:originalName>example1.example</rdeNNDN:originalName> <rdeNNDN:nameState>withheld</rdeNNDN:nameState> <rdeNNDN:crDate>2005-04-23T11:49:00.0Z</rdeNNDN:crDate> </rdeNNDN:NNDN> <!-- EppParams --> <rdeEppParams:eppParams> <rdeEppParams:version>1.0</rdeEppParams:version> <rdeEppParams:lang>en</rdeEppParams:lang> <rdeEppParams:objURI> urn:ietf:params:xml:ns:domain-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI> urn:ietf:params:xml:ns:contact-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI> urn:ietf:params:xml:ns:host-1.0 </rdeEppParams:objURI> <rdeEppParams:svcExtension> <epp:extURI>urn:ietf:params:xml:ns:rgp-1.0 </epp:extURI> <epp:extURI>urn:ietf:params:xml:ns:secDNS-1.1 </epp:extURI> </rdeEppParams:svcExtension> <rdeEppParams:dcp> <epp:access><epp:all/></epp:access> <epp:statement> <epp:purpose> <epp:admin/> <epp:prov/> </epp:purpose> <epp:recipient> <epp:ours/> <epp:public/> </epp:recipient> <epp:retention> <epp:stated/> </epp:retention> </epp:statement> </rdeEppParams:dcp> </rdeEppParams:eppParams> <rdePolicy:policy scope="//rde:deposit/rde:contents/rdeDomain:domain" element="rdeDomain:registrant" /> </rde:contents> </rde:deposit>¶
The following is an example of a Differential Deposit using the XML model:¶
<?xml version="1.0" encoding="UTF-8"?> <rde:deposit type="DIFF" id="20191017002" prevId="20191017001" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeHeader="urn:ietf:params:xml:ns:rdeHeader-1.0" xmlns:rdeDomain="urn:ietf:params:xml:ns:rdeDomain-1.0" xmlns:rdeHost="urn:ietf:params:xml:ns:rdeHost-1.0" xmlns:rdeContact="urn:ietf:params:xml:ns:rdeContact-1.0" xmlns:rdeRegistrar="urn:ietf:params:xml:ns:rdeRegistrar-1.0" xmlns:rdeIDN="urn:ietf:params:xml:ns:rdeIDN-1.0" xmlns:rdeNNDN="urn:ietf:params:xml:ns:rdeNNDN-1.0" xmlns:rdeEppParams="urn:ietf:params:xml:ns:rdeEppParams-1.0" xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"> <rde:watermark>2019-10-17T00:00:00Z</rde:watermark> <rde:rdeMenu> <rde:version>1.0</rde:version> <rde:objURI>urn:ietf:params:xml:ns:rdeHeader-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeContact-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeHost-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeDomain-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeRegistrar-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeIDN-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeNNDN-1.0 </rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeEppParams-1.0 </rde:objURI> </rde:rdeMenu> <!-- Deletes --> <rde:deletes> <rdeDomain:delete> <rdeDomain:name>example2.example</rdeDomain:name> </rdeDomain:delete> </rde:deletes> <!-- Contents --> <rde:contents> <!-- Header --> <rdeHeader:header> <rdeHeader:tld>test</rdeHeader:tld> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeDomain-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeHost-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeContact-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeRegistrar-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeIDN-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeNNDN-1.0">1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeEppParams-1.0">1 </rdeHeader:count> </rdeHeader:header> </rde:contents> </rde:deposit>¶
The following is an example of a Full Deposit using the CSV model:¶
<?xml version="1.0" encoding="UTF-8"?> <rde:deposit xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-1.0" xmlns:csvDomain="urn:ietf:params:xml:ns:csvDomain-1.0" xmlns:csvHost="urn:ietf:params:xml:ns:csvHost-1.0" xmlns:csvContact="urn:ietf:params:xml:ns:csvContact-1.0" xmlns:csvRegistrar="urn:ietf:params:xml:ns:csvRegistrar-1.0" xmlns:csvIDN="urn:ietf:params:xml:ns:csvIDN-1.0" xmlns:rdeHeader="urn:ietf:params:xml:ns:rdeHeader-1.0" xmlns:csvNNDN="urn:ietf:params:xml:ns:csvNNDN-1.0" xmlns:rdeEppParams="urn:ietf:params:xml:ns:rdeEppParams-1.0" type="FULL" id="20191017001"> <rde:watermark>2019-10-18T00:00:00Z</rde:watermark> <rde:rdeMenu> <rde:version>1.0</rde:version> <rde:objURI>urn:ietf:params:xml:ns:csvDomain-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvHost-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvContact-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvRegistrar-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvIDN-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvNNDN-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:rdeEppParams-1.0</rde:objURI> </rde:rdeMenu> <rde:contents> <rdeHeader:header> <rdeHeader:tld>test</rdeHeader:tld> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvDomain-1.0"> 4 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvHost-1.0"> 6 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvContact-1.0"> 9 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvRegistrar-1.0"> 3 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvIDN-1.0"> 2 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvNNDN-1.0"> 2 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeEppParams-1.0"> 1 </rdeHeader:count> </rdeHeader:header> <csvDomain:contents> <rdeCsv:csv name="domain" sep=","> <rdeCsv:fields> <csvDomain:fName/> <rdeCsv:fRoid/> <rdeCsv:fIdnTableId/> <csvDomain:fOriginalName/> <rdeCsv:fRegistrant/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fExDate isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="75E2D01F"> domain-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainContacts" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvContact:fId/> <csvDomain:fContactType/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="70A7C17B"> domainContacts-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainStatuses" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> <csvDomain:fRgpStatus/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="EB8C548E"> domainStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainNameServers" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvHost:fName parent="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="984C3097"> domainNameServers-name-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainNameServers" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <rdeCsv:fRoid/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="569D4638"> domainNameServers-roid-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="dnssec" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fMaxSigLife/> <csvDomain:fKeyTag/> <csvDomain:fDsAlg/> <csvDomain:fDigestType/> <csvDomain:fDigest/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="AA15CB43"> dnssec-ds-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="dnssec" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fMaxSigLife/> <csvDomain:fFlags/> <csvDomain:fProtocol/> <csvDomain:fKeyAlg/> <csvDomain:fPubKey/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="1B16F334"> dnssec-key-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainTransfer" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <rdeCsv:fTrStatus/> <rdeCsv:fReRr/> <rdeCsv:fReID/> <rdeCsv:fReDate/> <rdeCsv:fAcRr/> <rdeCsv:fAcID/> <rdeCsv:fAcDate/> <rdeCsv:fExDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="71170194"> domainTransfer-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvDomain:contents> <csvHost:contents> <rdeCsv:csv name="host" sep=","> <rdeCsv:fields> <csvHost:fName/> <rdeCsv:fRoid/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fTrDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="120938E3"> host-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="hostStatuses" sep=","> <rdeCsv:fields> <rdeCsv:fRoid parent="true"/> <csvHost:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="0BA504FC"> hostStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="hostAddresses" sep=","> <rdeCsv:fields> <rdeCsv:fRoid parent="true"/> <csvHost:fAddr isRequired="true"/> <csvHost:fAddrVersion isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="17888F02"> hostAddresses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvHost:contents> <csvContact:contents> <rdeCsv:csv name="contact" sep=","> <rdeCsv:fields> <csvContact:fId/> <rdeCsv:fRoid/> <csvContact:fVoice/> <csvContact:fVoiceExt/> <csvContact:fFax/> <csvContact:fFaxExt/> <csvContact:fEmail/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D7F106A5"> contact-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactStatuses" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <csvContact:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="2AAF99D4"> contactStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactPostal" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <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="02CC2504"> contactPostal-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactTransfer" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <rdeCsv:fTrStatus/> <rdeCsv:fReRr/> <rdeCsv:fReID/> <rdeCsv:fReDate/> <rdeCsv:fAcRr/> <rdeCsv:fAcID/> <rdeCsv:fAcDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D0929632"> contactTransfer-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactDisclose" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <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="89043A90"> contactDisclose-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvContact:contents> <csvRegistrar:contents> <rdeCsv:csv name="registrar" sep=","> <rdeCsv:fields> <csvRegistrar:fId/> <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 isRequired="false"/> <rdeCsv:fUrl/> <csvRegistrar:fWhoisUrl/> <rdeCsv:fCrDate/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="306178BB"> registrar-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvRegistrar:contents> <csvIDN:contents> <rdeCsv:csv name="idnLanguage" sep=","> <rdeCsv:fields> <rdeCsv:fIdnTableId isRequired="true"/> <rdeCsv:fUrl isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D462EAD0"> idnLanguage-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvIDN:contents> <csvNNDN:contents> <rdeCsv:csv name="NNDN" sep=","> <rdeCsv:fields> <csvNNDN:fAName/> <rdeCsv:fIdnTableId/> <csvNNDN:fOriginalName/> <csvNNDN:fNameState/> <csvNNDN:fMirroringNS/> <rdeCsv:fCrDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="11C80D60"> NNDN-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvNNDN:contents> <rdeEppParams:eppParams> <rdeEppParams:version>1.0</rdeEppParams:version> <rdeEppParams:lang>en</rdeEppParams:lang> <rdeEppParams:objURI>urn:ietf:params:xml:ns:domain-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI>urn:ietf:params:xml:ns:host-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI>urn:ietf:params:xml:ns:contact-1.0 </rdeEppParams:objURI> <rdeEppParams:svcExtension> <epp:extURI>urn:ietf:params:xml:ns:secDNS-1.1 </epp:extURI> <epp:extURI>urn:ietf:params:xml:ns:rgp-1.0 </epp:extURI> </rdeEppParams:svcExtension> <rdeEppParams:dcp> <epp:access> <epp:all/> </epp:access> <epp:statement> <epp:purpose> <epp:admin/> <epp:other/> <epp:prov/> </epp:purpose> <epp:recipient> <epp:ours/> <epp:public/> <epp:unrelated/> </epp:recipient> <epp:retention> <epp:indefinite/> </epp:retention> </epp:statement> </rdeEppParams:dcp> </rdeEppParams:eppParams> </rde:contents> </rde:deposit>¶
The following is an example of a Differential Deposit using the CSV model:¶
<?xml version="1.0" encoding="UTF-8"?> <rde:deposit xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" xmlns:rde="urn:ietf:params:xml:ns:rde-1.0" xmlns:rdeCsv="urn:ietf:params:xml:ns:rdeCsv-1.0" xmlns:csvDomain="urn:ietf:params:xml:ns:csvDomain-1.0" xmlns:csvHost="urn:ietf:params:xml:ns:csvHost-1.0" xmlns:csvContact="urn:ietf:params:xml:ns:csvContact-1.0" xmlns:csvRegistrar="urn:ietf:params:xml:ns:csvRegistrar-1.0" xmlns:csvIDN="urn:ietf:params:xml:ns:csvIDN-1.0" xmlns:rdeHeader="urn:ietf:params:xml:ns:rdeHeader-1.0" xmlns:csvNNDN="urn:ietf:params:xml:ns:csvNNDN-1.0" xmlns:rdeEppParams="urn:ietf:params:xml:ns:rdeEppParams-1.0" type="DIFF" id="20191017001" prevId="20191010001"> <rde:watermark>2019-10-18T00:00:00Z</rde:watermark> <rde:rdeMenu> <rde:version>1.0</rde:version> <rde:objURI>urn:ietf:params:xml:ns:csvDomain-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvHost-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvContact-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvRegistrar-1.0</rde:objURI> <rde:objURI>urn:ietf:params:xml:ns:csvIDN-1.0</rde:objURI> </rde:rdeMenu> <rde:deletes> <csvDomain:deletes> <rdeCsv:csv name="domain"> <rdeCsv:fields> <csvDomain:fName/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="6F2B988F"> domain-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvDomain:deletes> <csvHost:deletes> <rdeCsv:csv name="host"> <rdeCsv:fields> <rdeCsv:fRoid/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="E3408F5E"> host-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvHost:deletes> <csvContact:deletes> <rdeCsv:csv name="contact"> <rdeCsv:fields> <csvContact:fId/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="6F2B988F"> contact-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvContact:deletes> <csvRegistrar:deletes> <rdeCsv:csv name="registrar"> <rdeCsv:fields> <csvRegistrar:fId/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="307B87AE"> registrar-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvRegistrar:deletes> <csvIDN:deletes> <rdeCsv:csv name="idnLanguage"> <rdeCsv:fields> <rdeCsv:fIdnTableId/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="757B573A"> idnLanguage-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvIDN:deletes> <csvNNDN:deletes> <rdeCsv:csv name="NNDN"> <rdeCsv:fields> <csvNNDN:fAName/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="FF104E83"> NNDN-delete-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvNNDN:deletes> </rde:deletes> <rde:contents> <rdeHeader:header> <rdeHeader:tld>test</rdeHeader:tld> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvDomain-1.0"> 2 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvHost-1.0"> 2 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvContact-1.0"> 3 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvRegistrar-1.0"> 1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvIDN-1.0"> 1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:csvNNDN-1.0"> 1 </rdeHeader:count> <rdeHeader:count uri="urn:ietf:params:xml:ns:rdeEppParams-1.0"> 1 </rdeHeader:count> </rdeHeader:header> <csvDomain:contents> <rdeCsv:csv name="domain" sep=","> <rdeCsv:fields> <csvDomain:fName/> <rdeCsv:fRoid/> <rdeCsv:fIdnTableId/> <csvDomain:fOriginalName/> <rdeCsv:fRegistrant/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fExDate isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="75E2D01F"> domain-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainContacts" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvContact:fId/> <csvDomain:fContactType/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="70A7C17B"> domainContacts-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainStatuses" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> <csvDomain:fRgpStatus/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="EB8C548E"> domainStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainNameServers" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvHost:fName parent="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="984C3097"> domainNameServers-name-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainNameServers" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <rdeCsv:fRoid/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="569D4638"> domainNameServers-roid-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="dnssec" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fMaxSigLife/> <csvDomain:fKeyTag/> <csvDomain:fDsAlg/> <csvDomain:fDigestType/> <csvDomain:fDigest/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="AA15CB43"> dnssec-ds-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="dnssec" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <csvDomain:fMaxSigLife/> <csvDomain:fFlags/> <csvDomain:fProtocol/> <csvDomain:fKeyAlg/> <csvDomain:fPubKey/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="1B16F334"> dnssec-key-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="domainTransfer" sep=","> <rdeCsv:fields> <csvDomain:fName parent="true"/> <rdeCsv:fTrStatus/> <rdeCsv:fReRr/> <rdeCsv:fReID/> <rdeCsv:fReDate/> <rdeCsv:fAcRr/> <rdeCsv:fAcID/> <rdeCsv:fAcDate/> <rdeCsv:fExDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="71170194"> domainTransfer-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvDomain:contents> <csvHost:contents> <rdeCsv:csv name="host" sep=","> <rdeCsv:fields> <csvHost:fName/> <rdeCsv:fRoid/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> <rdeCsv:fTrDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="120938E3"> host-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="hostStatuses" sep=","> <rdeCsv:fields> <rdeCsv:fRoid parent="true"/> <csvHost:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="0BA504FC"> hostStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="hostAddresses" sep=","> <rdeCsv:fields> <rdeCsv:fRoid parent="true"/> <csvHost:fAddr isRequired="true"/> <csvHost:fAddrVersion isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="17888F02"> hostAddresses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvHost:contents> <csvContact:contents> <rdeCsv:csv name="contact" sep=","> <rdeCsv:fields> <csvContact:fId/> <rdeCsv:fRoid/> <csvContact:fVoice/> <csvContact:fVoiceExt/> <csvContact:fFax/> <csvContact:fFaxExt/> <csvContact:fEmail/> <rdeCsv:fClID/> <rdeCsv:fCrRr/> <rdeCsv:fCrID/> <rdeCsv:fCrDate/> <rdeCsv:fUpRr/> <rdeCsv:fUpID/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D7F106A5"> contact-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactStatuses" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <csvContact:fStatus/> <rdeCsv:fStatusDescription/> <rdeCsv:fLang/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="2AAF99D4"> contactStatuses-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactPostal" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <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="02CC2504"> contactPostal-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactTransfer" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <rdeCsv:fTrStatus/> <rdeCsv:fReRr/> <rdeCsv:fReID/> <rdeCsv:fReDate/> <rdeCsv:fAcRr/> <rdeCsv:fAcID/> <rdeCsv:fAcDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D0929632"> contactTransfer-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> <rdeCsv:csv name="contactDisclose" sep=","> <rdeCsv:fields> <csvContact:fId parent="true"/> <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="89043A90"> contactDisclose-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvContact:contents> <csvRegistrar:contents> <rdeCsv:csv name="registrar" sep=","> <rdeCsv:fields> <csvRegistrar:fId/> <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 isRequired="false"/> <rdeCsv:fUrl/> <csvRegistrar:fWhoisUrl/> <rdeCsv:fCrDate/> <rdeCsv:fUpDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="306178BB"> registrar-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvRegistrar:contents> <csvIDN:contents> <rdeCsv:csv name="idnLanguage" sep=","> <rdeCsv:fields> <rdeCsv:fIdnTableId isRequired="true"/> <rdeCsv:fUrl isRequired="true"/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="D462EAD0"> idnLanguage-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvIDN:contents> <csvNNDN:contents> <rdeCsv:csv name="NNDN" sep=","> <rdeCsv:fields> <csvNNDN:fAName/> <rdeCsv:fIdnTableId/> <csvNNDN:fOriginalName/> <csvNNDN:fNameState/> <csvNNDN:fMirroringNS/> <rdeCsv:fCrDate/> </rdeCsv:fields> <rdeCsv:files> <rdeCsv:file cksum="11C80D60"> NNDN-YYYYMMDD.csv </rdeCsv:file> </rdeCsv:files> </rdeCsv:csv> </csvNNDN:contents> <rdeEppParams:eppParams> <rdeEppParams:version>1.0</rdeEppParams:version> <rdeEppParams:lang>en</rdeEppParams:lang> <rdeEppParams:objURI>urn:ietf:params:xml:ns:domain-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI>urn:ietf:params:xml:ns:host-1.0 </rdeEppParams:objURI> <rdeEppParams:objURI>urn:ietf:params:xml:ns:contact-1.0 </rdeEppParams:objURI> <rdeEppParams:svcExtension> <epp:extURI>urn:ietf:params:xml:ns:secDNS-1.1 </epp:extURI> <epp:extURI>urn:ietf:params:xml:ns:rgp-1.0 </epp:extURI> </rdeEppParams:svcExtension> <rdeEppParams:dcp> <epp:access> <epp:all/> </epp:access> <epp:statement> <epp:purpose> <epp:admin/> <epp:other/> <epp:prov/> </epp:purpose> <epp:recipient> <epp:ours/> <epp:public/> <epp:unrelated/> </epp:recipient> <epp:retention> <epp:indefinite/> </epp:retention> </epp:statement> </rdeEppParams:dcp> </rdeEppParams:eppParams> </rde:contents> </rde:deposit>¶
Parts of this document are based on EPP [RFC5730] and related RFCs by Scott Hollenbeck.¶
Special suggestions that have been incorporated into this document were provided by Edward Lewis, Jaap Akkerhuis, Lawrence Conroy, Marc Groeneweg, Michael Young, Chris Wright, Patrick Mevzek, Stephen Morris, Scott Hollenbeck, Stephane Bortzmeyer, Warren Kumari, Paul Hoffman, Vika Mpisane, Bernie Hoeneisen, Jim Galvin, Andrew Sullivan, Hiro Hotta, Christopher Browne, Daniel Kalchev, David Conrad, James Mitchell, Francisco Obispo, Bhadresh Modi, Alexander Mayrhofer, and Benjamin Kaduk.¶
Shoji Noguchi and Francisco Arias participated as coauthors through version 05 of earlier drafts of this document and provided invaluable support.¶