Network Working Group | J. Gould |
Internet-Draft | VeriSign, Inc. |
Intended status: Standards Track | F. Obispo |
Expires: August 9, 2015 | L. Muñoz |
Uniregistry Corp. | |
February 5, 2015 |
Extensible Provisioning Protocol (EPP) Internationalized Domain Name (IDN) Table Mapping
draft-gould-idn-table-00
This document describes an Extensible Provisioning Protocol (EPP) mapping for getting Internationalized Domain Name (IDN) Table information for the registration of IDNs, using the EPP domain name mapping, and optionally with the IDN mapping extension. An IDN Table defines the valid set of characters (code points) that can be used in a domain name. Code points may overlap across IDN Tables and the IDN Tables supported by the servers are up to server policy.
The IDN Table information can be used to validate an IDN prior to registration, can be cached by the client for pre-validation, can be used to select the best IDN Table for the IDN, and can be used to know if and what IDN Table Identifier to pass in a domain create.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 9, 2015.
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
This document describes an extension mapping for version 1.0 of the Extensible Provisioning Protocol (EPP) [RFC5730]. This EPP mapping provides Internationalized Domain Name (IDN) Table information for the registration of IDNs, using the EPP domain name mapping [RFC5731], and optionally with the IDN mapping extension [I-D.ietf-eppext-idnmap]. An IDN Table defines the valid set of characters (code points) that can be used in a domain name. Code points may overlap across IDN Tables and the IDN Tables supported by the servers are up to server policy. This mapping provides the information clients need to register IDNs across a variety of servers with differing IDN policies. The IDN Table Mapping can be used for the following:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].
XML is case sensitive. Unless stated otherwise, XML specifications and examples provided in this document MUST be interpreted in the character case presented in order to develop a conforming implementation.
In examples, "C:" represents lines sent by a protocol client and "S:" represents lines returned by a protocol server. Indentation and white space in examples are provided only to illustrate element relationships and are not a REQUIRED feature of this protocol.
"idnTable-1.0" is used as an abbreviation for "urn:ietf:params:xml:ns:idnTable-1.0". The XML namespace prefix "idnTable" is used, but implementations MUST NOT depend on it and instead employ a proper namespace-aware XML parser and serializer to interpret and output the XML documents.
An EPP IDN Table object has attributes and associated values that can help in the registration of IDNs. This section describes each type in detail. The formal syntax for the attribute values described here can be found in the "Formal Syntax" section of this document and in the appropriate normative references.
The IDN Table Identifier is a server-defined unique value for an IDN Table object. It is represented using an <idnTable:table> element or an <idnTable:name> element. The IDN Table Identifier is used in the <check> and <info> commands and responses. The IDN Table Identifier MAY also be used as the value for the IDN mapping extension [I-D.ietf-eppext-idnmap] <idn:table> element with a domain create of an IDN object.
A Domain Name, as represented by an <idnTable:domain> element, is used to enable validating the code points against the server IDN Tables and IDN policies and for retrieving IDN Table information associated with the domain name. The Domain Name MUST be represented as either a U-label or A-label as defined in [RFC5890].
An OPTIONAL attribute "form" MAY be used to specify the representation. When present, the "form" attribute MUST be set to either "aLabel" for A-label or "uLabel" for U-label, depending on the chosen representation for the domain name. The default "form" attribute is "aLabel" for A-label.
A detailed description of the EPP syntax and semantics can be found in the EPP core protocol specification [RFC5730].
EPP provides three commands to retrieve object information: <check> to determine if an object is known to the server, <info> to retrieve detailed information associated with an object, and <transfer> to retrieve object transfer status information.
There are two forms of the EPP <check> command: the Domain Check Form [domainCheckForm] and the Table Check Form [tableCheckForm].
The Domain Check Form is used to check the validity of the domain name against the server IDN Tables and IDN policies, return whether the IDN mapping extension [I-D.ietf-eppext-idnmap] is needed with a domain <create> command, and provide the matching list of IDN Table Identifiers. This mapping is not intended to determine the availability of the domain name.
In addition to the standard EPP command elements, the <check> command MUST contain an <idnTable:check> element that identifies the idnTable namespace. The <idnTable:check> element in the Domain Check Form contains the following child elements:
Example Domain Check Form <check> command with three IDNs:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:check C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:domain C: form="uLabel">idn1.example</idnTable:domain> C: <idnTable:domain C: form="aLabel">idn2.example</idnTable:domain> C: <idnTable:domain>idn3.example</idnTable:domain> C: </idnTable:check> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
When a <check> command has been processed successfully, the EPP <resData> element MUST contain a child <idnTable:chkData> element that identifies the idnTable namespace. The <idnTable:chkData> element in the Domain Check Form contain one or more <idnTable:domain> elements that contain the following child elements:
Example Domain Check Form <check> response with three IDNs:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:chkData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:domain> S: <idnTable:name valid="true"> S: idn1.example</idnTable:name> S: <idnTable:table>CHI</idnTable:table> S: </idnTable:domain> S: <idnTable:domain> S: <idnTable:name valid="true" idnmap="true"> S: idn2.example</idnTable:name> S: <idnTable:table>CHI</idnTable:table> S: <idnTable:table>JPN</idnTable:table> S: </idnTable:domain> S: <idnTable:domain> S: <idnTable:name valid="false"> S: idn3.example</idnTable:name> S: <idnTable:reason>Commingled scripts S: </idnTable:reason> S: </idnTable:domain> S: </idnTable:chkData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
The Table Check Form is used to check the existence of an IDN Table using the IDN Table Identifier represented by the <idnTable:table> element.
In addition to the standard EPP command elements, the <check> command MUST contain an <idnTable:check> element that identifies the idnTable namespace. The <idnTable:check> element in the Table Check Form contains the following child elements:
Example Table Check Form <check> command with three IDN Table Identifiers:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:check C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:table>CHI</idnTable:table> C: <idnTable:table>JPN</idnTable:table> C: <idnTable:table>INVALID</idnTable:table> C: </idnTable:check> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
When a <check> command has been processed successfully, the EPP <resData> element MUST contain a child <idnTable:chkData> element that identifies the idnTable namespace. The <idnTable:chkData> element in the Table Check Form contains the following child elements:
Example Table Check Form <check> response with three IDN Table Identifiers:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:chkData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:table exists="true">CHI S: </idnTable:table> S: <idnTable:table exists="true">JPN S: </idnTable:table> S: <idnTable:table exists="false">INVALID S: </idnTable:table> S: </idnTable:chkData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
There are three forms of the EPP <info> command: the Domain Info Form [domainInfoForm], the Table Info Form [tableInfoForm], and the List Info Form [listInfoForm].
The Domain Info Form is used to validate the domain name code points against the IDN Tables and IDN policies, and to return the matching IDN Table meta-data. The domain name, as defined in Section 2.2 can be provided as either a U-label or A-label.
In addition to the standard EPP command elements, the <info> command MUST contain an <idnTable:info> element that identifies the idnTable namespace. The <idnTable:info> element in the Domain Info Form contains the following child elements:
Example Domain Info Form <info> command using a U-label Domain Name:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:info C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:domain>idn1.example</idnTable:domain> C: </idnTable:info> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
Example Domain Info Form <info> command using an A-label Domain Name:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:info C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:domain>xn--idn1.example</idnTable:domain> C: </idnTable:info> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
When an <info> command has been processed successfully, the EPP <resData> element MUST contain a child <idnTable:infData> element that identifies the idnTable namespace. The <idnTable:infData> element in the Domain Info Form contains the <idnTable:domain> element that contains the following child elements:
Example Domain Info Form <info> response for a U-label Domain Name:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:infData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:domain> S: <idnTable:name valid="true">idn1.example S: </idnTable:name> S: <idnTable:aname>xn--idn1.example</idnTable:aname> S: <idnTable:table> S: <idnTable:name>THAI</idnTable:name> S: <idnTable:type>script</idnTable:type> S: <idnTable:description lang="en">Thai S: </idnTable:description> S: <idnTable:variantGen>false</idnTable:variantGen> S: </idnTable:table> S: </idnTable:domain> S: </idnTable:infData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
Example Domain Info Form <info> response for an A-label Domain Name:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:infData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:domain> S: <idnTable:name valid="true" idnmap="true"> S: xn--idn1.example S: </idnTable:name> S: <idnTable:uname>idn1.example</idnTable:uname> S: <idnTable:table> S: <idnTable:name>CHI</idnTable:name> S: <idnTable:type>language</idnTable:type> S: <idnTable:description>Chinese (CHI) S: </idnTable:description> S: <idnTable:variantGen>true</idnTable:variantGen> S: </idnTable:table> S: <idnTable:table> S: <idnTable:name>JPN</idnTable:name> S: <idnTable:type>language</idnTable:type> S: <idnTable:description>Japanese (JPN) S: </idnTable:description> S: <idnTable:variantGen>false</idnTable:variantGen> S: </idnTable:table> S: </idnTable:domain> S: </idnTable:infData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
The Table Info Form is used to retrieve information associated with an IDN Table object. The information provided meta-data about the IDN Table object along with the OPTIONAL code points.
In addition to the standard EPP command elements, the <info> command MUST contain an <idnTable:info> element that identifies the idnTable namespace. The <idnTable:info> element in the Table Info Form contains the following child elements:
Example Table Info Form <info> command for the "CHI" IDN Table Identifier, which represents a Language IDN Table:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:info C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:table>CHI</idnTable:table> C: </idnTable:info> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
Example Table Info Form <info> command for the "THAI" IDN Table Identifier, which represents a Script IDN Table:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:info C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:table>THAI</idnTable:table> C: </idnTable:info> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
When an <info> command has been processed successfully, the EPP <resData> element MUST contain a child <idnTable:infData> element that identifies the idnTable namespace. The <idnTable:infData> element in the Table Info Form contains the <idnTable:table> element that contains the following child elements:
Example Table Info Form <info> response for the "CHI" IDN Table Identifier, which represents a Language IDN Table:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:infData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:table> S: <idnTable:name>CHI</idnTable:name> S: <idnTable:type>language</idnTable:type> S: <idnTable:description lang="en">Chinese (CHI) S: </idnTable:description> S: <idnTable:upDate>2015-02-04T09:30:00.0Z S: </idnTable:upDate> S: <idnTable:version>1.0</idnTable:version> S: <idnTable:effectiveDate>2014-11-24 S: </idnTable:effectiveDate> S: <idnTable:variantGen>true</idnTable:variantGen> S: <idnTable:url> S: https://www.iana.org/domains/idn-tables/tables/tld_chi_1.0.txt S: </idnTable:url> S: <idnTable:codePoint> S: <idnTable:point>002D</idnTable:point> S: <idnTable:comment lang="en"> S: HYPHEN-MINUS S: </idnTable:comment> S: </idnTable:codePoint> S: <idnTable:codePoint> S: <idnTable:point>0030</idnTable:point> S: </idnTable:codePoint> S: <idnTable:codeRange> S: <idnTable:from>3918</idnTable:from> S: <idnTable:to>396E</idnTable:to> S: <idnTable:comment lang="en"> S: CJK Ideograph Extension A S: </idnTable:comment> S: </idnTable:codeRange> S: <idnTable:codeRange> S: <idnTable:from>3C6E</idnTable:from> S: <idnTable:to>6BA8</idnTable:to> S: </idnTable:codeRange> S: </idnTable:table> S: </idnTable:infData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
Example Table Info Form <info> response for the "THAI" IDN Table Identifier, which represents a Script IDN Table:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:infData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:table> S: <idnTable:name>THAI</idnTable:name> S: <idnTable:type>script</idnTable:type> S: <idnTable:description>Thai</idnTable:description> S: <idnTable:upDate>2014-08-16T09:20:00.0Z S: </idnTable:upDate> S: <idnTable:version>1.0</idnTable:version> S: <idnTable:effectiveDate>2014-11-24 S: </idnTable:effectiveDate> S: <idnTable:variantGen>false</idnTable:variantGen> S: <idnTable:url> S: https://www.iana.org/domains/idn-tables/tables/tld_thai_1.0.txt S: </idnTable:url> S: <idnTable:codePoint> S: <idnTable:point>0E01</idnTable:point> S: <idnTable:comment>THAI LETTER KO KAI S: </idnTable:comment> S: </idnTable:codePoint> S: <idnTable:codePoint> S: <idnTable:point>0E02</idnTable:point> S: </idnTable:codePoint> S: <idnTable:codeRange> S: <idnTable:from>0030</idnTable:from> S: <idnTable:to>0039</idnTable:to> S: </idnTable:codeRange> S: </idnTable:table> S: </idnTable:infData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
The List Info Form is used to retrieve the list of IDN Tables supported by the server. The list of IDN Table Identifiers MAY be used to query for the IDN Table information using the Table Info Form [tableInfoForm].
In addition to the standard EPP command elements, the <info> command MUST contain an <idnTable:info> element that identifies the idnTable namespace. The <idnTable:info> element in the List Info Form contains the following child elements:
Example List Info Form <info> command:
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?> C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> C: <command> C: <check> C: <idnTable:info C: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> C: <idnTable:list/> C: </idnTable:info> C: </check> C: <clTRID>ABC-12345</clTRID> C: </command> C:</epp>
When an <info> command has been processed successfully, the EPP <resData> element MUST contain a child <idnTable:infData> element that identifies the idnTable namespace. The <idnTable:infData> element in the List Info Form contains the <idnTable:list> element that contains the following child elements:
Example List Info Form <info> response that contains three IDN Table Identifiers:
S:<?xml version="1.0" encoding="UTF-8" standalone="no"?> S:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"> S: <response> S: <result code="1000"> S: <msg>Command completed successfully</msg> S: </result> S: <resData> S: <idnTable:infData S: xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0"> S: <idnTable:list> S: <idnTable:table> S: <idnTable:name>CHI</idnTable:name> S: <idnTable:upDate>2015-02-04T09:30:00.0Z S: </idnTable:upDate> S: </idnTable:table> S: <idnTable:table> S: <idnTable:name>JPN</idnTable:name> S: <idnTable:upDate>2015-01-01T09:40:00.0Z S: </idnTable:upDate> S: </idnTable:table> S: <idnTable:table> S: <idnTable:name>THAI</idnTable:name> S: <idnTable:upDate>2014-08-16T09:20:00.0Z S: </idnTable:upDate> S: </idnTable:table> S: </idnTable:list> S: </idnTable:infData> S: </resData> S: <trID> S: <clTRID>ABC-12345</clTRID> S: <svTRID>54321-XYZ</svTRID> S: </trID> S: </response> S:</epp>
Transfer semantics do not apply to IDN table objects, so there is no mapping defined for the EPP <transfer> command.
EPP provides five commands to transform objects: <create> to create an instance of an object, <delete> to delete an instance of an object, <renew> to extend the validity period of an object, <transfer> to manage object sponsorship changes, and <update> to change information associated with an object.
Create semantics do not apply to IDN table objects, so there is no mapping defined for the EPP <create> command.
Delete semantics do not apply to IDN table objects, so there is no mapping defined for the EPP <delete> command.
Renewal semantics do not apply to IDN table objects, so there is no mapping defined for the EPP <renew> command.
Transfer semantics do not apply to IDN table objects, so there is no mapping defined for the EPP <transfer> command.
Update semantics do not apply to IDN table objects, so there is no mapping defined for the EPP <update> command.
One schema is presented here that is the EPP IDN Table Mapping schema.
The formal syntax presented here is a complete schema representation of the object mapping suitable for automated validation of EPP XML instances. The BEGIN and END tags are not part of the schema; they are used to note the beginning and ending of the schema for URI registration purposes.
BEGIN <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="urn:ietf:params:xml:ns:idnTable-1.0" xmlns:idnTable="urn:ietf:params:xml:ns:idnTable-1.0" xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <annotation> <documentation> Extensible Provisioning Protocol v1.0 IDN Table Mapping. </documentation> </annotation> <!-- imports --> <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" schemaLocation="eppcom-1.0.xsd"/> <!-- Child elements found in EPP commands. --> <element name="check" type="idnTable:checkType"/> <element name="info" type="idnTable:infoType"/> <!-- Form of the domain name. --> <simpleType name="domainFormType"> <restriction base="token"> <enumeration value="aLabel"/> <enumeration value="uLabel"/> </restriction> </simpleType> <!-- Domain label element. --> <complexType name="domainLabelType"> <simpleContent> <extension base="eppcom:labelType"> <attribute name="form" type="idnTable:domainFormType" default="aLabel"/> </extension> </simpleContent> </complexType> <!-- Child elements of check command. --> <complexType name="checkType"> <sequence> <choice> <element name="table" type="eppcom:minTokenType" maxOccurs="unbounded"/> <element name="domain" type="idnTable:domainLabelType" maxOccurs="unbounded"/> </choice> </sequence> </complexType> <!-- Child elements of info command. --> <complexType name="infoType"> <sequence> <choice> <element name="table" type="eppcom:minTokenType"/> <element name="domain" type="idnTable:domainLabelType"/> <element name="list"/> </choice> </sequence> </complexType> <!-- Child response elements. --> <element name="chkData" type="idnTable:chkDataType"/> <element name="infData" type="idnTable:infDataType"/> <!-- Child elements of check response. --> <complexType name="chkDataType"> <sequence> <choice> <element name="table" type="idnTable:chkTableType" maxOccurs="unbounded"/> <element name="domain" type="idnTable:chkDomainType" maxOccurs="unbounded"/> </choice> </sequence> </complexType> <!-- Table check response element --> <complexType name="chkTableType"> <simpleContent> <extension base="eppcom:minTokenType"> <attribute name="exists" type="boolean" use="required"/> </extension> </simpleContent> </complexType> <!-- Domain name check response element --> <complexType name="domainNameType"> <simpleContent> <extension base="eppcom:labelType"> <attribute name="valid" type="boolean" use="required"/> <attribute name="idnmap" type="boolean" default="true"/> </extension> </simpleContent> </complexType> <!-- Domain check response element --> <complexType name="chkDomainType"> <sequence> <element name="name" type="idnTable:domainNameType"/> <choice> <element name="reason" type="eppcom:reasonType"/> <element name="table" type="eppcom:minTokenType" maxOccurs="unbounded"/> </choice> </sequence> </complexType> <!-- Child elements of info response. --> <complexType name="infDataType"> <sequence> <choice> <element name="table" type="idnTable:infTableType"/> <element name="domain" type="idnTable:infDomainType"/> <element name="list" type="idnTable:infListType"/> </choice> </sequence> </complexType> <!-- Table types --> <simpleType name="tableTypeEnumType"> <restriction base="token"> <enumeration value="language"/> <enumeration value="script"/> </restriction> </simpleType> <!-- Table IDN code point. --> <complexType name="codePointType"> <sequence> <element name="point" type="token"/> <element name="comment" type="idnTable:descriptionType" minOccurs="0"/> </sequence> </complexType> <!-- Table IDN code point range. --> <complexType name="codeRangeType"> <sequence> <element name="from" type="token"/> <element name="to" type="token"/> <element name="comment" type="idnTable:descriptionType" minOccurs="0"/> </sequence> </complexType> <complexType name="descriptionType"> <simpleContent> <extension base="token"> <attribute name="lang" type="language"/> </extension> </simpleContent> </complexType> <!-- Table info response information --> <complexType name="infTableType"> <sequence> <element name="name" type="eppcom:minTokenType"/> <element name="type" type="idnTable:tableTypeEnumType"/> <element name="description" type="idnTable:descriptionType"/> <element name="upDate" type="dateTime"/> <element name="version" type="token" minOccurs="0"/> <element name="effectiveDate" type="date" minOccurs="0"/> <element name="variantGen" type="boolean" minOccurs="0"/> <element name="url" type="anyURI" minOccurs="0"/> <choice minOccurs="0" maxOccurs="unbounded"> <element name="codePoint" type="idnTable:codePointType"/> <element name="codeRange" type="idnTable:codeRangeType"/> </choice> </sequence> </complexType> <!-- Domain info response information --> <complexType name="infDomainType"> <sequence> <element name="name" type="idnTable:domainNameType"/> <choice minOccurs="0"> <element name="uname" type="eppcom:labelType"/> <element name="aname" type="eppcom:labelType"/> </choice> <element name="table" type="idnTable:infDomainTableType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!-- Domain table info response information --> <complexType name="infDomainTableType"> <sequence> <element name="name" type="eppcom:minTokenType"/> <element name="type" type="idnTable:tableTypeEnumType"/> <element name="description" type="idnTable:descriptionType"/> <element name="variantGen" type="boolean" minOccurs="0"/> </sequence> </complexType> <!-- Table list info response information. --> <complexType name="infListType"> <sequence> <element name="table" type="idnTable:infListTableType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!-- Table elements in list info form. --> <complexType name="infListTableType"> <sequence> <element name="name" type="eppcom:minTokenType"/> <element name="upDate" type="dateTime"/> </sequence> </complexType> <!-- End of schema.--> </schema> END
This document uses URNs to describe XML namespaces and XML schemas conforming to a registry mechanism described in [RFC3688]. One URI assignment must be completed by the IANA.
Registration request for the idnTable namespace:
Registration request for the XML schema:
URI: urn:ietf:params:xml:ns:idnTable-1.0
Registrant Contact: IESG
XML: See the "Formal Syntax" section of this document.
The mapping extensions described in this document do not provide any security services beyond those described by EPP [RFC5730] and protocol layers used by EPP. The security considerations described in these other specifications apply to this specification as well.
[I-D.ietf-eppext-idnmap] | Obispo, F., "Internationalized Domain Name Mapping Extension for the Extensible Provisioning Protocol (EPP)", Internet-Draft draft-ietf-eppext-idnmap-02, January 2015. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |
[RFC3688] | Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January 2004. |
[RFC5730] | Hollenbeck, S., "Extensible Provisioning Protocol (EPP)", STD 69, RFC 5730, August 2009. |
[RFC5731] | Hollenbeck, S., "Extensible Provisioning Protocol (EPP) Domain Name Mapping", STD 69, RFC 5731, August 2009. |
[RFC5890] | Klensin, J., "Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework", RFC 5890, August 2010. |