<?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="enums.xsd"/>
	<xs:include schemaLocation="../xsd-core/value.xsd"/>
	<xs:include schemaLocation="../xsd-core/matrix.xsd"/>
	<xs:include schemaLocation="../xsd-core/bounds.xsd"/>
	<xs:complexType name="XsdErrorBounds">
		<xs:annotation>
			<xs:documentation>Numerical error bounds</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="absolute" type="XsdPositiveDouble" default="1.0e-4" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Absolute error bound - must be positive</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="relative" type="XsdPositiveDouble" default="1.0e-4" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Relative error bound - must be positive</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="XsdSmoothnessPenalty">
		<xs:annotation>
			<xs:documentation>Regulates curve or surface smoothness in least-squares fitting. The penalty measures the variation or curvature of the curve or surface to be approxumated and is added to the least-squares objective function.  </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="variation" type="XsdNonNegativeDouble" default="0.0" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Variation penalty. Penalizes integral of squared first derivative.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="curvature" type="XsdNonNegativeDouble" default="0.0" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Curvature penalty. Penalizes integral of squared second derivative.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="mesh" type="XsdPositiveDouble" default="0.25" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Required for discrete approximation. Default: 0.25</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="XsdDoubleCompare">
		<xs:sequence>
			<xs:element name="exact" type="xs:double">
				<xs:annotation>
					<xs:documentation>Analytic value</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="approx" type="xs:double">
				<xs:annotation>
					<xs:documentation>Numerical approximation</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="error" type="xs:double" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="XsdDoubleVectorCompare">
		<xs:sequence>
			<xs:element name="exact" type="XsdDoubleVector">
				<xs:annotation>
					<xs:documentation>Analytic value</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="approx" type="XsdDoubleVector">
				<xs:annotation>
					<xs:documentation>Numerical approximation</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="error" type="XsdDoubleVector" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="XsdDoubleMatrixCompare">
		<xs:sequence>
			<xs:element name="exact" type="XsdDoubleMatrix">
				<xs:annotation>
					<xs:documentation>Analytic value</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="approx" type="XsdDoubleMatrix">
				<xs:annotation>
					<xs:documentation>Numerical approximation</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="error" type="XsdDoubleMatrix" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="XsdRounding">
		<xs:simpleContent>
			<xs:extension base="XsdPositiveDouble">
				<xs:attribute name="type" type="XsdRoundType" default="NEAREST">
					<xs:annotation>
						<xs:documentation>Default: NEAREST</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:complexType name="XsdSymmetricDoubleMatrixCompare">
		<xs:sequence>
			<xs:element name="exact" type="XsdSymmetricDoubleMatrix">
				<xs:annotation>
					<xs:documentation>Analytic value</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="approx" type="XsdSymmetricDoubleMatrix">
				<xs:annotation>
					<xs:documentation>Numerical approximation</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="error" type="XsdSymmetricDoubleMatrix" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
</xs:schema>
