<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.propbot.org"
           xmlns="http://www.propbot.org"
           elementFormDefault="qualified">
  <xs:annotation>
    <xs:documentation>
      OpenPMX Lite RSS 2.0 property offer fields. Use one RSS item per marketable offer.
      This schema defines the shared field types; openpmxlite.sch defines publish requirements
      that depend on category and property type.
      xsi:schemaLocation="http://www.propbot.org https://propbot.org/schemas/openpmxlite.xsd"
    </xs:documentation>
  </xs:annotation>

  <xs:simpleType name="nonEmptyText">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="nonNegativeAmount">
    <xs:restriction base="xs:decimal">
      <xs:minInclusive value="0"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="currencyCode">
    <xs:restriction base="xs:string">
      <xs:length value="3"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="rentPeriod">
    <xs:restriction base="xs:string">
        <xs:enumeration value="$/Day"/>
        <xs:enumeration value="$/Week"/>
        <xs:enumeration value="$/BiWeek"/>
        <xs:enumeration value="$/Month"/>
        <xs:enumeration value="$/Year"/>
        <xs:enumeration value="$/SF/Year"/>
        <xs:enumeration value="$/SF/Month"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="lotAreaUnit">
    <xs:restriction base="xs:string">
        <xs:enumeration value="acres"/>
        <xs:enumeration value="sqfeet"/>
        <xs:enumeration value="meters"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="interiorAreaUnit">
    <xs:restriction base="xs:string">
        <xs:enumeration value="sqfeet"/>
        <xs:enumeration value="meters"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="category">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="cfs"/>
        <xs:enumeration value="cfl"/>
        <xs:enumeration value="lfs"/>
        <xs:enumeration value="rfs"/>
        <xs:enumeration value="rfr"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="status">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="Incomplete"/>
        <xs:enumeration value="Active"/>
        <xs:enumeration value="Closed"/>
        <xs:enumeration value="Contingent"/>
        <xs:enumeration value="Contingent Accepting Backup Offers"/>
        <xs:enumeration value="Expired"/>
        <xs:enumeration value="Pending"/>
        <xs:enumeration value="Pending Accepting Backup Offers"/>
        <xs:enumeration value="Temporary Off Market"/>
        <xs:enumeration value="Withdrawn"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="propertytype">
    <xs:simpleType>
      <xs:restriction base="xs:positiveInteger">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
        <xs:enumeration value="3"/>
        <xs:enumeration value="4"/>
        <xs:enumeration value="5"/>
        <xs:enumeration value="6"/>
        <xs:enumeration value="7"/>
        <xs:enumeration value="8"/>
        <xs:enumeration value="9"/>
        <xs:enumeration value="10"/>
        <xs:enumeration value="11"/>
        <xs:enumeration value="12"/>
        <xs:enumeration value="13"/>
        <xs:enumeration value="14"/>
        <xs:enumeration value="15"/>
        <xs:enumeration value="16"/>
        <xs:enumeration value="17"/>
        <xs:enumeration value="18"/>
        <xs:enumeration value="19"/>
        <xs:enumeration value="20"/>
        <xs:enumeration value="21"/>
        <xs:enumeration value="22"/>
        <xs:enumeration value="23"/>
        <xs:enumeration value="24"/>
        <xs:enumeration value="25"/>
        <xs:enumeration value="26"/>
        <xs:enumeration value="27"/>
        <xs:enumeration value="28"/>
        <xs:enumeration value="29"/>
        <xs:enumeration value="30"/>
        <xs:enumeration value="31"/>
        <xs:enumeration value="32"/>
        <xs:enumeration value="33"/>
        <xs:enumeration value="34"/>
        <xs:enumeration value="35"/>
        <xs:enumeration value="36"/>
        <xs:enumeration value="37"/>
        <xs:enumeration value="38"/>
        <xs:enumeration value="39"/>
        <xs:enumeration value="40"/>
        <xs:enumeration value="41"/>
        <xs:enumeration value="42"/>
        <xs:enumeration value="43"/>
        <xs:enumeration value="44"/>
        <xs:enumeration value="45"/>
        <xs:enumeration value="46"/>
        <xs:enumeration value="47"/>
        <xs:enumeration value="48"/>
        <xs:enumeration value="49"/>
        <xs:enumeration value="50"/>
        <xs:enumeration value="51"/>
        <xs:enumeration value="52"/>
        <xs:enumeration value="53"/>
        <xs:enumeration value="54"/>
        <xs:enumeration value="55"/>
        <xs:enumeration value="56"/>
        <xs:enumeration value="57"/>
        <xs:enumeration value="58"/>
        <xs:enumeration value="59"/>
        <xs:enumeration value="60"/>
        <xs:enumeration value="61"/>
        <xs:enumeration value="62"/>
        <xs:enumeration value="63"/>
        <xs:enumeration value="64"/>
        <xs:enumeration value="65"/>
        <xs:enumeration value="66"/>
        <xs:enumeration value="67"/>
        <xs:enumeration value="68"/>
        <xs:enumeration value="69"/>
        <xs:enumeration value="70"/>
        <xs:enumeration value="71"/>
        <xs:enumeration value="72"/>
        <xs:enumeration value="73"/>
        <xs:enumeration value="74"/>
        <xs:enumeration value="75"/>
        <xs:enumeration value="76"/>
        <xs:enumeration value="77"/>
        <xs:enumeration value="78"/>
        <xs:enumeration value="79"/>
        <xs:enumeration value="80"/>
        <xs:enumeration value="81"/>
        <xs:enumeration value="82"/>
        <xs:enumeration value="83"/>
        <xs:enumeration value="84"/>
        <xs:enumeration value="85"/>
        <xs:enumeration value="86"/>
        <xs:enumeration value="87"/>
        <xs:enumeration value="88"/>
        <xs:enumeration value="89"/>
        <xs:enumeration value="90"/>
        <xs:enumeration value="91"/>
        <xs:enumeration value="92"/>
        <xs:enumeration value="93"/>
        <xs:enumeration value="94"/>
        <xs:enumeration value="95"/>
        <xs:enumeration value="96"/>
        <xs:enumeration value="97"/>
        <xs:enumeration value="98"/>
        <xs:enumeration value="99"/>
        <xs:enumeration value="100"/>
        <xs:enumeration value="101"/>
        <xs:enumeration value="102"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="uniqueId" type="nonEmptyText"/>
  <xs:element name="address" type="nonEmptyText"/>
  <xs:element name="locality" type="nonEmptyText"/>
  <xs:element name="province" type="nonEmptyText"/>
  <xs:element name="postalcode" type="nonEmptyText"/>
  <xs:element name="country">
    <xs:simpleType>
      <xs:restriction base="nonEmptyText">
        <xs:minLength value="2"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="price" type="nonNegativeAmount"/>
  <xs:element name="pricetype" type="currencyCode"/>
  <xs:element name="renttype" type="rentPeriod"/>
  <xs:element name="securitydeposit" type="nonNegativeAmount"/>
  <xs:element name="applicationfee" type="nonNegativeAmount"/>
  <xs:element name="lotsize" type="nonNegativeAmount"/>
  <xs:element name="lotsizetype" type="lotAreaUnit"/>
  <xs:element name="interiorsize" type="nonNegativeAmount"/>
  <xs:element name="interiorsizetype" type="interiorAreaUnit"/>
  <xs:element name="bedrooms" type="xs:nonNegativeInteger"/>
  <xs:element name="bathrooms" type="nonNegativeAmount"/>
  <xs:element name="latitude" type="xs:decimal"/>
  <xs:element name="longitude" type="xs:decimal"/>
  <xs:element name="yearbuilt" type="xs:integer"/>
  <xs:element name="image1" type="xs:anyURI"/>
  <xs:element name="contactname" type="xs:string"/>
  <xs:element name="contactphone" type="xs:string"/>
  <xs:element name="contactemail" type="xs:string"/>
  <xs:element name="contactdomain" type="xs:string"/>
</xs:schema>
