User 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="answer" type="reviewAnswer"/>

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

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

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

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

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

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

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

  <xs:element name="notifications" type="emailNotificationPermissions"/>

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

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

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

  <xs:element name="places" type="placeRefs"/>

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

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

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

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

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

  <xs:element name="statistics" nillable="true" type="xs:anyType"/>

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

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

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

  <xs:complexType name="user">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="email" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="password" type="xs:string" minOccurs="0"/>
      <xs:element ref="partner" minOccurs="0"/>
      <xs:element name="birth" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="gender" type="xs:string" minOccurs="0"/>
      <xs:element name="ip" type="xs:string" minOccurs="0"/>
      <xs:element ref="creation" minOccurs="0"/>
      <xs:element ref="profile" minOccurs="0"/>
      <xs:element ref="address" minOccurs="0"/>
      <xs:element name="photos" type="photo" minOccurs="0"/>
      <xs:element ref="statistics" minOccurs="0"/>
      <xs:element ref="settings" minOccurs="0"/>
      <xs:element name="socialConnections" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="connection" type="socialConnection" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="url" type="xs:string" minOccurs="0"/>
      <xs:element name="isVivoPartner" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="link">
    <xs:sequence/>
    <xs:attribute name="rel" type="xs:string"/>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="partner">
    <xs:sequence>
      <xs:element name="userId" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element ref="photo" minOccurs="0"/>
      <xs:element name="link" type="xs:string" minOccurs="0"/>
      <xs:element name="partnerPlaces" type="placeRefs" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="placePartnerId" type="xs:string" minOccurs="0"/>
      <xs:element name="senderEmail" type="xs:string" minOccurs="0"/>
      <xs:element name="welcomeEmailTemplate" type="xs:string" minOccurs="0"/>
      <xs:element name="welcomeEmailTitle" type="xs:string" minOccurs="0"/>
      <xs:element name="placeIconUrl" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="photo">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="small" type="xs:string" minOccurs="0"/>
      <xs:element name="medium" type="xs:string" minOccurs="0"/>
      <xs:element name="large" type="xs:string" minOccurs="0"/>
      <xs:element name="original" type="xs:string" minOccurs="0"/>
      <xs:element name="location" type="xs:string" minOccurs="0"/>
      <xs:element name="cdn" type="xs:string" minOccurs="0"/>
      <xs:element ref="creation" minOccurs="0"/>
      <xs:element name="source" type="xs:string" minOccurs="0"/>
      <xs:element name="place" type="placeRef" minOccurs="0"/>
      <xs:element name="moderation" type="photoModeration" minOccurs="0"/>
      <xs:element name="type" type="catalogPhotoType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="creation">
    <xs:sequence>
      <xs:element ref="author" minOccurs="0"/>
      <xs:element name="created" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="userSource" type="userSource" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="author">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="photo" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="userSource">
    <xs:sequence>
      <xs:element ref="category" minOccurs="0"/>
      <xs:element name="source" type="userSourceType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="category">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="primary" type="xs:boolean" minOccurs="0"/>
      <xs:element name="quotationRadius" type="xs:int" minOccurs="0"/>
      <xs:element name="restrict" type="xs:boolean" minOccurs="0"/>
      <xs:element ref="subcategory" minOccurs="0"/>
      <xs:element name="vanityName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="subcategory">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element ref="product" minOccurs="0"/>
      <xs:element name="products" type="product" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="quotationToCategory" type="xs:boolean" minOccurs="0"/>
      <xs:element name="vanityName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="product">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="subcategories" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="subcategory" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="vanityName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="placeRef">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element ref="statistics" minOccurs="0"/>
      <xs:element ref="featured" minOccurs="0"/>
      <xs:element name="urlApontador" type="xs:string" minOccurs="0"/>
      <xs:element name="categories" type="category" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="link" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="statistics">
    <xs:sequence>
      <xs:element name="pageviews" type="xs:string" minOccurs="0"/>
      <xs:element name="rating" type="xs:string" minOccurs="0"/>
      <xs:element name="reviews" type="xs:string" minOccurs="0"/>
      <xs:element name="thumbsUp" type="xs:string" minOccurs="0"/>
      <xs:element name="thumbsDown" type="xs:string" minOccurs="0"/>
      <xs:element name="checkins" type="xs:string" minOccurs="0"/>
      <xs:element name="photos" type="xs:string" minOccurs="0"/>
      <xs:element name="reportAbuse" type="xs:string" minOccurs="0"/>
      <xs:element name="phoneClicks" type="xs:int" minOccurs="0"/>
      <xs:element ref="gender" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="gender">
    <xs:sequence>
      <xs:element name="male" type="xs:double" minOccurs="0"/>
      <xs:element name="female" type="xs:double" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="featured">
    <xs:sequence>
      <xs:element ref="photo" minOccurs="0"/>
      <xs:element ref="review" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="review">
    <xs:sequence>
      <xs:element ref="answer" minOccurs="0"/>
      <xs:element name="boost" type="xs:int" minOccurs="0"/>
      <xs:element name="callback" type="xs:string" minOccurs="0"/>
      <xs:element ref="creation" minOccurs="0"/>
      <xs:element name="firstReview" type="xs:boolean" minOccurs="0"/>
      <xs:element name="highlight" type="xs:boolean" minOccurs="0"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="place" type="placeRef" minOccurs="0"/>
      <xs:element name="source" type="xs:string" minOccurs="0"/>
      <xs:element ref="statistics" minOccurs="0"/>
      <xs:element name="text" type="xs:string" minOccurs="0"/>
      <xs:element name="usersWhoLikeThis" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="userRef" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="reviewAnswer">
    <xs:sequence>
      <xs:element name="text" type="xs:string" minOccurs="0"/>
      <xs:element ref="creation" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="userRef">
    <xs:sequence>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element ref="link" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="photo" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="photoModeration">
    <xs:sequence>
      <xs:element name="photoId" type="xs:string" minOccurs="0"/>
      <xs:element name="date" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="userId" type="xs:string" minOccurs="0"/>
      <xs:element name="status" type="photoModerationType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="placeRefs">
    <xs:complexContent>
      <xs:extension base="arrayList">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="arrayList">
    <xs:complexContent>
      <xs:extension base="abstractList">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractList" abstract="true">
    <xs:complexContent>
      <xs:extension base="abstractCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="abstractCollection" abstract="true">
    <xs:sequence/>
  </xs:complexType>

  <xs:complexType name="profile">
    <xs:sequence>
      <xs:element name="about" type="xs:string" minOccurs="0"/>
      <xs:element name="blogUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="cellnumber" type="xs:string" minOccurs="0"/>
      <xs:element name="facebookUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="newsletter" type="xs:boolean" minOccurs="0"/>
      <xs:element name="orkutUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="relationship" type="xs:int" minOccurs="0"/>
      <xs:element name="showPhone" type="xs:boolean" minOccurs="0"/>
      <xs:element name="twitterUrl" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <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:element name="streetType" 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:complexType name="userStatistics">
    <xs:sequence>
      <xs:element name="checkins" type="xs:int" minOccurs="0"/>
      <xs:element name="followers" type="xs:int" minOccurs="0"/>
      <xs:element name="followings" type="xs:int" minOccurs="0"/>
      <xs:element name="photos" type="xs:int" minOccurs="0"/>
      <xs:element name="places" type="xs:int" minOccurs="0"/>
      <xs:element name="reviews" type="xs:int" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="settings">
    <xs:sequence>
      <xs:element ref="notifications" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="emailNotificationPermissions">
    <xs:sequence>
      <xs:element name="badges" type="xs:boolean" minOccurs="0"/>
      <xs:element name="checkinReview" type="xs:boolean" minOccurs="0"/>
      <xs:element name="following" type="xs:boolean" minOccurs="0"/>
      <xs:element name="friendReviews" type="xs:boolean" minOccurs="0"/>
      <xs:element name="offers" type="xs:boolean" minOccurs="0"/>
      <xs:element name="phoneReview" type="xs:boolean" minOccurs="0"/>
      <xs:element name="suggestionApproved" type="xs:boolean" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="socialConnection">
    <xs:sequence>
      <xs:element name="provider" type="xs:string" minOccurs="0"/>
      <xs:element name="providerUserId" type="xs:string" minOccurs="0"/>
      <xs:element name="accessToken" type="xs:string" minOccurs="0"/>
      <xs:element name="refreshToken" type="xs:string" minOccurs="0"/>
      <xs:element name="expireTime" type="xs:long" minOccurs="0"/>
      <xs:element name="displayName" type="xs:string" minOccurs="0"/>
      <xs:element name="profileUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="imageUrl" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="userSourceType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="MOBILEHOME"/>
      <xs:enumeration value="MOBILEANDROID"/>
      <xs:enumeration value="MOBILEIOS"/>
      <xs:enumeration value="MOBILEWINPHONE"/>
      <xs:enumeration value="ANONIMOUS"/>
      <xs:enumeration value="QUOTATION"/>
      <xs:enumeration value="APONTADORMAIS"/>
      <xs:enumeration value="HOME"/>
      <xs:enumeration value="NEWSLETTER"/>
      <xs:enumeration value="MGM"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="photoModerationType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="APROVADA"/>
      <xs:enumeration value="REPROVADA"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="catalogPhotoType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PRODUCT"/>
      <xs:enumeration value="SERVICE"/>
      <xs:enumeration value="MENU"/>
    </xs:restriction>
  </xs:simpleType>

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