<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.ivoa.net/xml/theory/Simulation/v0.1"
	xmlns="http://www.ivoa.net/xml/theory/Simulation/v0.1"
	xmlns:res="http://www.ivoa.net/xml/VOResource/v1.0"
	elementFormDefault="qualified">
	<xs:import namespace="http://www.ivoa.net/xml/VOResource/v1.0"
		schemaLocation="http://www.ivoa.net/xml/VOResource/VOResource-v1.0.xsd" />

	<xs:include schemaLocation="BaseTypes.xsd" />

	<xs:complexType name="ReferenceType">
		<xs:sequence>
			<xs:element type="xs:string" name="shortName" minOccurs="1"
				maxOccurs="1" />
			<xs:element type="xs:string" name="description"
				minOccurs="0" maxOccurs="1" />
			<xs:element type="xs:anyURI" name="referenceURL"
				minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="FormatType">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="mime-type" type="xs:token" />
				<xs:attribute name="custom" type="xs:boolean" />
				<xs:attribute name="required" type="xs:boolean"></xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>


	<xs:complexType name="InputParameterType">
		<xs:complexContent>
			<xs:extension base="ReferenceType">
				<xs:sequence>
					<xs:element name="publisherDID"
						type="res:IdentifierURI" />
					<xs:element name="Datatype" type="DatatypeType"
						minOccurs="0" maxOccurs="1" />
					<xs:element name="Cardinality"
						type="CardinalityType" minOccurs="0" maxOccurs="1" />
					<xs:element name="DefaultValue" type="xs:string"
						minOccurs="0" maxOccurs="1" />
				</xs:sequence>
				<xs:attribute name="ucd" type="xs:string" />
				<xs:attribute name="unit" type="xs:string" />
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="ProgramType">
		<xs:complexContent>
			<xs:extension base="res:Resource">
				<xs:sequence>
					<xs:element name="Method" type="ReferenceType"
						minOccurs="0" maxOccurs="unbounded" />
					<xs:element name="InputParameter"
						type="InputParameterType" minOccurs="0" maxOccurs="unbounded" />
					<xs:element name="InputData" type="FormatType"
						minOccurs="0" maxOccurs="unbounded" />
					<xs:element name="OutputData" type="FormatType"
						minOccurs="0" maxOccurs="unbounded" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="Program" type="ProgramType" />

</xs:schema>
