<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 rel. 3 (http://www.altova.com) by Michael Edward Rose (OmniMarkets) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:include schemaLocation="types.xsd"/>
	<xs:annotation>
		<xs:documentation>Attributes allow inputs to read results of previous computations in the input document</xs:documentation>
	</xs:annotation>
	<xs:complexType name="XsdBoolean" mixed="true">
		<xs:annotation>
			<xs:documentation>By value or function evaliation</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:boolean">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdComplexValue">
		<xs:annotation>
			<xs:documentation>Complex number</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="XslComplex">
				<xs:attributeGroup ref="XsdValueAttributes"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="XsdCorrelation" mixed="true">
		<xs:simpleContent>
			<xs:extension base="XslCorrelation">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdCorrelationVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdDate" mixed="true">
		<xs:simpleContent>
			<xs:extension base="xs:date">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdDateVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdDateTime" mixed="true">
		<xs:simpleContent>
			<xs:extension base="xs:dateTime">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdDateTimeVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdDouble" mixed="true">
		<xs:annotation>
			<xs:documentation>Double-precision number ( by value or reference ) </xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:double">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdDoubleVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdTenor" mixed="true">
		<xs:simpleContent>
			<xs:extension base="xs:duration">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdTenorVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdInteger" mixed="true">
		<xs:simpleContent>
			<xs:extension base="xs:integer">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdIntegerVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdNonNegativeDouble" mixed="true">
		<xs:annotation>
			<xs:documentation>Non-negative double-precision number ( by value or reference ) </xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="XslNonNegativeDouble">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdNonNegativeDoubleVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdPositiveInteger" mixed="true">
		<xs:simpleContent>
			<xs:extension base="xs:positiveInteger">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdIntegerVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdPositiveDouble" mixed="true">
		<xs:simpleContent>
			<xs:extension base="XslPositiveDouble">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdPositiveDoubleVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdProbability" mixed="true">
		<xs:simpleContent>
			<xs:extension base="XslProbability">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdDoubleVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdString" mixed="true">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attributeGroup ref="XsdValueAttributes"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdSize">
		<xs:simpleContent>
			<xs:extension base="xs:unsignedInt">
				<xs:attributeGroup ref="XsdValueAttributes"/>
				<xs:attributeGroup ref="XsdSizeVariableGroup"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:annotation>
		<xs:documentation>Need simple schemas to restrict underlying ranges</xs:documentation>
	</xs:annotation>
	<xs:simpleType name="XslCorrelation">
		<xs:annotation>
			<xs:documentation>Bounded by -1.0 and 1.0 </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:double">
			<xs:minInclusive value="-1.0"/>
			<xs:maxInclusive value="1.0"/>
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="XslNonNegativeDouble">
		<xs:restriction base="xs:double">
			<xs:minInclusive value="0.0"/>
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="XslPositiveDouble">
		<xs:restriction base="xs:double">
			<xs:minExclusive value="0.0"/>
			<xs:whiteSpace value="collapse"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="XslProbability">
		<xs:restriction base="xs:double">
			<xs:minInclusive value="0.0"/>
			<xs:maxInclusive value="1.0"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:annotation>
		<xs:documentation>Attribute groups</xs:documentation>
	</xs:annotation>
	<xs:attributeGroup name="XsdValueAttributes">
		<xs:attribute name="schemaID" type="xs:IDREF" use="optional">
			<xs:annotation>
				<xs:documentation>Referece to result of calculation schema</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="xpath" type="xs:string" use="optional">
			<xs:annotation>
				<xs:documentation>Search inside the result schema</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="result" type="xs:boolean" use="optional" default="true">
			<xs:annotation>
				<xs:documentation>Search result, not enclosing schema</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdVariableGroup">
		<xs:attribute name="variable" type="xs:boolean" use="optional" default="false">
			<xs:annotation>
				<xs:documentation>Is this part of the calibration? Default: false </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdCorrelationVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="XslCorrelation" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="XslCorrelation" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdDateVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:date" use="optional">
			<xs:annotation>
				<xs:documentation>Smallest possible date (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:date" use="optional">
			<xs:annotation>
				<xs:documentation>Largest possible date (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdDateTimeVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:dateTime" use="optional">
			<xs:annotation>
				<xs:documentation>Smallest possible date (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:dateTime" use="optional">
			<xs:annotation>
				<xs:documentation>Largest possible date (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdDoubleVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:double" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:double" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdEnumVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="include" use="optional">
			<xs:annotation>
				<xs:documentation>Search only these types</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:list itemType="xs:string"/>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="exclude" use="optional">
			<xs:annotation>
				<xs:documentation>Avoid these types </xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:list itemType="xs:string"/>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdIntegerVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:int" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:int" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdNonNegativeDoubleVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="XslNonNegativeDouble" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="XslNonNegativeDouble" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdPositiveDoubleVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="XslPositiveDouble" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="XslPositiveDouble" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdPositiveIntegerVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:positiveInteger" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:positiveInteger" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdProbabilityVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="XslProbability" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="XslProbability" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdSizeVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:unsignedInt" use="optional">
			<xs:annotation>
				<xs:documentation>Minimum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:unsignedInt" use="optional">
			<xs:annotation>
				<xs:documentation>Maximum value (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="XsdTenorVariableGroup">
		<xs:attributeGroup ref="XsdVariableGroup"/>
		<xs:attribute name="min" type="xs:duration" use="optional">
			<xs:annotation>
				<xs:documentation>Smallest possible date (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="max" type="xs:duration" use="optional">
			<xs:annotation>
				<xs:documentation>Largest possible date (no default) </xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
</xs:schema>
