<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
	<xs:element name="filterlist"> <!-- root element -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="filter" minOccurs="0" maxOccurs="1"/>
			</xs:sequence>
			<xs:attribute name="version" default="1.0"/> <!-- the filterlist schema version TODO set a version number-->
		</xs:complexType>
	</xs:element>
	<xs:element name="filter"> <!-- a filter -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="id" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="date" minOccurs="0" maxOccurs="2"/>
				<xs:element ref="title" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="category" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="city" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="location" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="region" minOccurs="0" maxOccurs="1"/>
				<xs:element ref="keywords" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="accounts" minOccurs="0" maxOccurs="1"/>
			</xs:sequence>
			<xs:attribute name="useTimestamp" default="1" /> <!-- set to 0 if you don't want to use timestamp values for the query -->
			<xs:attribute name="offset" default="0" /> <!-- set to x where x > 0 if you wish to ignore the first x rows -->
			<xs:attribute name="count" default="0" /> <!-- set to x where x > 0 if you wish to limit the number of result objects -->
			<xs:attribute name="short" default="false" /> <!-- set to true if you wish to receive a short summary -->
         <xs:attribute name="lastUpdate" default="false" /> <!-- if set, the given datetime (YYYY-MM-DD HH:MM:SS) format will be used to check for last update of events -->
		</xs:complexType>
	</xs:element>
	<xs:element name="id"> <!-- an event id -->
		<xs:complexType mixed="true">
			<xs:attribute name="type" default="0"/> <!-- 0 = unknown, 1 = cluster, 2 = single -->
		</xs:complexType>
	</xs:element>
	<xs:element name="date"> <!-- a date -->
		<xs:complexType mixed="true">
			<xs:attribute name="type"/> <!-- start or end -->
		</xs:complexType>
	</xs:element>
	<xs:element name="title"> <!-- filter on title -->
		<xs:complexType mixed="true"/>
	</xs:element>
	<xs:element name="category"> <!-- filter on category -->
		<xs:complexType mixed="true">
			<xs:attribute name="isId" default="1"/>
			<xs:attribute name="systemShortname" default="ks-termine"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="city"> <!-- filter on city -->
		<xs:complexType mixed="true">
			<xs:attribute name="isId" default="1"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="location"> <!-- filter on location -->
		<xs:complexType mixed="true">
			<xs:attribute name="isId" default="1"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="region"> <!-- filter on region -->
		<xs:complexType mixed="true">
			<xs:attribute name="isId" default="1"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="keywords"/> <!-- filter on keywords -->

    <xs:element name="accounts">
        <xs:complexType>
            <xs:sequence>
				<xs:element ref="account" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="account">
        <xs:complexType mixed="true">
		    <xs:attribute name="isId" default="1"/>
        </xs:complexType>
    </xs:element>
</xs:schema>
