<?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">
	<!--OSeL: version - 2.0.0-->
	<xs:include schemaLocation="OSgL.xsd"/>
	<xs:include schemaLocation="OSnL.xsd"/>
	<xs:include schemaLocation="OSoL.xsd"/>
	<xs:include schemaLocation="OSsL.xsd"/>
	<xs:element name="osel" type="OSeL">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSeL">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="entityHeader">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="EntityHeader"/>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="entityData" type="EntityData">
				<xs:annotation>
					<xs:documentation>proposal</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EntityHeader">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="serviceURI" type="xs:string">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="serviceName" type="xs:string">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="message" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="creationTime" type="xs:dateTime">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="registrationTime" type="xs:dateTime" minOccurs="0">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="lastModificationTime" type="xs:dateTime" minOccurs="0">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="licenseRequired" type="xs:boolean"/>
			<xs:element name="userNameRequired" type="xs:boolean"/>
			<xs:element name="passwordRequired" type="xs:boolean"/>
			<xs:element name="keyWords" type="KeyWords" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EntityData">
		<xs:annotation>
			<xs:documentation>proposal</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="provider" type="Providernfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="system" type="SystemInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="service" type="ServiceInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="job" type="JobInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="optimization" type="OptimizationInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="customMatchRules" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="xQueryCondition" minOccurs="0" maxOccurs="unbounded">
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:string">
										<xs:attribute name="input" use="optional" default="osal">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="osal"/>
													<xs:enumeration value="osil"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:attribute>
										<xs:attribute name="matchTypeIfTrue" use="optional" default="exact">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="exact"/>
													<xs:enumeration value="moreGeneral"/>
													<xs:enumeration value="irrelevant"/>
													<xs:enumeration value="approximate"/>
													<xs:enumeration value="none"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:attribute>
										<xs:attribute name="matchTypeIfFalse" use="optional" default="none">
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="exact"/>
													<xs:enumeration value="moreGeneral"/>
													<xs:enumeration value="irrelevant"/>
													<xs:enumeration value="approximate"/>
													<xs:enumeration value="none"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:attribute>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:attribute name="numberOfRules"/>
				</xs:complexType>
			</xs:element>
			<xs:element name="defaultOption" type="OSoL" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="KeyWords">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence minOccurs="0">
			<xs:element name="keyWord" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="numberOfKeyWords" type="xs:nonNegativeInteger" use="required"/>
	</xs:complexType>
	<xs:complexType name="OtherInformation">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="other" type="OtherInfo" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="numberOfOtherInfo" type="xs:nonNegativeInteger" use="required"/>
	</xs:complexType>
	<xs:complexType name="OtherInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="name" type="xs:string" use="required"/>
				<xs:attribute name="link" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="MatchTypeValue">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="exact"/>
			<xs:enumeration value="moreGeneral"/>
			<xs:enumeration value="approximate"/>
			<xs:enumeration value="irrelevant"/>
			<xs:enumeration value="none"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="MatchType">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="MatchTypeValue">
				<xs:attribute name="minNumber" type="xs:positiveInteger" use="optional" default="1"/>
				<xs:attribute name="maxNumber" type="xs:positiveInteger" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="MatchTypeWithOrderAttribute">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="MatchType">
				<xs:attribute name="order" use="optional">
					<xs:simpleType>
						<xs:restriction base="xs:int">
							<xs:minInclusive value="1"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="OtherCategoryValueMatchType">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="MatchType">
				<xs:attribute name="value" type="xs:string" use="optional"/>
				<xs:attribute name="description" type="xs:string" use="optional"/>
				<xs:attribute name="link" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="OtherMatchType">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="category" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="numberOfCategories" type="xs:nonNegativeInteger" use="required"/>
		<xs:attribute name="name" type="xs:string" use="required"/>
		<xs:attribute name="value" type="xs:string" use="optional"/>
		<xs:attribute name="description" type="xs:string" use="optional"/>
		<xs:attribute name="matchType" use="optional">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="exact"/>
					<xs:enumeration value="moreGeneral"/>
					<xs:enumeration value="approximate"/>
					<xs:enumeration value="irrelevant"/>
					<xs:enumeration value="none"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="minNumber" type="xs:positiveInteger" use="optional" default="1"/>
		<xs:attribute name="maxNumber" type="xs:positiveInteger" use="optional"/>
		<xs:attribute name="link" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="Providernfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="association" type="Association"/>
			<xs:element name="contacts" type="Contacts"/>
			<xs:element name="keyWords" type="KeyWords" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Contacts">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="contact" type="Contact" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="numberOfContacts" type="xs:nonNegativeInteger" use="required"/>
	</xs:complexType>
	<xs:complexType name="Contact">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name" type="ContactName"/>
			<xs:element name="role" type="xs:string" minOccurs="0"/>
			<xs:element name="description" type="xs:string" minOccurs="0"/>
			<xs:element name="address" type="xs:string" minOccurs="0"/>
			<xs:element name="phone" type="xs:string" minOccurs="0"/>
			<xs:element name="fax" type="xs:string" minOccurs="0"/>
			<xs:element name="web" type="xs:string" minOccurs="0"/>
			<xs:element name="email" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string"/>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="association" type="Association" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="isMain" type="xs:boolean" use="optional" default="false"/>
	</xs:complexType>
	<xs:complexType name="ContactName">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="title" type="xs:string" minOccurs="0"/>
			<xs:element name="lastName" type="xs:string"/>
			<xs:element name="middleName" type="xs:string" minOccurs="0"/>
			<xs:element name="firstName" type="xs:string"/>
			<xs:element name="suffix" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Association">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="name">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string"/>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="description" type="xs:string" minOccurs="0"/>
			<xs:element name="address" type="xs:string" minOccurs="0"/>
			<xs:element name="phone" type="xs:string" minOccurs="0"/>
			<xs:element name="fax" type="xs:string" minOccurs="0"/>
			<xs:element name="web" type="xs:string" minOccurs="0"/>
			<xs:element name="email" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string"/>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="logoImageURL" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:string">
							<xs:attribute name="uri" type="xs:string" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="type" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="education"/>
					<xs:enumeration value="government"/>
					<xs:enumeration value="military"/>
					<xs:enumeration value="organization"/>
					<xs:enumeration value="company"/>
					<xs:enumeration value="personal"/>
					<xs:enumeration value="other"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="SystemInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="dedication" type="SystemDedication"/>
			<xs:element name="operatingSystem" type="xs:string" minOccurs="0"/>
			<xs:element name="diskSpace" type="DiskSpace" default="0.0" minOccurs="0"/>
			<xs:element name="memory" type="MemorySize" default="0.0" minOccurs="0"/>
			<xs:element name="cpuSpeed" type="CPUSpeed" default="0.0" minOccurs="0"/>
			<xs:element name="cpuNumber" type="CPUNumber" default="1" minOccurs="0"/>
			<xs:element name="networkSpeed" type="NetworkSpeed" minOccurs="0"/>
			<xs:element name="keyWords" type="KeyWords" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SystemDedication">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="isFullyDedicated" type="xs:boolean" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="NetworkSpeed">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="downloadSpeed" type="xs:double" minOccurs="0"/>
			<xs:element name="uploadSpeed" type="xs:double" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="unit" use="optional" default="byte/s">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="byte/s"/>
					<xs:enumeration value="kilobyte/s"/>
					<xs:enumeration value="megabyte/s"/>
					<xs:enumeration value="gigabyte/s"/>
					<xs:enumeration value="terabyte/s"/>
					<xs:enumeration value="petabyte/s"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="description" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="DiskSpace">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="unit" use="optional" default="byte">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="byte"/>
							<xs:enumeration value="kilobyte"/>
							<xs:enumeration value="megabyte"/>
							<xs:enumeration value="gigabyte"/>
							<xs:enumeration value="terabyte"/>
							<xs:enumeration value="petabyte"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="description" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="MemorySize">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="unit" use="optional" default="byte">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="byte"/>
							<xs:enumeration value="kilobyte"/>
							<xs:enumeration value="megabyte"/>
							<xs:enumeration value="gigabyte"/>
							<xs:enumeration value="terabyte"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="description" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="CPUSpeed">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="unit" use="optional" default="hertz">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="hertz"/>
							<xs:enumeration value="kilohertz"/>
							<xs:enumeration value="megahertz"/>
							<xs:enumeration value="gigahertz"/>
							<xs:enumeration value="terahertz"/>
							<xs:enumeration value="flops"/>
							<xs:enumeration value="kiloflops"/>
							<xs:enumeration value="megaflops"/>
							<xs:enumeration value="gigaflops"/>
							<xs:enumeration value="teraflops"/>
							<xs:enumeration value="petaflops"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="description" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="CPUNumber">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:int">
				<xs:attribute name="description" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="ServiceInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="type">
				<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="wsdlLocation" type="xs:string" minOccurs="0"/>
			<xs:element name="version" type="xs:string" minOccurs="0"/>
			<xs:element name="software" type="SoftwareInfo" minOccurs="0"/>
			<xs:element name="maxJobs" type="xs:int" default="-1" minOccurs="0"/>
			<xs:element name="keyWords" type="KeyWords" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SoftwareInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="name" type="xs:string" minOccurs="0"/>
			<xs:element name="version" type="xs:string" minOccurs="0"/>
			<xs:element name="description" type="xs:string" minOccurs="0"/>
			<xs:element name="author" type="xs:string" minOccurs="0"/>
			<xs:element name="license" type="xs:string" minOccurs="0"/>
			<xs:element name="language" type="xs:string" minOccurs="0"/>
			<xs:element name="algorithm" type="xs:string" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="JobInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="description" type="xs:string"/>
			<xs:element name="maxTime" type="TimeLimit" default="INF" minOccurs="0"/>
			<xs:element name="systemRestriction" type="xs:string" default="INF" minOccurs="0"/>
			<xs:element name="keyWords" type="KeyWords" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="TimeLimit">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attribute name="unit" use="optional" default="second">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="second"/>
							<xs:enumeration value="minute"/>
							<xs:enumeration value="hour"/>
							<xs:enumeration value="day"/>
							<xs:enumeration value="week"/>
							<xs:enumeration value="month"/>
							<xs:enumeration value="year"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="OptimizationInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="problem" type="OptimizationProblemInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="variables" type="OptimizationVariableInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="objectives" type="OptimizationObjectiveInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="constraints" type="OptimizationConstraintInfo">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="linearConstraintCoefficient" type="OptimizationLinearConstraintCoefficientInfo" minOccurs="0">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="quadraticCoefficients" type="OptimizationQuadraticCoefficientInfo" minOccurs="0">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="nonlinearExpressions" type="OptimizationNonlinearExpressionInfo" minOccurs="0">
				<xs:annotation>
					<xs:documentation>draft</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="specialOrderedSets" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="matrices" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="cones" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="matrixProgramming" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="disjunctiveInformation" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="timeDomain" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="robustOptimization" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="stochasticInformation" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="softConstraints" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ambiguityResolution" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="modifications" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="realTimeData" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="userFunctions" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="simulations" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="xmlData" minOccurs="0">
				<xs:annotation>
					<xs:documentation>experiment</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationProblemInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="type">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name="maxSize" type="OptimizationProblemSize" minOccurs="0"/>
			<xs:element name="keyWords" type="KeyWords" minOccurs="0"/>
			<xs:element name="otherInformation" type="OtherInformation" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationProblemSize">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:nonNegativeInteger">
				<xs:attribute name="unit" use="optional" default="byte">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="byte"/>
							<xs:enumeration value="kilobyte"/>
							<xs:enumeration value="megabyte"/>
							<xs:enumeration value="gigabyte"/>
							<xs:enumeration value="terabyte"/>
							<xs:enumeration value="petabyte"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="OptimizationVariableInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="type" type="OptimizationVariableTypeInfo"/>
			<xs:element name="boundedness" type="OptimizationVariableBoundednessInfo"/>
			<xs:element name="linearity" type="OptimizationVariableLinearityInfo"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="minNumberOfVariables" type="xs:nonNegativeInteger" use="optional" default="1">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="maxNumberOfVariables" type="xs:nonNegativeInteger" use="optional">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="OptimizationVariableTypeInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="continuous" type="MatchType"/>
			<xs:element name="binary" type="MatchType"/>
			<xs:element name="integer" type="MatchType"/>
			<xs:element name="string" type="MatchType"/>
			<xs:element name="semiContinuous" type="MatchType"/>
			<xs:element name="semiInteger" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationVariableBoundednessInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="leftBounded" type="MatchType"/>
			<xs:element name="rightBounded" type="MatchType"/>
			<xs:element name="bounded" type="MatchType"/>
			<xs:element name="equallyBounded" type="MatchType"/>
			<xs:element name="unbounded" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationVariableLinearityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="quadratic" type="MatchType"/>
			<xs:element name="nonlinear" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationObjectiveInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="linearity" type="OptimizationObjectiveLinearityInfo"/>
			<xs:element name="convexity" type="OptimizationObjectiveConvexityInfo"/>
			<xs:element name="continuity" type="OptimizationObjectiveContinuityInfo"/>
			<xs:element name="differentialbility" type="OptimizationObjectiveDifferentialbilityInfo"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="minNumberOfObjectives" type="xs:nonNegativeInteger" use="optional" default="1">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="maxNumberOfObjectives" type="xs:nonNegativeInteger" use="optional" default="1">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="OptimizationObjectiveLinearityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constant" type="MatchType"/>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="quadratic" type="MatchType"/>
			<xs:element name="nonlinear" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationObjectiveConvexityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constant" type="MatchType"/>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="convex" type="MatchType"/>
			<xs:element name="convexStrict" type="MatchType"/>
			<xs:element name="nonconvex" type="MatchType"/>
			<xs:element name="concave" type="MatchType"/>
			<xs:element name="concaveStrict" type="MatchType"/>
			<xs:element name="nonconcave" type="MatchType"/>
			<xs:element name="notConvexOrConcave" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationObjectiveContinuityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="continuous" type="MatchType"/>
			<xs:element name="discontinuous" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationObjectiveDifferentialbilityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="differentiable" type="MatchTypeWithOrderAttribute" default="irrelevant" maxOccurs="unbounded"/>
			<xs:element name="nondifferentiable" type="MatchTypeWithOrderAttribute" default="irrelevant" maxOccurs="unbounded"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constraintRegion" type="OptimizationConstraintRegionInfo"/>
			<xs:element name="boundedness" type="OptimizationConstraintBoundednessInfo"/>
			<xs:element name="linearity" type="OptimizationConstraintLinearityInfo"/>
			<xs:element name="convexity" type="OptimizationConstraintConvexityInfo"/>
			<xs:element name="continuity" type="OptimizationConstraintContinuityInfo"/>
			<xs:element name="differentialbility" type="OptimizationConstraintDifferentialbilityInfo"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="minNumberOfConstraints" type="xs:nonNegativeInteger" use="optional" default="0">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="maxNumberOfConstraints" type="xs:nonNegativeInteger" use="optional">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintRegionInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="convexity" type="OptimizationConstraintRegionConvexityInfo"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintRegionConvexityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="convex" type="MatchType"/>
			<xs:element name="nonconvex" type="MatchType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintBoundednessInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="leftBounded" type="MatchType"/>
			<xs:element name="rightBounded" type="MatchType"/>
			<xs:element name="bounded" type="MatchType"/>
			<xs:element name="equallyBounded" type="MatchType"/>
			<xs:element name="unbounded" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintLinearityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constant" type="MatchType"/>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="quadratic" type="MatchType"/>
			<xs:element name="nonlinear" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintConvexityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constant" type="MatchType"/>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="convex" type="MatchType"/>
			<xs:element name="convexStrict" type="MatchType"/>
			<xs:element name="nonconvex" type="MatchType"/>
			<xs:element name="concave" type="MatchType"/>
			<xs:element name="concaveStrict" type="MatchType"/>
			<xs:element name="nonconcave" type="MatchType"/>
			<xs:element name="notConvexOrConcave" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintContinuityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="continuous" type="MatchType"/>
			<xs:element name="discontinuous" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationConstraintDifferentialbilityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="differentiable" type="MatchTypeWithOrderAttribute" default="irrelevant" maxOccurs="unbounded"/>
			<xs:element name="nondifferentiable" type="MatchTypeWithOrderAttribute" default="irrelevant" maxOccurs="unbounded"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationLinearConstraintCoefficientInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="size" type="OptimizationLinearConstraintCoefficientSizeInfo" minOccurs="0"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="minNumberOfValues" type="xs:nonNegativeInteger" use="optional" default="0">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="maxNumberOfValues" type="xs:nonNegativeInteger" use="optional">
			<xs:annotation>
				<xs:documentation>If present, must match number of variables in the original optimization instance</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="OptimizationLinearConstraintCoefficientSizeInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="maxNumberOfRows" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfColumns" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfSpecifiedValues" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfNonzeroValues" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxDensity" default="1.0" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:double">
						<xs:minInclusive value="0.0"/>
						<xs:maxInclusive value="1.0"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationQuadraticCoefficientInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="maxNumberOfQuadraticVariables" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfQuadraticObjectives" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfQuadraticConstraints" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="minNumberOfQuadraticTerms" type="xs:nonNegativeInteger" use="optional" default="0"/>
		<xs:attribute name="maxNumberOfQuadraticTerms" type="xs:nonNegativeInteger" use="optional"/>
	</xs:complexType>
	<xs:complexType name="OptimizationNonlinearExpressionInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="nodes" type="OptimizationNlNodeInfo" minOccurs="0"/>
			<xs:element name="maxNumberOfNonlinearVariables" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfNonlinearObjectives" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfNonlinearConstraints" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="linearity" type="OptimizationNonlinearExpressionLinearityInfo" minOccurs="0"/>
			<xs:element name="convexity" type="OptimizationNonlinearExpressionConvexityInfo" minOccurs="0"/>
			<xs:element name="continuity" type="OptimizationNonlinearExpressionContinuityInfo" minOccurs="0"/>
			<xs:element name="differentialbility" type="OptimizationNonlinearExpressionDifferentialbilityInfo" minOccurs="0"/>
			<xs:element name="other" type="OtherMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="minNumberOfNonlinearExpressions" type="xs:nonNegativeInteger" use="optional" default="0"/>
		<xs:attribute name="maxNumberOfNonlinearExpressions" type="xs:nonNegativeInteger" use="optional" default="0"/>
	</xs:complexType>
	<xs:complexType name="OptimizationNlNodeInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="nodeSetSupported" type="OptimizationNlNodeSet" minOccurs="0"/>
			<xs:element name="statistics" type="OptimizationNlNodeStatistics" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationNlNodeSet">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="el" type="NlNodeEnumeration" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="NumberOfEl" type="xs:nonNegativeInteger" use="required"/>
	</xs:complexType>
	<xs:complexType name="OptimizationNlNodeStatistics">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="maxNumberOfExpressionRootNodes" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfAllNodes" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfArithmeticFunctions" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfElementaryFunctions" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfTrigonometricFunctions" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfStatisticsAndProbabilityFunctions" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="maxNumberOfTerminalNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfConstantNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfVariableNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfObjectiveNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfConstraintNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfParameterNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfRandomVariableNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfLogicAndRelationalNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfMatrixFunctions" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfQuadraticNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfSimNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfUserFNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfXPathNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfNoderefNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfArcRefNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
			<xs:element name="maxNumberOfComplementsNodes" type="xs:nonNegativeInteger" default="0" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="OptimizationNonlinearExpressionLinearityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constant" type="MatchType"/>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="quadratic" type="MatchType"/>
			<xs:element name="nonlinear" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationNonlinearExpressionConvexityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="constant" type="MatchType"/>
			<xs:element name="linear" type="MatchType"/>
			<xs:element name="convex" type="MatchType"/>
			<xs:element name="convexStrict" type="MatchType"/>
			<xs:element name="nonconvex" type="MatchType"/>
			<xs:element name="concave" type="MatchType"/>
			<xs:element name="concaveStrict" type="MatchType"/>
			<xs:element name="nonconcave" type="MatchType"/>
			<xs:element name="notConvexOrConcave" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationNonlinearExpressionContinuityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="continuous" type="MatchType"/>
			<xs:element name="discontinuous" type="MatchType"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="OptimizationNonlinearExpressionDifferentialbilityInfo">
		<xs:annotation>
			<xs:documentation>draft</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="differentiable" type="MatchTypeWithOrderAttribute" default="irrelevant" maxOccurs="unbounded"/>
			<xs:element name="nondifferentiable" type="MatchTypeWithOrderAttribute" default="irrelevant" maxOccurs="unbounded"/>
			<xs:element name="other" type="OtherCategoryValueMatchType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="SpecialAlgorithm">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="decomposition" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="globalOptimization" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="dynamicProgramming" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="heuristic" type="xs:boolean" default="false" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="SimulationInfo">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="description" type="xs:string" minOccurs="0"/>
			<xs:element name="inputSize" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="outputSize" type="xs:nonNegativeInteger" minOccurs="0"/>
			<xs:element name="stochasticity" default="deterministic" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="deterministic"/>
						<xs:enumeration value="stochastic"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="OSsL" type="OSsL" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="FunctionType">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="general" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="basic" type="xs:boolean" default="true" minOccurs="0"/>
			<xs:element name="arithmetic" type="xs:boolean" default="true" minOccurs="0"/>
			<xs:element name="trigonometric" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="statistics" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="probability" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="relationalAndLogic" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="userFunction" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="simulation" type="xs:boolean" default="false" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="SpecialStructure">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
		<xs:all>
			<xs:element name="semidefiniteProgram" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="coneProgram" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="disjunctiveProgram" type="xs:boolean" default="false" minOccurs="0"/>
		</xs:all>
	</xs:complexType>
	<xs:complexType name="OptimizationEntityBackup">
		<xs:sequence>
			<xs:element name="description" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string"/>
				</xs:simpleType>
			</xs:element>
			<xs:element name="variableType" default="continuous" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="continuous"/>
						<xs:enumeration value="pureBinary"/>
						<xs:enumeration value="mixedBinary"/>
						<xs:enumeration value="pureInteger"/>
						<xs:enumeration value="mixedInteger"/>
						<xs:enumeration value="discrete"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="objectiveType" default="singleObjective" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="none"/>
						<xs:enumeration value="singleObjective"/>
						<xs:enumeration value="multiObjectives"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="constraintType" default="generalRange" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="generalRange"/>
						<xs:enumeration value="pureEquality"/>
						<xs:enumeration value="pureBound"/>
						<xs:enumeration value="pureLinearComplementarity"/>
						<xs:enumeration value="pureNonlinearComplementarity"/>
						<xs:enumeration value="linearMixedComplementarity"/>
						<xs:enumeration value="nonlinearMixedComplementarity"/>
						<xs:enumeration value="generalMixedComplementarity"/>
						<xs:enumeration value="pureCone"/>
						<xs:enumeration value="mixedCone"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="objectiveLinearity" default="linear" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="none"/>
						<xs:enumeration value="linearNetwork"/>
						<xs:enumeration value="linear"/>
						<xs:enumeration value="sumOfSquares"/>
						<xs:enumeration value="convexQuadratic"/>
						<xs:enumeration value="convexNonlinear"/>
						<xs:enumeration value="generalQuadratic"/>
						<xs:enumeration value="generalNonlinear"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="constraintLinearity" default="linear" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="none"/>
						<xs:enumeration value="bound"/>
						<xs:enumeration value="linearNetwork"/>
						<xs:enumeration value="linear"/>
						<xs:enumeration value="convexQuadratic"/>
						<xs:enumeration value="convexNonlinear"/>
						<xs:enumeration value="generalQuadratic"/>
						<xs:enumeration value="generalNonlinear"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="objectiveDifferentiability" default="twiceDifferentiable" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="generallyDifferentiable"/>
						<xs:enumeration value="twiceDifferentiable"/>
						<xs:enumeration value="firstDifferentiable"/>
						<xs:enumeration value="nonDifferentiableContinous"/>
						<xs:enumeration value="nonContinuous"/>
						<xs:enumeration value="simulation"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="constraintDifferentiability" default="twiceDifferentiable" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="generallyDifferentiable"/>
						<xs:enumeration value="twiceDifferentiable"/>
						<xs:enumeration value="firstDifferentiable"/>
						<xs:enumeration value="nonDifferentiableContinous"/>
						<xs:enumeration value="nonContinuous"/>
						<xs:enumeration value="simulation"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="parameterType" default="number" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="number"/>
						<xs:enumeration value="string"/>
						<xs:enumeration value="both"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="stochasticity" default="deterministic" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="deterministic"/>
						<xs:enumeration value="stochastic"/>
						<xs:enumeration value="both"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="realTime" type="xs:boolean" default="false" minOccurs="0"/>
			<xs:element name="functionType" type="FunctionType" minOccurs="0"/>
			<xs:element name="specialStructure" type="SpecialStructure" minOccurs="0"/>
			<xs:element name="specialAlgorithm" type="SpecialAlgorithm" minOccurs="0"/>
			<xs:element name="maxVariables" type="xs:int" default="-1" minOccurs="0"/>
			<xs:element name="maxBinaryVariables" type="xs:int" default="-1" minOccurs="0"/>
			<xs:element name="maxIntegerVariables" type="xs:int" default="-1" minOccurs="0"/>
			<xs:element name="maxObjectives" type="xs:int" default="-1" minOccurs="0"/>
			<xs:element name="maxConstraints" type="xs:int" default="-1" minOccurs="0"/>
			<xs:element name="maxNonzeroLinearConstraintCoefficients" type="xs:int" default="-1" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
