<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced. 
An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC3688 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3688.xml">
<!ENTITY RFC3735 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3735.xml">
<!ENTITY RFC5646 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5646.xml">
<!ENTITY RFC5730 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5730.xml">
<!ENTITY RFC5733 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5733.xml">
]>

<?rfc toc="yes"?>
<?rfc strict="yes"?>
<?rfc tocompact="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc tocdepth="2"?>
<?rfc symrefs="yes"?>
<?rfc comments="yes" ?>
<?rfc sortrefs="yes" ?>

<rfc category="std" ipr="trust200902" docName="draft-lozano-regext-epp-transf-contact-inf-00">
  <front>
    <title abbrev="EPP Transformation of Contact Information">Transformation of Contact Information Extension Mapping for the Extensible Provisioning Protocol (EPP)</title>
    
    <!-- add 'role="editor"' below for the editors if appropriate -->
    
    <!-- Another author who claims to be an editor -->
    <author fullname="Gustavo Lozano" initials="G.L." surname="Lozano">
      <organization>ICANN</organization>
      
      <address>
        <postal>
          <street>12025 Waterfront Drive, Suite 300</street>
          <city>Los Angeles</city>
          
          <code>90292</code>
          
          <country>US</country>
        </postal>
        
        <phone>+1.3103015800</phone>
        
        <email>gustavo.lozano@icann.org</email>
        
      </address>
    </author>
    
    <date day="07" month="July" year="2016"/>
    
    <!-- Meta-data Declarations -->
    
    <area>Applications</area>
    
    <workgroup>Internet Engineering Task Force</workgroup>
    
    <keyword>
      Transformation of Contact Information
    </keyword>
    
    <abstract>
      <t>
        This document describes an Extensible Provisioning Protocol (EPP)
        extension mapping for the provisioning and management of transformation
        (i.e. translation and transliteration) of contact information for objects stored in a
        shared central repository. Specified in XML, this mapping extends
        the EPP contact mapping.
      </t>
    </abstract>
  </front>
  
  <middle>
    <section title="Introduction">
      <t>
        This document describes an extension mapping for version 1.0 of the
        Extensible Provisioning Protocol (EPP) described in 
        <xref target="RFC5730" />.  This mapping, an extension of the contact mapping
        described in  <xref target="RFC5733" />, is specified using the Extensible
        Markup Language (XML) 1.0 <xref target="W3C.REC-xml" /> and XML Schema
        notation (<xref target="W3C.REC-xmlschema-1" />
        <xref target="W3C.REC-xmlschema-2" />).
      </t>
      <t>
        The EPP core protocol specification <xref target="RFC5730" /> provides a complete
        description of EPP command and response structures.  A thorough
        understanding of the base protocol specification is necessary to
        understand the mapping described in this document. 
      </t>
      <t>
        This document is written following the Guidelines for
        Extending the Extensible Provisioning Protocol as defined in
        <xref target="RFC3735" />.
      </t>
      <t>
        Generic TLDs (gTLDs) Domain Name Registries and Registrars operating according
        to an agreement with the Internet Corporation for Assigned Names and Numbers (ICANN) 
        are required to follow ICANN Consensus Policies. 
      </t>
      <t>
        On 28/September/2015, the ICANN Board adopted the GNSO Council Policy Recommendations 
        concerning the translation and transliteration of contact information as presented in the "Final Report on the Translation and Transliteration of
        Contact Information Policy Development Process" (T&amp;T Report, see <xref target="TTOCI"/>).
      </t>
      <t>
        The T&amp;T Report recommends:
        <list style='symbols'>
          <t>
            Whilst noting that a Whois replacement system should be capable of receiving
            input in the form of non-ASCII script contact information, the Working Group recommends its data
            fields be stored and displayed in a way that allows for easy identification of what the different data
            entries represent and what language(s)/script(s) have been used by the registered name holder
          </t>
        </list>
      </t>
      
      <t>
        This specification is intended to be used by gTLD Domain Name Registries and Registrars in order 
        to support this recommendation.
      </t>
      <section title="Terminology">
        <t>
          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 <xref
            target="RFC2119">RFC 2119</xref>.
        </t>
        <t>
          In examples, "C:" represents lines sent by a protocol client, and
          "S:" represents lines returned by a protocol server. "////" is used
          to note element values that have been shortened to better fit page
          boundaries.  Indentation and white space in examples is provided only
          to illustrate element relationships and is not a mandatory feature of
          this protocol.
        </t>
        <t>
          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.
        </t>
        <t>
          ird-1.0 is used as an abbreviation for
          urn:ietf:params:xml:ns:ird-1.0.
          The XML namespace prefix "ird" 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.
        </t>
      </section>
    </section>
    
    <section title="Object Elements">
      <t>
        This extension adds additional elements to the EPP contact
        mapping <xref target="RFC5733" />.  Only those new elements are described here.
      </t>
      <t>
        Postal-address information in <xref target="RFC5733" /> can be provided in both internationalized and
        localized forms; a "type" attribute is used to identify the two
        forms. The use of this extension requires that:
        <list style="symbols">
          <t>          
            If two &lt;contact:postalInfo&gt; elements are defined for a 
            contact object, one &lt;contact:postalInfo&gt; is the authoritative information from which other transformations 
            (i.e. translations or transliterations) are derived, and the other &lt;contact:postalInfo&gt; is a transformation.
          </t>
          <t>
            One and only one &lt;contact:postalInfo&gt; element MUST be defined as authoritative.
          </t>
        </list>
      </t>
      <section anchor="commonElements" title="Common Elements">
        <t>
          The following common elements are used in this extension:
          <list style="symbols">
            <t>
              &lt;ird:country&gt;, contains the name of the country in the &lt;addr&gt; element. 
              A "lang" attribute contains the language identifier. Language
              identifiers MUST be structured as documented in <xref target="RFC5646" />.
            </t>
            <t>
              &lt;ird:transliterationStd&gt;, contains the transliteration standard used for the transformation. 
              This element MUST only be present if the transformation is a transliteration. 
            </t>
          </list>
        </t>
      </section>
      <section  title="Postal Information Objects">
        
        <t>
          The following postal information objects are used in this extension:
        </t>
        <section anchor="contactpostalinfo" title="Contact Postal Information">
          <t>The &lt;ird:contactPostalInfo&gt; is used to specify the Internationalized Registration Data (IRD) information of the &lt;contact:postalInfo&gt;.
            A required "type" attribute is used to specify the relation to a &lt;contact:postalInfo&gt; element. Possible values for the "type" attribute are: localized ("loc") or internationalized ("int").
            A required "infSource" attribute is used to specify the source (i.e. "registry", "registrar", "reseller", or "registrant") of the &lt;contact:postalInfo&gt; information.
            A required "authOrTransMechanism" attribute is used to define which of the two types ("loc" or "int") of &lt;contact:postalInfo&gt; is the 
            authoritative information from which the transformations are derived. Alternatively, if the &lt;contact:postalInfo&gt; is not authoritative, then it has been transformed
            (i.e. "translation" or "transliteration").
          </t>
          
          <t>The &lt;ird:contactPostalInfo&gt; object contains the following child elements:
            <list style="symbols">
              <t>
                An &lt;ird:nameLang&gt; element contains the language identifier of a &lt;contact:name&gt; element.
              </t>
              <t>
                An &lt;ird:addrLang&gt; element contains the language identifier of a &lt;contact:addr&gt; element.
              </t>
              <t>
                An OPTIONAL &lt;ird:orgLang&gt; element contains the language identifier of a &lt;contact:org&gt; element.
              </t>
              <t>
                An &lt;ird:country&gt; element, see definition in  (see <xref target="commonElements" />). 
              </t>
              <t>
                An OPTIONAL &lt;ird:transliterationStd&gt; element, see definition in  (see <xref target="commonElements" />). 
              </t>
            </list>
          </t>
        </section>
        <section anchor="additionalpostalinfo" title="Additional Postal Information">
          <t>The &lt;ird:additionalPostalInfo&gt; is used to specify additional transformations of the authoritative &lt;contact:postalInfo&gt; element.
            A required "infSource" attribute is used to specify the source  (i.e. "registry", "registrar", "reseller", or "registrant") of the additional transformation.
            An required "conversionMechanism" attribute is used to define the transformation mechanism (i.e. "transliteration" or "translation") of the authoritative &lt;contact:postalInfo&gt; information.
          </t>
          <t>The &lt;ird:additionalPostalInfo&gt; object contains the following child elements:
            <list style="symbols">
              <t>
                An &lt;ird:id&gt; element that contains the server-unique identifier
                of the &lt;ird:additionalPostalInfo&gt;. When adding a new &lt;ird:additionalPostalInfo&gt;, the
                &lt;ird:id&gt; element contains the desired server-unique identifier.
              </t>
              <t>
                A &lt;ird:name&gt; element that contains the transformation of  &lt;contact:name&gt;.
                A "lang" attribute contains the language identifier.
              </t>
              <t>
                An OPTIONAL &lt;ird:org&gt; element that contains the transformation of  &lt;contact:org&gt;.
                A "lang" attribute contains the language identifier.
              </t> 
              <t>
                An  &lt;ird:addr&gt; element that contains  the transformation of  &lt;contact:addr&gt;. 
                A "lang" attribute contains the language identifier.
                A &lt;ird:addr&gt; contains the following child elements:
                
                <list style="symbols">
                  <t>
                    One, two, or three OPTIONAL &lt;ird:street&gt; elements that
                    contain the transformation of &lt;contact:street&gt;.
                  </t>
                  <t>
                    A &lt;ird:city&gt; element that contains the transformation of &lt;contact:city&gt;.
                  </t>
                  <t>
                    An OPTIONAL &lt;ird:sp&gt; element that contains the transformation of &lt;contact:sp&gt;
                  </t>
                </list>
              </t>
              <t>
                An &lt;ird:country&gt; element, see definition in  (see <xref target="commonElements" />). 
              </t>
              <t>
                An OPTIONAL &lt;ird:transliterationStd&gt; element, see definition in  (see <xref target="commonElements" />). 
              </t>
              <t>
                
                An OPTIONAL &lt;ird:disclose&gt; is used by the client to identify elements that require
                exceptional server-operator handling to allow or restrict disclosure
                to third parties. The &lt;ird:disclose&gt; element MUST contain a "flag"
                attribute.  The "flag" attribute contains an XML Schema boolean
                value.  A value of "true" or "1" (one) notes a client preference to
                allow disclosure of the specified elements as an exception to the
                stated data-collection policy.  A value of "false" or "0" (zero)
                notes a client preference to not allow disclosure of the specified
                elements as an exception to the stated data-collection policy.
                
                The &lt;ird:disclose&gt; element MUST contain at least one of the
                following child elements:
                <list style="symbol">
                  <t>&lt;ird:name /&gt;</t>
                  <t>&lt;ird:org /&gt;</t>
                  <t>&lt;ird:addr /&gt;</t>
                </list>
              </t>
            </list>
          </t>
        </section>
      </section>
      
    </section>
    
    <section title="EPP Command Mapping">
      <t>
        A detailed description of the EPP syntax and semantics can be found
        in the EPP core protocol specification <xref target="RFC5730" />.  The command
        mappings described here are specifically for use in provisioning and
        managing of transformation of contact information via EPP.
      </t>
      <section title="EPP Query commands">
        <t>   
          EPP provides three commands to retrieve object information: &lt;check&gt;
          to determine if an object is known to the server, &lt;info&gt; to retrieve
          detailed information associated with an object, and &lt;transfer&gt; to
          retrieve object transfer status information.
        </t>
        <section title="EPP &lt;check&gt;  command">
          <t>
            This extension does not add any elements to the EPP &lt;check&gt; command
            or &lt;check&gt; response described in the EPP contact mapping <xref target="RFC5733" />.
          </t>
        </section>
        
        
        <section title="EPP &lt;info&gt; command">      
          <t>
            This extension does not add any elements to the EPP &lt;info&gt; command
            described in the EPP contact mapping <xref target="RFC5733" />.  However, additional
            elements are defined for the &lt;info&gt; response.
          </t>
          <t>
            When an &lt;info&gt; command has been processed successfully the EPP &lt;extension&gt; element
            MUST contain a child &lt;ird:infData&gt; element.  The &lt;ird:infData&gt; 
            element contains the following child elements:
            <list style="symbol">
              <t>
                One or two &lt;ird:contactPostalInfo&gt; elements. 
              </t>
              <t>
                Zero or more OPTIONAL &lt;ird:additionalPostalInfo&gt; elements.
              </t>
            </list>
          </t>
          
          <t>
            Example &lt;info&gt; response:
          </t>
          
          <figure>
              <artwork><![CDATA[
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:      <contact:infData
S:        xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
S:        <contact:id>sh8013</contact:id>
S:        <contact:roid>SH8013-REP</contact:roid>
S:        <contact:status s="linked"/>
S:        <contact:status s="clientDeleteProhibited"/>
S:        <contact:postalInfo type="loc">
S:          <contact:name>Иван Петрович Сидоров</contact:name>
S:          <contact:addr>
S:            <contact:street>8343 Драгатуш</contact:street>
S:            <contact:city>Бобруйск</contact:city>
S:            <contact:pc>20166-6503</contact:pc>
S:            <contact:cc>RU</contact:cc>
S:          </contact:addr>
S:        </contact:postalInfo>
S:        <contact:postalInfo type="int">
S:          <contact:name>Ivan Petrovich Sidorov</contact:name>
S:          <contact:addr>
S:            <contact:street>8343 Dragatush</contact:street>
S:            <contact:city>Babruysk</contact:city>
S:            <contact:pc>20166-6503</contact:pc>
S:            <contact:cc>RU</contact:cc>
S:          </contact:addr>
S:        </contact:postalInfo>
S:        <contact:voice x="1234">+1.7035555555</contact:voice>
S:        <contact:fax>+1.7035555556</contact:fax>
S:        <contact:email>ivan@example.com</contact:email>
S:        <contact:clID>ClientY</contact:clID>
S:        <contact:crID>ClientX</contact:crID>
S:        <contact:crDate>1999-04-03T22:00:00.0Z</contact:crDate>
S:        <contact:upID>ClientX</contact:upID>
S:        <contact:upDate>1999-12-03T09:00:00.0Z</contact:upDate>
S:        <contact:trDate>2000-04-08T09:00:00.0Z</contact:trDate>
S:        <contact:authInfo>
S:          <contact:pw>2fooBAR</contact:pw>
S:        </contact:authInfo>
S:        <contact:disclose flag="0">
S:          <contact:voice/>
S:          <contact:email/>
S:        </contact:disclose>
S:      </contact:infData>
S:    </resData>
S:    <extension>
S:      <ird:infData 
S:        xmlns:ird="urn:ietf:params:xml:ns:ird-1.0" 
S:        xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
S:        <ird:contactPostalInfo infSource="registrant" 
S:          type="loc" authOrTransMechanism="authoritative">
S:          <ird:nameLang>ru</ird:nameLang>
S:          <ird:addrLang>ru</ird:addrLang>
S:          <ird:country lang="ru">Россия</ird:country>
S:        </ird:contactPostalInfo>
S:        <ird:contactPostalInfo infSource="registrar" 
S:          type="int" authOrTransMechanism="translation">
S:          <ird:nameLang>en</ird:nameLang>
S:          <ird:addrLang>en</ird:addrLang>
S:          <ird:country lang="en">Russia</ird:country>
S:        </ird:contactPostalInfo>  
S:        <ird:additionalPostalInfo infSource="registrar"
S:          transMechanism="transliteration">         
S:          <ird:id>sh8013-3</ird:id>
S:          <ird:name lang="ru-Latn">Ivan Petrovič Sidorov</ird:name>
S:          <ird:addr lang="ru-Latn">
S:            <ird:street>8343 Dragatuš</ird:street>
S:            <ird:city>Bobrujsk</ird:city>
S:            <ird:pc>20166-6503</ird:pc>
S:            <ird:cc>RU</ird:cc>
S:          </ird:addr>
S:          <ird:country lang="ru-Latn">Rossiâ</ird:country>
S:          <ird:transliterationStd>iso9</ird:transliterationStd>
S:          <ird:disclose flag="0">
S:            <ird:name/>
S:          </ird:disclose>
S:        </ird:additionalPostalInfo>
S:        <ird:additionalPostalInfo infSource="registrar" 
S:          transMechanism="translation">         
S:          <ird:id>sh8013-4</ird:id>
S:          <ird:name lang="es">Iván Petrovich Sidorov</ird:name>
S:          <ird:addr lang="es">
S:            <ird:street>8343 Dragatush</ird:street>
S:            <ird:city>Babruysk</ird:city>
S:            <ird:pc>20166-6503</ird:pc>
S:            <ird:cc>RU</ird:cc>
S:          </ird:addr>
S:          <ird:country lang="es">Rusia</ird:country>
S:          <ird:disclose flag="0">
S:            <ird:name/>
S:          </ird:disclose>
S:        </ird:additionalPostalInfo>
S:      </ird:infData>
S:    </extension>
S:    <trID>
S:      <clTRID>ABC-12345</clTRID>
S:      <svTRID>54322-XYZ</svTRID>
S:    </trID>
S:  </response>
S:</epp>
]]></artwork>
          </figure>            
        </section>
        
        
        <section title="EPP &lt;transfer&gt; command">
          <t>
            This extension does not add any elements to the EPP &lt;transfer&gt; command
            or &lt;check&gt; response described in the EPP contact mapping <xref target="RFC5733" />.
          </t>
          
        </section>
      </section>
      
      
      <section title="EPP Transform commands">
        <t>
          EPP provides five commands to transform objects: &lt;create&gt; to create
          an instance of an object, &lt;delete&gt; to delete an instance of an
          object, &lt;renew&gt; to extend the validity period of an object,
          &lt;transfer&gt; to manage object sponsorship changes, and &lt;update&gt; to
          change information associated with an object.
        </t>
        
        <section title="EPP &lt;create&gt; command">
          <t>
            This extension defines additional elements for the EPP &lt;create&gt;
            command described in the EPP contact mapping <xref target="RFC5733" />.
            When a &lt;create&gt; command that includes this extension has been processed successfully,
            the response MUST include this EPP &lt;extension&gt; with a child &lt;ird:infData&gt; element.  
          </t>
          <t>
            The EPP &lt;create&gt; command provides a transform operation that allows a
            client to create a contact object.  In addition to the EPP command
            elements described in the EPP contact mapping <xref target="RFC5733" />, the command
            MUST contain an &lt;extension&gt; element, and the &lt;extension&gt; element MUST
            contain a child  &lt;ird:infData&gt; element that identifies the extension
            namespace if the client wants to associate data defined in this
            extension to the contact object.   The &lt;ird:infData&gt; 
            element contains the following child elements:
            
            <list style="symbol">
              <t>
                One or two &lt;ird:contactPostalInfo&gt; elements.
              </t>
              <t>
                Zero or more OPTIONAL &lt;ird:additionalPostalInfo&gt; elements.
              </t>
            </list>
          </t>
          
          
          <t>
            Example &lt;create&gt; command:
          </t>
          
          <figure>
              <artwork><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:  <command>
C:    <create>
C:      <contact:create
C:        xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
C:        <contact:id>sh8013</contact:id>
C:        <contact:postalInfo type="loc">
C:          <contact:name>Иван Петрович Сидоров</contact:name>
C:          <contact:addr>
C:            <contact:street>8343 Драгатуш</contact:street>
C:            <contact:city>Бобруйск</contact:city>
C:            <contact:pc>20166-6503</contact:pc>
C:            <contact:cc>RU</contact:cc>
C:          </contact:addr>
C:        </contact:postalInfo>
C:        <contact:postalInfo type="int">
C:          <contact:name>Ivan Petrovich Sidorov</contact:name>
C:          <contact:addr>
C:            <contact:street>8343 Dragatush</contact:street>
C:            <contact:city>Babruysk</contact:city>
C:            <contact:pc>20166-6503</contact:pc>
C:            <contact:cc>RU</contact:cc>
C:          </contact:addr>
C:        </contact:postalInfo>
C:        <contact:voice x="1234">+1.7035555555</contact:voice>
C:        <contact:fax>+1.7035555556</contact:fax>
C:        <contact:email>ivan@example.com</contact:email>
C:        <contact:authInfo>
C:          <contact:pw>2fooBAR</contact:pw>
C:        </contact:authInfo>
C:        <contact:disclose flag="0">
C:          <contact:voice/>
C:          <contact:email/>
C:        </contact:disclose>
C:      </contact:create>
C:    </create>
C:    <extension>
C:      <ird:infData 
C:        xmlns:ird="urn:ietf:params:xml:ns:ird-1.0" >
C:        <ird:contactPostalInfo infSource="registrant" 
C:          type="loc" authOrTransMechanism="authoritative">
C:          <ird:nameLang>ru</ird:nameLang>
C:          <ird:addrLang>ru</ird:addrLang>
C:          <ird:country lang="ru">Россия</ird:country>
C:        </ird:contactPostalInfo>
C:        <ird:contactPostalInfo infSource="registrar" 
C:          type="int" authOrTransMechanism="translation">
C:          <ird:nameLang>en</ird:nameLang>
C:          <ird:addrLang>en</ird:addrLang>
C:          <ird:country lang="en">Russia</ird:country>
C:        </ird:contactPostalInfo>  
C:        <ird:additionalPostalInfo infSource="registrar"
C:          transMechanism="transliteration">         
C:          <ird:id>sh8013-3</ird:id>
C:          <ird:name lang="ru-Latn">Ivan Petrovič Sidorov</ird:name>
C:          <ird:addr lang="ru-Latn">
C:            <ird:street>8343 Dragatuš</ird:street>
C:            <ird:city>Bobrujsk</ird:city>
C:            <ird:pc>20166-6503</ird:pc>
C:            <ird:cc>RU</ird:cc>
C:          </ird:addr>
C:          <ird:country lang="ru-Latn">Rossiâ</ird:country>
C:          <ird:transliterationStd>iso9</ird:transliterationStd>
C:          <ird:disclose flag="0">
C:            <ird:name/>
C:          </ird:disclose>
C:        </ird:additionalPostalInfo>
C:        <ird:additionalPostalInfo infSource="registrar" 
C:          transMechanism="translation">         
C:          <ird:id>sh8013-4</ird:id>
C:          <ird:name lang="es">Iván Petrovich Sidorov</ird:name>
C:          <ird:addr lang="es">
C:            <ird:street>8343 Dragatush</ird:street>
C:            <ird:city>Babruysk</ird:city>
C:            <ird:pc>20166-6503</ird:pc>
C:            <ird:cc>RU</ird:cc>
C:          </ird:addr>
C:          <ird:country lang="es">Rusia</ird:country>
C:          <ird:disclose flag="0">
C:            <ird:name/>
C:          </ird:disclose>
C:        </ird:additionalPostalInfo>
C:      </ird:infData>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
]]></artwork>
            </figure>  
            
       

            
          </section> 
          <section title="EPP &lt;delete&gt; command">
            <t>
              This extension does not add any elements to the EPP &lt;delete&gt; command
              or &lt;delete&gt; response described in the EPP contact mapping <xref target="RFC5733" />.
            </t>
          </section>
          <section title="EPP &lt;renew&gt; command">
            <t>
              This extension does not add any elements to the EPP &lt;renew&gt; command
              or &lt;renew&gt; response described in the EPP contact mapping <xref target="RFC5733" />.
            </t>
          </section>
          <section title="EPP &lt;transfer&gt;  command">
            <t>
              This extension does not add any elements to the EPP &lt;transfer&gt; command
              or &lt;transfer&gt; response described in the EPP contact mapping <xref target="RFC5733" />.
            </t>
          </section>
        
          <section title="EPP &lt;update&gt; command">
            <t>This extension defines additional elements for the EPP &lt;update&gt;
              command described in the EPP contact mapping <xref target="RFC5733" />.  
              When an &lt;update&gt; command that includes this extension has been processed successfully,
              the response MUST include this EPP &lt;extension&gt; with a child &lt;ird:infData&gt; element.  
            </t>
            <t>
              The EPP &lt;update&gt; command provides a transform operation that allows a
              client to modify the attributes of a contact object.  In addition to
              the EPP command elements described in the EPP contact mapping, the
              command MUST contain an &lt;extension&gt; element, and the &lt;extension&gt;
              element MUST contain a child &lt;ird:update&gt; element that identifies
              the extension namespace if the client wants to update the contact
              object with data defined in this extension.  The &lt;ird:update&gt;
              element contains a &lt;ird:add&gt; element to add ird information or, 
              a &lt;ird:rem&gt; element to remove ird information.
            </t>
            <t>
              The order of the &lt;ird:rem&gt; and &lt;ird:add&gt; elements is significant, where the
              server MUST first remove the existing elements prior to adding the
              new elements.
            </t>
            <t>
              The &lt;ird:update&gt; element contains the following child elements:
            <list style="symbol">              
              <t>
                An OPTIONAL &lt;ird:add&gt; element that is used to add IRD
                information to a contact object. 
                The &lt;ird:add&gt; 
                element MUST contain the following child elements:
                <list style="symbol">
                  <t>
                    One or two  &lt;ird:contactPostalInfo&gt; elements. 
                  </t>
                  <t>
                    Zero or more OPTIONAL &lt;ird:additionalPostalInfo&gt; elements.
                  </t>
                </list>
              </t>
              <t>
                An OPTIONAL &lt;ird:rem&gt; element that is used to remove IRD
                information of a contact object. 
                The &lt;ird:rem&gt; 
                element MUST contain at least one of the following child elements:
                <list style="symbol">
                  <t>
                    Zero or two OPTIONAL &lt;ird:contactPostalInfoRem&gt; elements the contains the type ("loc" or "int) of 
                    &lt;ird:contactPostalInfo&gt; to be removed. 
                  </t>
                  <t>
                    Zero or more OPTIONAL &lt;ird:id&gt; elements.
                  </t>
                </list>
              </t>
            </list>
            </t>
            <t>
              Example of &lt;update&gt;:
            </t>
            
            <figure>
              <artwork><![CDATA[
C:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
C:<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
C:  <command>
C:    <update>
C:      <contact:update
C:        xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
C:        <contact:id>sh8013</contact:id>
C:        <contact:add>
C:          <contact:status s="clientDeleteProhibited"/>
C:        </contact:add>
C:      </contact:update>
C:    </update>
C:    <extension>
C:      <ird:update 
C:        xmlns:ird="urn:ietf:params:xml:ns:ird-1.0" >
C:        <ird:rem>
C:          <ird:contactPostalInfoRem>int</ird:contactPostalInfoRem>
C:          <ird:id>sh8013-1</ird:id>
C:          <ird:id>sh8013-2</ird:id>
C:        </ird:rem>
C:        <ird:add>
C:          <ird:contactPostalInfo infSource="registrant" 
C:            type="loc" authOrTransMechanism="authoritative">
C:            <ird:nameLang>ru</ird:nameLang>
C:            <ird:addrLang>ru</ird:addrLang>
C:            <ird:country lang="ru">Россия</ird:country>
C:          </ird:contactPostalInfo>
C:          <ird:contactPostalInfo infSource="registrar" 
C:            type="int" authOrTransMechanism="translation">
C:            <ird:nameLang>en</ird:nameLang>
C:            <ird:addrLang>en</ird:addrLang>
C:            <ird:country lang="en">Russia</ird:country>
C:          </ird:contactPostalInfo>  
C:          <ird:additionalPostalInfo infSource="registrar"
C:            transMechanism="transliteration">         
C:            <ird:id>sh8013-3</ird:id>
C:            <ird:name lang="ru-Latn">Ivan Petrovič Sidorov</ird:name>
C:            <ird:addr lang="ru-Latn">
C:              <ird:street>8343 Dragatuš</ird:street>
C:              <ird:city>Bobrujsk</ird:city>
C:              <ird:pc>20166-6503</ird:pc>
C:              <ird:cc>RU</ird:cc>
C:            </ird:addr>
C:            <ird:country lang="ru-Latn">Rossiâ</ird:country>
C:            <ird:transliterationStd>iso9</ird:transliterationStd>
C:            <ird:disclose flag="0">
C:              <ird:name/>
C:            </ird:disclose>
C:          </ird:additionalPostalInfo>
C:          <ird:additionalPostalInfo infSource="registrar" 
C:            transMechanism="translation">         
C:            <ird:id>sh8013-4</ird:id>
C:            <ird:name lang="es">Iván Petrovich Sidorov</ird:name>
C:            <ird:addr lang="es">
C:              <ird:street>8343 Dragatush</ird:street>
C:              <ird:city>Babruysk</ird:city>
C:              <ird:pc>20166-6503</ird:pc>
C:              <ird:cc>RU</ird:cc>
C:            </ird:addr>
C:            <ird:country lang="es">Rusia</ird:country>
C:            <ird:disclose flag="0">
C:              <ird:name/>
C:            </ird:disclose>
C:          </ird:additionalPostalInfo>
C:        </ird:add>
C:      </ird:update>
C:    </extension>
C:    <clTRID>ABC-12345</clTRID>
C:  </command>
C:</epp>
]]></artwork>
            </figure> 
              
              
          </section>
      </section>
      
    </section>
    
    
    <section anchor="syntax" title="Formal Syntax">
      
      <t>
        An EPP object mapping is specified in XML Schema notation.  The
        formal syntax presented here is a complete schema representation of
        the object mapping suitable for automated validation of EPP XML
        instances.
      </t>
      
      <section title="ird Schema">
        <t>Copyright (c) 2016 IETF Trust and the persons
          identified as authors of the code.  All rights reserved.</t>
        
        <t>Redistribution and use in source and binary forms, with
          or without modification, is permitted pursuant to, and
          subject to the license terms contained in, the Simplified
          BSD License set forth in Section 4.c of the IETF Trust's
          Legal Provisions Relating to IETF Documents
          (http://trustee.ietf.org/license-info).</t>
        
        <figure>
<artwork><![CDATA[
BEGIN
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:ietf:params:xml:ns:ird-1.0"
  xmlns:ird="urn:ietf:params:xml:ns:ird-1.0" 
  xmlns:contact="urn:ietf:params:xml:ns:contact-1.0"
  xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
  xmlns:epp="urn:ietf:params:xml:ns:epp-1.0"
  xmlns="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified">
  
  <import namespace="urn:ietf:params:xml:ns:contact-1.0" 
    schemaLocation="contact-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:eppcom-1.0" 
    schemaLocation="eppcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:epp-1.0" 
    schemaLocation="epp-1.0.xsd"/>
  
  <annotation>
    <documentation>
      Extensible Provisioning Protocol v1.0 contact extension
      schema for provisioning and management the transformation
      (i.e. transliteration or translation) of an entity
      object.
    </documentation>
  </annotation>
  
  <element name="infData" type="ird:infDataType"/>
  <element name="update" type="ird:updateDataType"/>
  
  <complexType name="updateDataType">
    <sequence>
      <element name="rem" type="ird:remType"
        minOccurs="0"/>
      <element name="add" type="ird:infDataType"
        minOccurs="0"/>
    </sequence>
  </complexType>  
  
  <complexType name="remType">
    <sequence>
      <element name="contactPostalInfoRem" 
        type="contact:postalInfoEnumType" 
        minOccurs="0" maxOccurs="2"/>
      <element name="id" type="eppcom:clIDType" 
        minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType> 
  
  
  <complexType name="infDataType">
    <sequence>
      <element name="contactPostalInfo" 
        type="ird:contactPostalInfoDataType" 
        minOccurs="1" maxOccurs="2"/>
      <element name="additionalPostalInfo" 
        type="ird:additionalPostalInfoDataType"
        minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>  
  
  <complexType name="contactPostalInfoDataType">
    <sequence>
      <element name="nameLang" type="language" />
      <element name="orgLang" type="language" minOccurs="0"/>
      <element name="addrLang" type="language" />
      <element name="country" type="ird:countryType" />
      <element name="transliterationStd" type="token" 
        minOccurs="0"/>
    </sequence>
    <attribute name="type" type="contact:postalInfoEnumType"
      use="required"/>
    <attribute name="infSource" type="ird:infSourceEnumType"
      use="required"/>
    <attribute name="authOrTransMechanism" 
      type="ird:authOrTransMechanismEnumType" />
  </complexType>
  
  <complexType name="additionalPostalInfoDataType">
    <sequence>
      <element name="id" type="eppcom:clIDType"/>
      <element name="name" type="ird:name" />
      <element name="org" type="ird:org"
        minOccurs="0"/>
      <element name="addr" type="ird:addrType"/>
      <element name="country" type="ird:countryType" />
      <element name="transliterationStd" type="token"
        minOccurs="0"/>
      <element name="disclose" type="ird:discloseType"
        minOccurs="0"/>
    </sequence>
    <attribute name="infSource" type="ird:infSourceEnumType"
      use="required"/>
    <attribute name="transMechanism" 
      type="ird:conversionMechanismEnumType" use="required"/>
  </complexType>
  
  <complexType name="name">
    <simpleContent>
      <extension base="contact:postalLineType">
        <attribute name="lang" type="language" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  
  <complexType name="org">
    <simpleContent>
      <extension base="contact:optPostalLineType">
        <attribute name="lang" type="language" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  
  <complexType name="addrType">
    <sequence>
      <element name="street" type="contact:optPostalLineType"
        minOccurs="0" maxOccurs="3"/>
      <element name="city" type="contact:postalLineType"/>
      <element name="sp" type="contact:optPostalLineType"
        minOccurs="0"/>
      <element name="pc" type="contact:pcType"
        minOccurs="0"/>
      <element name="cc" type="contact:ccType"/>
    </sequence>
    <attribute name="lang" type="language" use="required" />
  </complexType>
  
  <complexType name="countryType">
    <simpleContent>
      <extension base="token">
        <attribute name="lang" type="language" use="required" />
      </extension>
    </simpleContent>
  </complexType>
  
  <simpleType name="infSourceEnumType">
    <restriction base="token">
      <enumeration value="registry"/>
      <enumeration value="registrar"/>
      <enumeration value="reseller"/>
      <enumeration value="registrant"/>
    </restriction>
  </simpleType>
  
  <simpleType name="conversionMechanismEnumType">
    <restriction base="token">
      <enumeration value="translation"/>
      <enumeration value="transliteration"/>
    </restriction>
  </simpleType>
  
  <simpleType name="authOrTransMechanismEnumType">
    <restriction base="token">
      <enumeration value="authoritative"/>
      <enumeration value="translation"/>
      <enumeration value="transliteration"/>
    </restriction>
  </simpleType>
  
  <complexType name="discloseType">
    <sequence>
      <element name="name" minOccurs="0"/>
      <element name="org" minOccurs="0"/>
      <element name="addr" minOccurs="0"/>
      <element name="voice" minOccurs="0"/>
      <element name="fax" minOccurs="0"/>
      <element name="email" minOccurs="0"/>
    </sequence>
    <attribute name="flag" type="boolean" use="required"/>
  </complexType>
  
</schema>
END]]></artwork>
        </figure>
      </section>
    </section>
    
    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>
        TBD.
      </t>
    </section>
    
    <section anchor="IANA" title="IANA Considerations">
      <t>
        This document uses URNs to describe XML namespaces and XML schemas
        conforming to a registry mechanism described in <xref target="RFC3688"/>.
        Two URI assignments have been registered by the IANA.
      </t>    
      <t>Registration request for the ird namespace:</t>
      <t>
        <list>
          <t>URI: urn:ietf:params:xml:ns:ird-1.0"</t>
          <t>Registrant Contact: IESG</t>
          <t>XML: None.  Namespace URIs do not represent an XML specification.</t>
        </list>
      </t>
      
      <t>Registration request for the ird schema:</t>
      <t>
        <list>
          <t>URI: urn:ietf:params:xml:schema:ird-1.0"</t>
          <t>Registrant Contact: IESG</t>
          <t>XML: See the &quot;Formal Syntax&quot; section of this document.</t>
        </list>
      </t>
    </section>
    
    <section anchor="Internationalization" title="Internationalization Considerations">
      <t>
        The internationalization considerations of EPP described in <xref target="RFC5730" /> apply
        to this specification as well.
      </t>
    </section>
    
    <section anchor="Security" title="Security Considerations">
      <t>
        The mapping extensions described in this document do not provide any
        security services beyond those described by EPP <xref target="RFC5730" />, the EPP
        contact mapping <xref target="RFC5733" />, and protocol layers used by EPP.  The
        security considerations described in these other specifications apply
        to this specification as well.
      </t>
    </section>
    
  </middle>
  
  <!--  *****BACK MATTER ***** -->
  
  <back>
    <!-- References split into informative and normative -->
    
    <!-- There are 2 ways to insert reference entries from the citation libraries:
      1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
      2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
      (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")
      
      Both are cited textually in the same manner: by using xref elements.
      If you use the PI option, xml2rfc will, by default, try to find included files in the same
      directory as the including file. You can also define the XML_LIBRARY environment variable
      with a value containing a set of directories to search.  These can be either in the local
      filing system or remote ones accessed by http (http://domain/dir/... ).-->
    
    <references title="Normative References">
      
      &RFC2119;
      
      &RFC3688;
      
      &RFC3735;
      
      &RFC5646;
      
      &RFC5730;
      
      &RFC5733;
      
      
      <reference anchor="W3C.REC-xml" target="https://www.w3.org/TR/REC-xml/">
        <front>
          <title abbrev='Extensible Markup Language (XML) 1.0 (Second Edition)'>Extensible Markup Language (XML) 1.0 (Second Edition)</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year='2000' month='Oct' />
          <keyword>WIPO</keyword>
        </front>
      </reference>
      
      <reference anchor="W3C.REC-xmlschema-1" target="http://www.w3.org/TR/xUmlschema-1/">
        <front>
          <title abbrev='XML Schema Part 1: Structures Second Edition'>XML Schema Part 1: Structures Second Edition</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year='2004' month='Oct' />
          <keyword>WIPO</keyword>
        </front>
      </reference>
      
      <reference anchor="W3C.REC-xmlschema-2" target="https://www.w3.org/TR/xmlschema-2/">
        <front>
          <title abbrev='XML Schema Part 2: Structures Second Edition'>XML Schema Part 2: Structures Second Edition</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year='2004' month='Oct' />
          <keyword>WIPO</keyword>
        </front>
      </reference>
      
    </references>
    
    <references title="Informative References">
      
      <reference anchor="TTOCI" target="http://gnso.icann.org/en/issues/gtlds/translation-transliteration-contact-final-12jun15-en.pdf">
        <front>
          <title abbrev='TTOCI'>Final Report on the Translation and Transliteration of
            Contact Information Policy Development Process</title>
          <author>
            <organization>ICANN</organization>
          </author>
          <date year='2015' month='June' />
        </front>
      </reference>
    </references>
    
  </back>
</rfc>
