<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://service.citigroup.com/provider/domainservices/NameANDAddress/x2004/"
    xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"
    targetNamespace="http://service.citigroup.com/provider/domainservices/NameANDAddress/x2004/"    
    elementFormDefault="qualified"
    attributeFormDefault="qualified">

    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- XSD for Name and Address -->
    <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!-- -->
    <!-- Copyright x2004 Citigroup. All rights reserved.-->
    <!-- 05-01-x2005 Created the file.-->
    <!-- BEGIN CHANGE HISTORY:-->
    <!-- 07-Jan-2006 Nilesh Rane initial revision -->
    <!-- 22-Feb-2006     Nilesh Rane     changed element and attribute FORM to qualified to be compatible with .Net Clients -->
    <!-- END CHANGE HISTORY-->
    <!-- -->
    
    <xsd:complexType name="AddressType">
        <xsd:annotation>
            <xsd:documentation>Complex type that defines the structure of an address for reuse</xsd:documentation>
        </xsd:annotation>
        <xsd:all>
            <xsd:element name="FreeTextAddress" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Container for free text address elements</xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="AddressLine" type="xsd:string" minOccurs="1" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>Free format address representation. An address can have more than one line. The order of the AddressLine elements must be preserved.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:any namespace="##other" processContents="skip" minOccurs="0"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
                <xsd:element name="Country">
                    <xsd:annotation>
                        <xsd:documentation>Country name</xsd:documentation>
                    </xsd:annotation>
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
                            <xsd:element name="Code" type="xsd:int" minOccurs="0"/>
                            <xsd:element name="ISOCODE" type="xsd:int" minOccurs="0"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            <xsd:element name="AdministrativeArea" type="tns:AdministrativeAreaType" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Top-level area devision in the country, such as states, districts, provinces, islands, regions, etc.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="Locality" type="tns:LocalityType" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Locality is a named densely populated area such as city, town, village, suburb, army base, etc.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="Thoroughfare" type="tns:ThoroughfareType" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Access route along which buildings are located, such as street, road, channel, crescent, avenue, etc.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="PostCode" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A container for a single free text or structured postcode.</xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="Identifier" type="xsd:string" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>The postcode is formatted according to country-specific rules. Example: SW3 0A8-1A, 600074, 2067</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="RuralDelivery" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A container for postal-specific delivery identifier for remote communities</xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="Identifier" type="xsd:string" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>Free text or structured description of rural delivery route.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="PostalDeliveryPoint" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A single named delivery point where the mail is being dropped off for recipients. E.g. POBox, Private Bag,  free mail numbers, etc.</xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="Identifier" type="xsd:string" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>Free text or structured description of a postal delivery point.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
                <xsd:element name="GML" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>Geocoding coordinates of the  address</xsd:documentation>
                </xsd:annotation>
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element name="Latitude" type="xsd:int"/>
                            <xsd:element name="Longitude" type="xsd:int"/>
                            <xsd:element name="GeoMiles" type="xsd:int"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
        </xsd:all>
            <xsd:attribute name="Type" type="xsd:string"/>
            <xsd:attribute name="ValidFrom" type="xsd:dateTime"/>
            <xsd:attribute name="ValidTo" type="xsd:dateTime"/>
            <xsd:attribute name="Usage" type="xsd:string"/>
            <xsd:attribute name="Status" type="xsd:string"/>
            <xsd:attribute name="StatusDate" type="xsd:dateTime"/>
            <xsd:attribute name="Cleansed_Type" type="xsd:string"/>
            <xsd:attribute name="Cleansed_Status" type="xsd:string"/>
            <xsd:attribute name="Delivery_Prob" type="xsd:string"/>
            <xsd:attribute name="LastUpdateDt" type="xsd:dateTime"/>
    </xsd:complexType>    
    <xsd:complexType name="AdministrativeAreaType">
        <xsd:annotation>
            <xsd:documentation>Complex type for internal reuse</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="Name" type="xsd:string" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>Full name of administrative area or part of it. eg. MI in USA, NSW in Australia</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="SubAdministrativeArea" type="tns:AdministrativeAreaType" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>The next level down division of the area. E.g. state / county, province / reservation.</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:any namespace="##other" processContents="skip" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="LocalityType">
        <xsd:annotation>
            <xsd:documentation>Complex type for internal reuse</xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
            <xsd:element name="Name" type="xsd:string" maxOccurs="unbounded">
                <xsd:annotation>
                    <xsd:documentation>Full name of the locality or part of it</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="SubLocality" minOccurs="0">
                <xsd:annotation>
                    <xsd:documentation>A locality that is smaller and is contained withing the boundaries of the parent locality.</xsd:documentation>
                </xsd:annotation>
                <xsd:complexType>
                    <xsd:complexContent>
                        <xsd:extension base="tns:LocalityType"/>
                    </xsd:complexContent>
                </xsd:complexType>
            </xsd:element>
            <xsd:any namespace="##other" processContents="skip" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ThoroughfareType">
        <xsd:annotation>
            <xsd:documentation>Complex type for internal reuse</xsd:documentation>
        </xsd:annotation>
            <xsd:sequence minOccurs="0" maxOccurs="unbounded">
                <xsd:element name="NameElement" type="xsd:string"/>
                <xsd:element name="Number" type="xsd:int" minOccurs="0"/>
                <xsd:any namespace="##other" processContents="skip" minOccurs="0"/>
            </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ContactType">
        <xsd:annotation>
            <xsd:documentation>
                Complex type of Contact information for internal reuse.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
        <xsd:element name="ContactNumber" minOccurs="1" maxOccurs="unbounded">
            <xsd:annotation>
                <xsd:documentation>Universal Telecommunication number structure</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element name="ContactNumberElement" type="xsd:string" minOccurs="1" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Full contact number information or part of it.</xsd:documentation>
                        </xsd:annotation>
                    </xsd:element>
                    <xsd:any namespace="##other" processContents="skip" minOccurs="0"/>
                </xsd:sequence>
                <xsd:attribute name="MediaType" type="xsd:string">
                    <xsd:annotation>
                        <xsd:documentation>Free text explanation of the line type. E.g.: Telephone, Mobile, Fax, modem</xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="Usage" type="xsd:string">
                    <xsd:annotation>
                        <xsd:documentation>Nature of contact. Example: business, personal, free call, after hours, etc.</xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="ContactHours" type="xsd:string">
                    <xsd:annotation>
                        <xsd:documentation>Free text expression of contact hours</xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="ValidFrom" type="xsd:dateTime">
                    <xsd:annotation>
                        <xsd:documentation>Start Date of the validity of address</xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
                <xsd:attribute name="ValidTo" type="xsd:dateTime">
                    <xsd:annotation>
                        <xsd:documentation>END Date of the validity of address</xsd:documentation>
                    </xsd:annotation>
                </xsd:attribute>
            </xsd:complexType>
        </xsd:element>
        </xsd:sequence>
    </xsd:complexType>    
    <xsd:complexType name="EmailType">
        <xsd:annotation>
            <xsd:documentation>
                Complex type of Email information for internal reuse.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:sequence>
           <xsd:element name="EmailAddresses">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="EmailAddress" type="xsd:string" minOccurs="1" maxOccurs="unbounded">
                        <xsd:annotation>
                            <xsd:documentation>The Email address of a person.</xsd:documentation>
                        </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:any namespace="##other" processContents="skip" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="PersonNameType">
        <xsd:annotation>
            <xsd:documentation>
                Complex type of Persons name like First Name, Last Name information for internal reuse.
            </xsd:documentation>
        </xsd:annotation>
            <xsd:sequence>
               <xsd:element name="NameElement" type="tns:PersonNameElementsEnumeration">
                    <xsd:annotation>
                        <xsd:documentation>The enumeration of Persons name.</xsd:documentation>
                    </xsd:annotation>
               </xsd:element>
               <xsd:element name="NameValue" type="xsd:string" nillable="false"/>               
            </xsd:sequence>
    </xsd:complexType>
    <xsd:simpleType name="PersonNameElementsEnumeration">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="PrecedingTitle"/>
            <xsd:enumeration value="Title"/>
            <xsd:enumeration value="FirstName"/>
            <xsd:enumeration value="MiddleName"/>
            <xsd:enumeration value="LastName"/>
            <xsd:enumeration value="FullName"/>
            <xsd:enumeration value="OtherName"/>
            <xsd:enumeration value="Alias"/>
            <xsd:enumeration value="GenerationIdentifier"/>
            <xsd:enumeration value="PlaceName"/>
            <xsd:enumeration value="AncestorName"/>
        </xsd:restriction>
    </xsd:simpleType>
<!-- end -->
</xsd:schema>
