<?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>