<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.bea.com/ns/wlevs/config/eventstore"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
           xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
           targetNamespace="http://www.bea.com/ns/wlevs/config/eventstore"
           elementFormDefault="unqualified" attributeFormDefault="unqualified"
           jxb:extensionBindingPrefixes="xjc" jxb:version="2.0">
	<xs:annotation>
		<xs:appinfo>
			<jxb:schemaBindings>
				<jxb:package name="com.bea.wlevs.configuration.eventstore"/>
			</jxb:schemaBindings>
		</xs:appinfo>
	</xs:annotation>
	<xs:complexType name="RecordPlaybackParameters">
		<xs:sequence>
			<xs:element name="dataset-name" type="xs:string"/>
			<xs:element name="event-type-list" type="EventTypeList" minOccurs="0"/>
			<xs:element name="provider-name" type="xs:string" minOccurs="0"/>
			<xs:element name="store-policy-parameters" type="StorePolicyParameterList" minOccurs="0"/>
			<xs:element name="max-size" type="xs:int" default="8192" minOccurs="0"/>
			<xs:element name="max-threads" type="xs:int" default="1" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RecordParameters">
		<xs:complexContent>
			<xs:extension base="RecordPlaybackParameters">
				<xs:sequence>
					<xs:choice minOccurs="0">
						<xs:element name="time-range" type="AbsoluteTimeRange"/>
						<xs:element name="time-range-offset" type="AbsoluteTimeRangeOffset"/>
					</xs:choice>
					<xs:element name="batch-size" type="xs:int" default="1000" minOccurs="0">
						<xs:annotation>
							<xs:documentation><![CDATA[
                            The number of events that are picked up from the event buffer
                            to write to the event store.
                         ]]></xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="batch-time-out" type="xs:int" default="60" minOccurs="0">
						<xs:annotation>
							<xs:documentation><![CDATA[
                            The number of seconds event buffer will wait to accumulate
                            batch-size number of events before to write to the event store.
                         ]]></xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PlaybackParameters">
		<xs:complexContent>
			<xs:extension base="RecordPlaybackParameters">
				<xs:sequence>
					<xs:choice minOccurs="0">
						<xs:element name="time-range" type="AbsoluteTimeRange"/>
						<xs:element name="time-range-offset" type="AbsoluteTimeRangeOffset"/>
					</xs:choice>
					<xs:element name="playback-speed" type="xs:float" default="1.0" minOccurs="0"/>
					<xs:element name="repeat" type="xs:boolean" default="false" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="AbsoluteTimeRange">
		<xs:sequence>
			<xs:element name="start" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="end" type="xs:dateTime" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AbsoluteTimeRangeOffset">
		<xs:sequence>
			<xs:element name="start" type="xs:dateTime"/>
			<xs:element name="duration" type="xs:duration"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EventTypeList">
		<xs:sequence>
			<xs:element name="event-type" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="StorePolicyParameterList">
		<xs:sequence>
			<xs:element name="parameter" type="StorePolicyParameter" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="StorePolicyParameter">
		<xs:sequence>
			<xs:element name="name" type="xs:string"/>
			<xs:element name="value" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>

