<?xml version="1.0" encoding="UTF-8"?>
<!-- Alert Data Template schema -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0a" id="Alert_Template_Data">
	<xs:element name="Alert_Template_Root" type="Alerts_Templates_T">
		<xs:annotation>
			<xs:documentation>Root element containing Alert Template Data.</xs:documentation>
		</xs:annotation>
		<xs:unique name="Template_Id">
			<xs:selector xpath="./Alert_Template"/>
			<xs:field xpath="Template_Id"/>
		</xs:unique>
	</xs:element>
	<xs:complexType name="Alerts_Templates_T">
		<xs:sequence>
			<xs:element name="Alert_Template" type="Alerts_Template_T" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The template of an alert.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Alerts_Template_T">
		<xs:sequence>
			<xs:element name="Template_Id">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>The unique template identifier.</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Alert_Category">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Enumeration of Alert Category.</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Action"/>
						<xs:enumeration value="Situation"/>
						<xs:enumeration value="Information"/>
						<xs:enumeration value="Warning"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Alert_Default_Priority">
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="1"/>
						<xs:maxInclusive value="99"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Status">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>OASIS CAP Derived Status</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Actual"/>
						<xs:enumeration value="Exercise"/>
						<xs:enumeration value="System"/>
						<xs:enumeration value="Test"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Scope">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>OASIS CAP Derived Scope</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:enumeration value="PublicScope"/>
						<xs:enumeration value="RestrictedScope"/>
						<xs:enumeration value="PrivateScope"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Timeout">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Time until alert timeout in seconds, where 0 indicates no timeout required</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="0"/>
						<xs:maxInclusive value="3600"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="ConfirmationRequired" type="xs:boolean"/>
			<xs:element name="Secondary_Grouping" minOccurs="0">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Secondary grouping for filtering aid</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Persistent" type="xs:boolean"/>
			<xs:element name="ReliablyDistributed" type="xs:boolean"/>
			<xs:element name="TimeoutAction">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>The action to be performed upon alert timeout</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:enumeration value="CancelOnly"/>
						<xs:enumeration value="NotifyOnly"/>
						<xs:enumeration value="CancelWithNotify"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="AcknowledgementModel">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Required acknowledgement profile before progressing the alert to 'Acknowledged'</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:enumeration value="AckByNone"/>
						<xs:enumeration value="AckByAnyone"/>
						<xs:enumeration value="AckByAll"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Inhibited" type="xs:boolean" minOccurs="0"/>
			<xs:element name="Raise_To_All" type="xs:boolean"/>
			<xs:element name="Static_Message" type="Static_Message_T" maxOccurs="unbounded"/>
			<xs:element name="Alert_Data_Extra_Attributes" type="Alert_Data_Extra_Attributes_T" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Dynamic_Message_Data" type="Dynamic_Message_Data_T" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Alert_Routing" type="Alert_Routing_T" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Static_Message_T">
		<xs:sequence>
			<xs:element name="MessageText">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>The Alert Template Text</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="MessageLanguage">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>The alert locale</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Alert_Data_Extra_Attributes_T">
		<xs:sequence>
			<xs:element name="Name">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>The Attribute Name</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="TypeOfByteData">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Flag to indicate the type of data</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="0"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Description">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Description of contents e.g. image(jpg), URL, Track report etc</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Dynamic_Message_Data_T">
		<xs:sequence>
			<xs:element name="Variable_Type">
				<xs:simpleType>
					<xs:annotation>
						<xs:documentation>Type of variable data</xs:documentation>
					</xs:annotation>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Tag">
				<xs:annotation>
					<xs:documentation>The position of the data item within message</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
						<xs:maxLength value="20"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Alert_Routing_T">
		<xs:sequence>
			<xs:element name="Receiver_Kind">
				<xs:annotation>
					<xs:documentation>A receiver kind</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="AlternativeAction" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A none standard alert response</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:minLength value="1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Actionee_Priority">
				<xs:annotation>
					<xs:documentation>The priority of the actionee to deal with this alert</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:integer">
						<xs:minInclusive value="1"/>
						<xs:maxInclusive value="10"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
