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

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

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

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

  <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="photo" type="photo"/>

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

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

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

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

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

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

  <xs:complexType name="checkin">
    <xs:sequence>
      <xs:element name="rank" type="xs:long" minOccurs="0"/>
      <xs:element name="count" type="xs:long" minOccurs="0"/>
      <xs:element name="lastCheckin" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="source" type="xs:string" minOccurs="0"/>
      <xs:element ref="creation" minOccurs="0"/>
      <xs:element name="place" type="placeRef" 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="link">
    <xs:sequence/>
    <xs:attribute name="rel" type="xs:string"/>
    <xs:attribute name="uri" type="xs:string"/>
  </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="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="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="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: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:schema>