<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Jun Ma (Northwestern University) -->
<!-- schema stage stamping: experiment -> draft -> proposal -> recommendation -> finalization -> version 1.0, 1.1 2.0, ... -->
<xs:schema targetNamespace="os.optimizationservices.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="os.optimizationservices.org" elementFormDefault="qualified">
	<!--OSqL: version - 2.0.0-->
	<!--include: proposal-->
	<xs:include schemaLocation="OSgL.xsd"/>
	<xs:include schemaLocation="OSaL.xsd"/>
	<xs:include schemaLocation="OSiL.xsd"/>
	<xs:element name="osql" type="OSqL">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSqL">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="standard" type="StandardQuery" minOccurs="0">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element ref="osal" minOccurs="0"/>
			<xs:element ref="osil" minOccurs="0"/>
			<xs:element name="xQuery" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OtherQuery">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="name" type="xs:string" use="required"/>
				<xs:attribute name="description" type="xs:string" use="optional"/>
				<xs:attribute name="type" use="optional" default="eq">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="eq"/>
							<xs:enumeration value="neq"/>
							<xs:enumeration value="lt"/>
							<xs:enumeration value="leq"/>
							<xs:enumeration value="gt"/>
							<xs:enumeration value="geq"/>
							<xs:enumeration value="contains"/>
							<xs:enumeration value="moreGeneral"/>
							<xs:enumeration value="lessGeneral"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="StandardQuery">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="currentState" default="idle" minOccurs="0">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="busy"/>
						<xs:enumeration value="busyButAccepting"/>
						<xs:enumeration value="idle"/>
						<xs:enumeration value="idleButNotAccepting"/>
						<xs:enumeration value="noResponse"/>
						<xs:enumeration value="accepting"/>
						<xs:enumeration value="notAccepting"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="serviceType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="solver"/>
						<xs:enumeration value="analyzer"/>
						<xs:enumeration value="scheduler"/>
						<xs:enumeration value="simulation"/>
						<xs:enumeration value="registry"/>
						<xs:enumeration value="modeler"/>
						<xs:enumeration value="agent"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="optimization" type="OptimizationInfo" minOccurs="0">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:all>
	</xs:complexType>
</xs:schema>
