<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="http://www.proai.net/schemas/proaiml/v2" elementFormDefault="qualified"
	xmlns="http://www.proai.net/schemas/proaiml/v2" xmlns:mstns="http://www.proai.net/schemas/proaiml/v2"
	xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="proaiml">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="category" type="category" minOccurs="1" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="category" mixed="false">
		<xs:sequence>
			<xs:element name="condition" type="condition" minOccurs="1" maxOccurs="unbounded" />
			<xs:element name="action" type="action" minOccurs="1" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="condition" mixed="false">
		<xs:sequence>
			<xs:element name="context" type="context" minOccurs="1" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="context" mixed="false">
		<xs:choice minOccurs="1" maxOccurs="unbounded">
			<xs:element name="pattern" type="patternExpression" />
			<xs:element name="concept" type="concept" />
		</xs:choice>
		<xs:attribute name="name" type="contextdefinition" use="required" />
	</xs:complexType>
	<xs:complexType name="action" mixed="true">
		<xs:sequence>
			<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other" processContents="skip" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="concept" mixed="true">
		<xs:attribute name="name" type="xs:string" use="required" />
	</xs:complexType>
	<xs:simpleType name="contextdefinition">
		<xs:restriction base="xs:string">
			<xs:pattern value="[a-z]+" />
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="patternExpression">
		<xs:restriction base="xs:string">
			<xs:pattern value="([0-9A-Z///+/$]|((\s\*\s)|(\s_\s)|(^\*\s)|(^_\s)|(\s\*$)|(\s_$)|(^\*$)|(^_$)|\s))+" />
		</xs:restriction>
	</xs:simpleType>
</xs:schema>