﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:simpleType name="StringBooleanValue">
    <xs:restriction base="xs:string">
      <xs:enumeration value="true" />
      <xs:enumeration value="false" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TargetEventType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="event" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="typeConditionDef">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="property" type="xs:string" use="required"  />
        <xs:attribute name="value" type="xs:string" use="required"  />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="sourceEventDef">
    <xs:sequence>
      <xs:element name="targetEvent" type="targetEventDef" />
      <xs:element name="eq" type="typeConditionDef" />
      <xs:element name="ne" type="typeConditionDef" />
      <xs:element name="gt" type="typeConditionDef" />
      <xs:element name="ge" type="typeConditionDef" />
      <xs:element name="lt" type="typeConditionDef" />
      <xs:element name="le" type="typeConditionDef" />
      <xs:element name="like" type="typeConditionDef" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="targetEventDef">
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="param1" type="xs:string" />
    <xs:attribute name="param2" type="xs:string" />
    <xs:attribute name="type" type="TargetEventType" />
    <xs:attribute name="screen" type="StringBooleanValue" />
  </xs:complexType>
  <xs:complexType name="eventsDef">
    <xs:sequence>
      <xs:element name="sourceEvent" type="sourceEventDef" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="applicationUsageStatistics">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="events" type="eventsDef" />
      </xs:sequence>
      <xs:attribute name="xmlns" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
</xs:schema>
