<?xml version="1.0" encoding="UTF-8"?>
<!-- 

TODO choose a licence
 -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:reml="http://reml.yggdrasill.info/2006/reml102" targetNamespace="http://reml.yggdrasill.info/2006/reml102" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.2">
	<xsd:annotation>
		<xsd:documentation>XML Schema for REML files.</xsd:documentation>
		<xsd:documentation>Revision: 2</xsd:documentation>
		<xsd:documentation>Date: 21-Sep-2006</xsd:documentation>
		<xsd:documentation>Markup defenition</xsd:documentation>
		<xsd:documentation>Author: Thomas Stock</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="reml">
		<xsd:annotation>
			<xsd:documentation>Real Estate Markup Language</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="reml:reo" maxOccurs="unbounded"/>
				<xsd:element ref="reml:rel" minOccurs="0" maxOccurs="unbounded"/>
			</xsd:sequence>
			<xsd:attribute name="identifier" type="xsd:string" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="reo">
		<xsd:annotation>
			<xsd:documentation>Real Estate Object</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="name" type="reml:textWBr"/>
				<xsd:element name="adress" type="reml:adressType"/>
				<xsd:element name="data" type="reml:dataType"/>
				<xsd:element name="request" nillable="true" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:simpleContent>
							<xsd:extension base="xsd:string">
								<xsd:attribute name="type" type="reml:comType" use="required"/>
								<xsd:attribute name="prior"/>
							</xsd:extension>
						</xsd:simpleContent>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="occupancy" nillable="true" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:simpleContent>
							<xsd:extension base="xsd:string">
								<xsd:attribute name="type" type="reml:comType" use="required"/>
								<xsd:attribute name="prior"/>
							</xsd:extension>
						</xsd:simpleContent>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="news" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:attribute name="type" type="reml:newsType" use="required"/>
					</xsd:complexType>
				</xsd:element>
				<xsd:element ref="reml:admin"/>
				<xsd:element name="revision" type="xsd:dateTime"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:positiveInteger"/>
			<xsd:attribute name="type" type="reml:reoType" use="required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="rel">
		<xsd:annotation>
			<xsd:documentation>Real Estate List</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="name" type="reml:textWBr"/>
				<xsd:element name="reoIdItem" type="xsd:positiveInteger" maxOccurs="unbounded"/>
				<xsd:element ref="reml:cost" maxOccurs="unbounded"/>
				<xsd:element ref="reml:admin" minOccurs="0"/>
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:positiveInteger"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="admin">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="adress" type="reml:adressType"/>
				<xsd:element name="personal">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="name" type="xsd:string"/>
							<xsd:element name="email" type="xsd:string"/>
							<xsd:element name="dailconnection" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:attribute name="type" type="reml:dailType" use="required"/>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="data" type="reml:dataType"/>
	<xsd:element name="cost">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:float">
					<xsd:attribute name="age" type="reml:ageType" use="required"/>
					<xsd:attribute name="type" type="reml:costType" use="required"/>
					<xsd:attribute name="valuta" default="EUR">
						<xsd:simpleType>
							<xsd:restriction base="xsd:string">
								<xsd:length value="3"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:attribute name="text" type="xsd:string"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="visual">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="img" block="" nillable="true" maxOccurs="10">
					<xsd:complexType>
						<xsd:attribute name="width" type="xsd:positiveInteger"/>
						<xsd:attribute name="height" type="xsd:positiveInteger"/>
						<xsd:attribute name="src" type="xsd:string" use="required"/>
						<xsd:attribute name="title" type="xsd:string" use="required"/>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="adressType">
		<xsd:sequence>
			<xsd:element name="regionCode" type="xsd:string"/>
			<xsd:element name="street" type="xsd:string"/>
			<xsd:element name="city" type="xsd:string"/>
			<xsd:element name="phone" type="xsd:string" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="dataType">
		<xsd:sequence>
			<xsd:choice>
				<xsd:element name="room" type="reml:roomType" maxOccurs="unbounded"/>
				<xsd:element name="size">
					<xsd:complexType>
						<xsd:simpleContent>
							<xsd:extension base="xsd:double">
								<xsd:attribute name="unit" type="xsd:string" use="required"/>
							</xsd:extension>
						</xsd:simpleContent>
					</xsd:complexType>
				</xsd:element>
			</xsd:choice>
			<xsd:element name="possibilities" type="xsd:string" minOccurs="0"/>
			<xsd:element name="env" minOccurs="0">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="wc" type="xsd:positiveInteger" default="1" nillable="true" minOccurs="0"/>
						<xsd:element name="watertap" type="xsd:positiveInteger" default="1" nillable="true" minOccurs="0"/>
						<xsd:element name="shower" type="xsd:positiveInteger" default="1" nillable="true" minOccurs="0"/>
						<xsd:element name="washroom" type="xsd:positiveInteger" default="1" nillable="true" minOccurs="0"/>
						<xsd:element name="fireplace" default="1" nillable="true" minOccurs="0">
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:extension base="xsd:positiveInteger">
										<xsd:attribute name="type" type="reml:firePlaceType" use="required"/>
									</xsd:extension>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="other" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="reml:cost" maxOccurs="unbounded"/>
			<xsd:element name="adequacy" minOccurs="0">
				<xsd:complexType>
					<xsd:choice maxOccurs="unbounded">
						<xsd:element name="youth" type="xsd:boolean" default="true" nillable="true" minOccurs="0"/>
						<xsd:element name="conference" type="xsd:boolean" default="true" nillable="true" minOccurs="0"/>
						<xsd:element name="school" type="xsd:boolean" default="true" nillable="true" minOccurs="0"/>
						<xsd:element name="weekend" type="xsd:boolean" default="true" nillable="true" minOccurs="0"/>
						<xsd:element name="wheelchair" type="xsd:boolean" default="true" nillable="true" minOccurs="0"/>
						<xsd:element name="adult" type="xsd:boolean" default="true" nillable="true" minOccurs="0"/>
					</xsd:choice>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="text" type="reml:textWBr" minOccurs="0" maxOccurs="unbounded"/>
			<xsd:element ref="reml:visual"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="textWBr" mixed="true">
		<xsd:choice minOccurs="0" maxOccurs="unbounded">
			<xsd:element name="br" block="" fixed="" nillable="true"/>
		</xsd:choice>
		<xsd:attribute name="lang" type="xsd:language" use="required"/>
	</xsd:complexType>
	<xsd:complexType name="roomType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="unit" type="xsd:string" default="sqm"/>
				<xsd:attribute name="size" type="xsd:positiveInteger" default="1"/>
				<xsd:attribute name="beds" type="xsd:int" default="0"/>
				<xsd:attribute name="seats" type="xsd:int" default="0"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="reoType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="camp"/>
			<xsd:enumeration value="structure"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ageType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="adult"/>
			<xsd:enumeration value="teen"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="comType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="manual"/>
			<xsd:enumeration value="email"/>
			<xsd:enumeration value="SOAP"/>
			<xsd:enumeration value="http"/>
			<xsd:enumeration value="xml"/>
			<xsd:enumeration value="other"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="dailType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="phone"/>
			<xsd:enumeration value="cellular"/>
			<xsd:enumeration value="fax"/>
			<xsd:enumeration value="pager"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="costType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="half-board"/>
			<xsd:enumeration value="full-board"/>
			<xsd:enumeration value="self-catering"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="newsType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="manual"/>
			<xsd:enumeration value="newsletter"/>
			<xsd:enumeration value="xmlsyndication"/>
			<xsd:enumeration value="http"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="firePlaceType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="fixed"/>
			<xsd:enumeration value="free"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!--
	Version History:
=========================================
Date					Revision		Description
19-Sep-2006		1					Initial Release
21-Sep-2006		2					Some detail changes in the cost model
	-->
</xsd:schema>

