Address Schema

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="address" type="address"/>

  <xs:element name="location" type="location"/>

  <xs:complexType name="address">
    <xs:sequence>
      <xs:element name="type" type="addressType" minOccurs="0"/>
      <xs:element name="country" type="xs:string" minOccurs="0"/>
      <xs:element name="state" type="xs:string" minOccurs="0"/>
      <xs:element name="city" type="xs:string" minOccurs="0"/>
      <xs:element name="district" type="xs:string" minOccurs="0"/>
      <xs:element name="zipcode" type="xs:string" minOccurs="0"/>
      <xs:element name="street" type="xs:string" minOccurs="0"/>
      <xs:element name="number" type="xs:string" minOccurs="0"/>
      <xs:element name="complement" type="xs:string" minOccurs="0"/>
      <xs:element ref="location" minOccurs="0"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="location">
    <xs:sequence>
      <xs:element name="distance" type="xs:string" minOccurs="0"/>
      <xs:element name="lat" type="xs:string" minOccurs="0"/>
      <xs:element name="lng" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="addressType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PLACE"/>
      <xs:enumeration value="STREET"/>
      <xs:enumeration value="DISTRICT"/>
      <xs:enumeration value="CITY"/>
      <xs:enumeration value="STATE"/>
      <xs:enumeration value="ZIPCODE"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>