<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 (http://www.altova.com) by Gus Gassmann (Dalhousie University) -->
<!-- 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 xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="os.optimizationservices.org" targetNamespace="os.optimizationservices.org" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!--OSnL: version - 2.0.0-->
	<xs:element name="osnl">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- Abstract types and elements: Scalar nodes (OSnLNode and OSnLCNode) and matrix nodes (OSnLMNode) make up ExprNode. -->
	<xs:complexType name="ExprNode" mixed="false">
		<xs:annotation>
			<xs:documentation> draft. This is a generic expression node from which we derive OSnLMNode and ScalarNode</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:element name="ExprNode" type="ExprNode" abstract="true">
		<xs:annotation>
			<xs:documentation> recommendation. Set abstract to true in order to create a substitution group</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNode" mixed="false">
		<xs:annotation>
			<xs:documentation> recommendation. This is a generic matrix node from which we derive matrix operator nodes</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="false">
			<xs:extension base="ExprNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="OSnLMNode" type="OSnLMNode" abstract="true" substitutionGroup="ExprNode">
		<xs:annotation>
			<xs:documentation> recommendation. Set abstract to true in order to create a substitution group</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="ScalarNode" mixed="false">
		<xs:annotation>
			<xs:documentation> draft. This is a generic expression node from which we derive OSnLNode and OSnLCNode</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="false">
			<xs:extension base="ExprNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ScalarNode" type="ScalarNode" abstract="true" substitutionGroup="ExprNode">
		<xs:annotation>
			<xs:documentation> since version 1.0.0. Set abstract to true in order to create a substitution group</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNode" mixed="false">
		<xs:annotation>
			<xs:documentation> since version 1.0.0. This is a generic node from which we derive operator nodes</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="false">
			<xs:extension base="ScalarNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="OSnLNode" type="OSnLNode" abstract="true" substitutionGroup="ScalarNode">
		<xs:annotation>
			<xs:documentation> since version 1.0.0. Set abstract to true in order to create a substitution group</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNode" mixed="false">
		<xs:annotation>
			<xs:documentation> draft. This is a generic complex number node from which we derive complex-valued operator nodes</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="false">
			<xs:extension base="ScalarNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="OSnLCNode" type="OSnLCNode" abstract="true" substitutionGroup="ScalarNode">
		<xs:annotation>
			<xs:documentation> draft. Set abstract to true in order to create a substitution group</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Arithmetic Nodes: since version 1.0.0  -->
	<xs:complexType name="OSnLNodePlus">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="plus" type="OSnLNodePlus" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sum" type="OSnLNodeSum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMinus">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="minus" type="OSnLNodeMinus" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNegate">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="negate" type="OSnLNodeNegate" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTimes">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="times" type="OSnLNodeTimes" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeDivide">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="divide" type="OSnLNodeDivide" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeQuotient">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="quotient" type="OSnLNodeQuotient" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRem">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rem" type="OSnLNodeRem" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePower">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="power" type="OSnLNodePower" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeProduct">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="product" type="OSnLNodeProduct" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Elementary Function Nodes: since version 1.0.0-->
	<xs:complexType name="OSnLNodeAbs">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="abs" type="OSnLNodeAbs" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFloor">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="floor" type="OSnLNodeFloor" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCeiling">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ceiling" type="OSnLNodeCeiling" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePercent">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="percent" type="OSnLNodePercent" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSquare">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="square" type="OSnLNodeSquare" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSquareRoot">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="squareRoot" type="OSnLNodeSquareRoot" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0 --- deprecated (use sqrt instead) </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="sqrt" type="OSnLNodeSquareRoot" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLn">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ln" type="OSnLNodeLn" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLog">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>First argument is base of logarithm. </xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="log" type="OSnLNodeLog" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLog10">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="log10" type="OSnLNodeLog10" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExp">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="exp" type="OSnLNodeExp" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFactorial">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="factorial" type="OSnLNodeFactorial" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCombination">
		<xs:annotation>
			<xs:documentation>since version 1.0.0.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>First argument is n in "(n!/(k!(n-k)!))". </xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="combination" type="OSnLNodeCombination" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePermutation">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>First argument is n in "(n!/(n-k)!)". </xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="permutation" type="OSnLNodePermutation" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGcd">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gcd" type="OSnLNodeGcd" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLcm">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="lcm" type="OSnLNodeLcm" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRoundToInt">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="roundToInt" type="OSnLNodeRoundToInt" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRound">
		<xs:annotation>
			<xs:documentation>since version 1.0.0.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>Round to nearest multiple of 10^a, where a is second argument.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="round" type="OSnLNodeRound" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTruncate">
		<xs:annotation>
			<xs:documentation>since version 1.0.0.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>Truncate towards zero to nearest multiple of 10^a, where a is second argument.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="truncate" type="OSnLNodeTruncate" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSign">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sign" type="OSnLNodeSign" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRand">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="distrIdx" type="xs:string" use="optional"/>
				<xs:attribute name="distrVarIdx" type="xs:nonNegativeInteger" use="optional" default="0"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rand" type="OSnLNodeRand" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGammaFn">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gammaFn" type="OSnLNodeGammaFn" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGammaLn">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gammaLn" type="OSnLNodeGammaLn" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeErf">
		<xs:annotation>
			<xs:documentation>since version 2.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="erf" type="OSnLNodeErf" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Trigonometric Function Nodes: since version 1.0.0-->
	<xs:complexType name="OSnLNodeSin">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sin" type="OSnLNodeSin" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCos">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cos" type="OSnLNodeCos" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTan">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="tan" type="OSnLNodeTan" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArcsin">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arcsin" type="OSnLNodeArcsin" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArccos">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arccos" type="OSnLNodeArccos" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArctan">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arctan" type="OSnLNodeArctan" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSinh">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sinh" type="OSnLNodeSinh" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCosh">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cosh" type="OSnLNodeCosh" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTanh">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="tanh" type="OSnLNodeTanh" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArcsinh">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arcsinh" type="OSnLNodeArcsinh" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArccosh">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arccosh" type="OSnLNodeArccosh" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArctanh">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arctanh" type="OSnLNodeArctanh" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCot">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cot" type="OSnLNodeCot" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCoth">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="coth" type="OSnLNodeCoth" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArccot">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arccot" type="OSnLNodeArccot" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArccoth">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arccoth" type="OSnLNodeArccoth" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSec">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sec" type="OSnLNodeSec" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSech">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sech" type="OSnLNodeSech" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArcsec">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arcsec" type="OSnLNodeArcsec" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArcsech">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arcsech" type="OSnLNodeArcsech" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCsc">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="csc" type="OSnLNodeCsc" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCsch">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="csch" type="OSnLNodeCsch" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArccsc">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arccsc" type="OSnLNodeArccsc" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArccsch">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arcscsch" type="OSnLNodeArccsch" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Statistics and Probability Nodes: since version 1.0.0  -->
	<xs:complexType name="OSnLNodeMean">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="mean" type="OSnLNodeMean" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeometricMean">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="geometricMean" type="OSnLNodeGeometricMean" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeHarmonicMean">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="harmonicMean" type="OSnLNodeHarmonicMean" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTrimMean">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument gives amount to trim (at each end).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="trimMean" type="OSnLNodeTrimMean" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. First argument gives amount to trim (at each end).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCount">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="count" type="OSnLNodeCount" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMedian">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="median" type="OSnLNodeMedian" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFirstQuartile">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="firstQuartile" type="OSnLNodeFirstQuartile" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeThirdQuartile">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="thirdQuartile" type="OSnLNodeThirdQuartile" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="mode" type="OSnLNodeMode" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMin">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="min" type="OSnLNodeMin" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMax">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="max" type="OSnLNodeMax" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePercentile">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument is percent, rest is data</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="percentile" type="OSnLNodePercentile" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeKthLargest">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument is "k", rest is data.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="kLargest" type="OSnLNodeKthLargest" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeKthSmallest">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument is "k", rest is data.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="kSmallest" type="OSnLNodeKthSmallest" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRange">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="range" type="OSnLNodeRange" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInterQuartileRange">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="interQuartileRange" type="OSnLNodeInterQuartileRange" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeAbsdev">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="absdev" type="OSnLNodeAbsdev" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeStddev">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="stddev" type="OSnLNodeStddev" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeVariance">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="variance" type="OSnLNodeVariance" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cv" type="OSnLNodeCv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSkewness">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="skewness" type="OSnLNodeSkewness" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeKurtosis">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="kurtosis" type="OSnLNodeKurtosis" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCovariance">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="unbounded">
					<xs:sequence>
						<xs:element ref="OSnLNode"/>
						<xs:element ref="OSnLNode"/>
					</xs:sequence>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="covariance" type="OSnLNodeCovariance" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCorrelation">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="correlation" type="OSnLNodeCorrelation" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePearsonCorrelation">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="pearsonCorrelation" type="OSnLNodePearsonCorrelation" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRankCorrelation">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rankCorrelation" type="OSnLNodeRankCorrelation" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeAutoCorrelation1">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="autoCorrelation1" type="OSnLNodeAutoCorrelation1" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeAutoCorrelation">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument is lag, rest is data.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="autoCorrelation" type="OSnLNodeAutoCorrelation" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNpv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument is interest rate, rest is data (equally spaced cash flows).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="npv" type="OSnLNodeNpv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIrr">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>First argument is interest rate guess, rest is data (equally spaced cash flows).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="irr" type="OSnLNodeIrr" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeEmpiricalDiscreteDist">
		<xs:annotation>
			<xs:documentation>Experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); rest is data.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="empiricalDiscreteDist" type="OSnLNodeEmpiricalDiscreteDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>Experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeEmpiricalDiscreteCum">
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); rest is data.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="empiricalDiscreteCum" type="OSnLNodeEmpiricalDiscreteCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>Experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeEmpiricalDiscreteInv">
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; rest is data.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="empiricalDiscreteInv" type="OSnLNodeEmpiricalDiscreteInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>Experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeDiscreteUniformDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); uniform on 1, 2, ..., N (2d argument).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="discreteUniformDist" type="OSnLNodeDiscreteUniformDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeDiscreteUniformCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); uniform on 1, 2, ..., N (2d argument).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="discreteUniformCum" type="OSnLNodeDiscreteUniformCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeDiscreteUniformInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability;  uniform on 1, 2, ..., N (2d argument).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="discreteUniformInv" type="OSnLNodeDiscreteUniformInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBernoulliDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2d argument is "p".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="bernoulliDist" type="OSnLNodeBernoulliDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBernoulliCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2d argument is "p".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="bernoulliCum" type="OSnLNodeBernoulliCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBernoulliInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2d argument is "p".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="bernoulliInv" type="OSnLNodeBernoulliInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBinomialDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); others are "N" and "p".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="binomialDist" type="OSnLNodeBinomialDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBinomialCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); others are "N" and "p".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="binomialCum" type="OSnLNodeBinomialCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBinomialInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; others are "N" and "p".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="binomialInv" type="OSnLNodeBinomialInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMultinomialDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2nd is "N", followed by k event probabilities (that sum to 1).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="multinomialDist" type="OSnLNodeMultinomialDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMultinomialCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd is "N", followed by k event probabilities (that sum to 1).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="multinomialCum" type="OSnLNodeMultinomialCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMultinomialInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2nd is "N", followed by k event probabilities (that sum to 1).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="multinomialInv" type="OSnLNodeMultinomialInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeHypergeometricDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); others are population size N, population successes K, number of draws n.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="hypergeometricDist" type="OSnLNodeHypergeometricDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeHypergeometricCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); others are population size N, population successes K, number of draws n.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="hypergeometricCum" type="OSnLNodeHypergeometricCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeHypergeometricInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; others are population size N, population successes K, number of draws n.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="hypergeometricInv" type="OSnLNodeHypergeometricInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePoissonDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2d is "lambda".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="poissonDist" type="OSnLNodePoissonDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePoissonCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); ; 2d is "lambda".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="poissonCum" type="OSnLNodePoissonCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePoissonInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2d is "lambda".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="poissonInv" type="OSnLNodePoissonInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeometricDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2nd is "decay" p. (Support is {0, 1, ...}.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="geometricDist" type="OSnLNodeGeometricDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeometricCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd is "decay" p. (Support is {0, 1, ...}.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="geometricCum" type="OSnLNodeGeometricCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeometricInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2nd is "decay" p. (Support is {0, 1, ...}.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="geometricInv" type="OSnLNodeGeometricInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNegativeBinomialDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2nd argument: p of success; 3rd argument: number of successes; support: {0,1,...}.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="negativeBinomialDist" type="OSnLNodeNegativeBinomialDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNegativeBinomialCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: p of success; 3rd argument: number of successes; support: {0,1,...}.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="negativeBinomialCum" type="OSnLNodeNegativeBinomialCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNegativeBinomialInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: p of success; 3rd argument: number of successes; support: {0,1,...}.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="negativeBinomialInv" type="OSnLNodeNegativeBinomialInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogarithmicDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability mass at x (1st argument); 2d argument: p.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logarithmicDist" type="OSnLNodeLogarithmicDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogarithmicCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2d argument: p.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logarithmicCum" type="OSnLNodeLogarithmicCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogarithmicInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2d argument: p.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logarithmicInv" type="OSnLNodeLogarithmicInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeUniformDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); support is [a,b] (2d and 3d args).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="uniformDist" type="OSnLNodeUniformDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeUniformCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); support is [a,b] (2d and 3d args).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="uniformCum" type="OSnLNodeUniformCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeUniformInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; support is [a,b] (2d and 3d args).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="uniformInv" type="OSnLNodeUniformInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNormalDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: mean; 3rd argument: standard deviation.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="normalDist" type="OSnLNodeNormalDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNormalCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: mean; 3rd argument: standard deviation.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="normalCum" type="OSnLNodeNormalCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNormalInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2nd argument: mean; 3rd argument: standard deviation.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="normalInv" type="OSnLNodeNormalInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeStdNormalDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="stdNormalDist" type="OSnLNodeStdNormalDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeStdNormalCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="stdNormalCum" type="OSnLNodeStdNormalCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeStdNormalInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="stdNormalInv" type="OSnLNodeStdNormalInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeUnitNormalLinearLoss">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>Assumes standard normal distribution; argument is lower integration limit.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="unitNormalLinearLoss" type="OSnLNodeUnitNormalLinearLoss" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBivariateNormalDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="7" maxOccurs="7">
					<xs:annotation>
						<xs:documentation>Probability density at (x1,x2) --- first two arguments. Arguments 3 and 4: mu1, mu 2. Arguments 5 and 6: sigma1,sigma2; Argument 7: correlation.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="bivariateNormalDist" type="OSnLNodeBivariateNormalDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBivariateNormalCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="7" maxOccurs="7">
					<xs:annotation>
						<xs:documentation>Cumulative probability distribution up to (x1,x2) --- first two arguments. Arguments 3 and 4: mu1, mu 2. Arguments 5 and 6: sigma1,sigma2; Argument 7: correlation.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="bivariateNormalCum" type="OSnLNodeBivariateNormalCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExponentialDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation> probability density at x (1st argument); 2nd argument is "lambda".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="exponentialDist" type="OSnLNodeExponentialDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExponentialCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument is "lambda".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="exponentialCum" type="OSnLNodeExponentialCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExponentialInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2nd argument is "lambda".</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="exponentialInv" type="OSnLNodeExponentialInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeWeibullDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: shape (k); 3rd argument: scale (lambda).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="weibullDist" type="OSnLNodeWeibullDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeWeibullCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: shape (k); 3rd argument: scale (lambda).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="weibullCum" type="OSnLNodeWeibullCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeWeibullInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2nd argument: shape (k); 3rd argument: scale (lambda).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="weibullInv" type="OSnLNodeWeibullInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeErlangDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: shape (k); 3rd argument: rate (lambda).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="erlangDist" type="OSnLNodeErlangDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeErlangCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: shape (k); 3rd argument: rate (lambda).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="erlangCum" type="OSnLNodeErlangCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeErlangInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument is cumulative probability; 2nd argument: shape (k); 3rd argument: rate (lambda).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="erlangInv" type="OSnLNodeErlangInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGammaDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: scale; 3rd argument: shape.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gammaDist" type="OSnLNodeGammaDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGammaCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: scale; 3rd argument: shape.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gammaCum" type="OSnLNodeGammaCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGammaInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: scale; 3rd argument: shape.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gammaInv" type="OSnLNodeGammaInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeneralizedGammaDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="5" maxOccurs="5">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: scale; 3rd argument: shape; 4th argument: second shape parameter; 5th argument: location (shift).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="generalizedGammaDist" type="OSnLNodeGeneralizedGammaDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeneralizedGammaCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="5" maxOccurs="5">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: scale; 3rd argument: shape; 4th argument: second shape parameter; 5th argument: location (shift).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="generalizedGammaCum" type="OSnLNodeGeneralizedGammaCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeneralizedGammaInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="5" maxOccurs="5">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: scale; 3rd argument: shape; 4th argument: second shape parameter; 5th argument: location (shift).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="generalizedGammaInv" type="OSnLNodeGeneralizedGammaInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBetaDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: alpha; 3rd argument: beta.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="betaDist" type="OSnLNodeBetaDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBetaCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: alpha; 3rd argument: beta.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="betaCum" type="OSnLNodeBetaCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeBetaInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: alpha; 3rd argument: beta.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="betaInv" type="OSnLNodeBetaInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeneralizedBetaDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="5" maxOccurs="5">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: alpha; 3rd argument: beta; 4th argument: left endpoint; 5th argument: right endpoint.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="generalizedBetaDist" type="OSnLNodeGeneralizedBetaDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeneralizedBetaCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="5" maxOccurs="5">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: alpha; 3rd argument: beta; 4th argument: left endpoint; 5th argument: right endpoint.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="generalizedBetaCum" type="OSnLNodeGeneralizedBetaCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeneralizedBetaInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="5" maxOccurs="5">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: alpha; 3rd argument: beta; 4th argument: left endpoint; 5th argument: right endpoint.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="generalizedBetaInv" type="OSnLNodeGeneralizedBetaInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLognormalDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: mu; 3rd argument: sigma.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="lognormalDist" type="OSnLNodeLognormalDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLognormalCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: mu; 3rd argument: sigma.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="lognormalCum" type="OSnLNodeLognormalCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLognormalInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: mu; 3rd argument: sigma.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="lognormalInv" type="OSnLNodeLognormalInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCauchyDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>probability mass at x</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cauchyDist" type="OSnLNodeCauchyDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCauchyCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>cumulative probability up to x</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cauchyCum" type="OSnLNodeCauchyCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCauchyInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>quantile (at prob. p)</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cauchyInv" type="OSnLNodeCauchyInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2d argument: df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="tDist" type="OSnLNodeTDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2d argument: df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="tCum" type="OSnLNodeTCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2d argument: df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="tInv" type="OSnLNodeTInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeChiSquareDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2d argument: df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="chiSquareDist" type="OSnLNodeChiSquareDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeChiSquareCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2d argument: df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="chiSquareCum" type="OSnLNodeChiSquareCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeChiSquareInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2d argument: df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="chiSquareInv" type="OSnLNodeChiSquareInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2d argument: numerator df; 3rd argument: denominator df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="fDist" type="OSnLNodeFDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2d argument: numerator df; 3rd argument: denominator df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="fCum" type="OSnLNodeFCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2d argument: numerator df; 3rd argument: denominator df.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="fInv" type="OSnLNodeFInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogisticDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2d argument: mean; 3rd argument: scale (>0).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logisticDist" type="OSnLNodeLogisticDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogisticCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2d argument: mean; 3rd argument: scale (>0).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logisticCum" type="OSnLNodeLogisticCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogisticInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2d argument: mean; 3rd argument: scale (>0).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logisticInv" type="OSnLNodeLogisticInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogLogisticDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd argument: scale (alpha); 3rd argument: shape (beta).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logLogisticDist" type="OSnLNodeLogLogisticDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogLogisticCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: scale (alpha); 3rd argument: shape (beta).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logLogisticCum" type="OSnLNodeLogLogisticCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogLogisticInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: scale (alpha); 3rd argument: shape (beta).</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logLogisticInv" type="OSnLNodeLogLogisticInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExpLogDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>Exponential-logarithmic density at x (1st arg.); 2nd arg: p; 3rd arg: beta.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="expLogDist" type="OSnLNodeExpLogDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExpLogCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>Cumulative exponential-logarithmic distribution at x (1st arg.); 2nd arg: p; 3rd arg: beta.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="expLogCum" type="OSnLNodeExpLogCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExpLogInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd arg: p; 3rd arg: beta.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="expLogInv" type="OSnLNodeExpLogInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeParetoDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation> probability density at x (1st argument); 2nd argument: xm (left endpoint of support); 3rd parameter: alpha.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="paretoDist" type="OSnLNodeParetoDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeParetoCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd argument: xm (left endpoint of support); 3rd parameter: alpha.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="paretoCum" type="OSnLNodeParetoCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeParetoInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd argument: xm (left endpoint of support); 3rd parameter: alpha.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="paretoInv" type="OSnLNodeParetoInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRayleighDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2d arg: sigma.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rayleighDist" type="OSnLNodeRayleighDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRayleighCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2d arg: sigma.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rayleighCum" type="OSnLNodeRayleighCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRayleighInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2d arg: sigma.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rayleighInv" type="OSnLNodeRayleighInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePertDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd arg: minimum; 3d arg: most likely; 4th arg: maximum.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="pertDist" type="OSnLNodePertDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePertCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd arg: minimum; 3d arg: most likely; 4th arg: maximum.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="pertCum" type="OSnLNodePertCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePertInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>1st argument: cumulative probability; 2nd arg: minimum; 3d arg: most likely; 4th arg: maximum.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="pertInv" type="OSnLNodePertInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTriangularDist">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability density at x (1st argument); 2nd arg: minimum; 3d arg: mode; 4th arg: maximum.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="triangularDist" type="OSnLNodeTriangularDist" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTriangularCum">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation>probability up to x (1st argument); 2nd arg: minimum; 3d arg: mode; 4th arg: maximum.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="triangularCum" type="OSnLNodeTriangularCum" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTriangularInv">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="4" maxOccurs="4">
					<xs:annotation>
						<xs:documentation> 1st argument: cumulative probability; 2nd arg: minimum; 3d arg: mode; 4th arg: maximum.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="triangularInv" type="OSnLNodeTriangularInv" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodePDF">
		<xs:annotation>
			<xs:documentation>probability density function. experimental </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Coordinates of the point of evaluation. Number must equal the dimension of the r.v. referenced in distIdx</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="distIdx" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>Must refer to an entry in "distributions" element</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="pdf" type="OSnLNodePDF" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeCDF">
		<xs:annotation>
			<xs:documentation>cumulative distribution function. experimental </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Coordinates of the point of evaluation. Number must equal the dimension of the r.v. referenced in distIdx</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="distIdx" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>Must refer to an entry in "distributions" element</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="cdf" type="OSnLNodeCDF" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInvCDF">
		<xs:annotation>
			<xs:documentation>Inverse c.d.f. experimental </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>Probability level to be evaluated. The r.v. referenced in distIdx must be univariate.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="distIdx" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>Must refer to an entry in "distributions" element</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="invCdf" type="OSnLNodeInvCDF" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRGen">
		<xs:annotation>
			<xs:documentation>random number generator. Returns one value of the type corresponding to the r.v. referenced in distIdx. experimental </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="ExprNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>Parameters passed to the random number generator (such as seed values)</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="distIdx" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>Must refer to an entry in "distributions" element</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="rGen" type="OSnLNodeRGen" substitutionGroup="ExprNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Terminal Nodes: since version 1.0.0-->
	<xs:complexType name="OSnLNodeNumber">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:attribute name="value" type="xs:double" use="optional"/>
				<xs:attribute name="type">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="real"/>
							<xs:enumeration value="string"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="id" type="xs:ID" use="optional">
					<xs:annotation>
						<xs:documentation>required if realtime or random is true</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="realtime" type="xs:boolean" default="false"/>
				<xs:attribute name="random" type="xs:boolean" default="false"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="number" type="OSnLNodeNumber" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeString">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:attribute name="value" type="xs:string" use="optional"/>
				<xs:attribute name="id" type="xs:ID" use="optional">
					<xs:annotation>
						<xs:documentation>required if realtime or random is true</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="realtime" type="xs:boolean" default="false"/>
				<xs:attribute name="random" type="xs:boolean" default="false"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="string" type="OSnLNodeString" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIdentifier">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:attribute name="name" type="xs:string" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="identifier" type="OSnLNodeIdentifier" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. 
For symbolic programming, NOT to identify a nonlinear expression or node.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Constant Nodes: since version 1.0.0  -->
	<xs:complexType name="OSnLNodePI">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PI" type="OSnLNodePI" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeE">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="E" type="OSnLNodeE" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeINF">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="INF" type="OSnLNodeINF" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeEPS">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="EPS" type="OSnLNodeEPS" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0.
Smallest positive number such that 1 = (1+EPS). </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTINY">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TINY" type="OSnLNodeTINY" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. 
Smallest representable positive number. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeTRUE">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TRUE" type="OSnLNodeTRUE" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeFALSE">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="FALSE" type="OSnLNodeFALSE" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeEULERGAMMA">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="EULERGAMMA" type="OSnLNodeEULERGAMMA" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNAN">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="NAN" type="OSnLNodeNAN" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Variable, Objective, Constraint and other reference Nodes: since version 1.0.0-->
	<xs:complexType name="OSnLNodeVariable">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="optional"/>
				<xs:attribute name="coef" type="xs:double" use="optional" default="1"/>
				<xs:attribute name="valueType" type="rangedConstraintValueType" use="optional" default="value">
					<xs:annotation>
						<xs:documentation>The value of the valueType attribute can be either of
“value” (default), “status” (whether the variable is between the bounds, a boolean), “surplus”
( (value − ub)+ ), or “shortage” ( (lb − value)+ ), "lb" (value of the lower bound), "ub" (value of the upper bound).</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="variable" type="OSnLNodeVariable" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0.  If idx attribute is absent, you will need to provide a child OSnLNode which evaluates to a nonnegative integer variable index.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeObjective">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. 
Returns the current value of the indicated objective</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:annotation>
						<xs:documentation>could be used to give a dynamic index value</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="idx" type="xs:negativeInteger" use="optional" default="-1"/>
				<xs:attribute name="valueType" use="optional" default="value">
					<xs:annotation>
						<xs:documentation>The value of the valueType attribute can be either of
“value” (default), “constant” (the additive constant to the variable specified in the 'obj' section), “weight”
(the weight assigned to this objective).</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="value"/>
							<xs:enumeration value="constant"/>
							<xs:enumeration value="weight"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="objective" type="OSnLNodeObjective" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeConstraint">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:annotation>
						<xs:documentation>could be used to give a dynamic index value</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="optional"/>
				<xs:attribute name="valueType" type="rangedConstraintValueType" use="optional" default="value">
					<xs:annotation>
						<xs:documentation>The value of the valueType attribute can be either of
“value” (default), “status” (whether the constraint is satisfied, a boolean), “surplus”
( (value − ub)+ ), or “shortage” ( (lb − value)+ ), "lb" (value of the lower bound), "ub" (value of the upper bound).</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="constraint" type="OSnLNodeConstraint" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- removed 23 October 2015 	
	<xs:complexType name="OSnLNodeQTerm">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:annotation>
						<xs:documentation>the tree can serve as an alternate way to specify the coefficient.</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="idxOne" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="idxTwo" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="coef" type="xs:double" use="optional" default="1"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="qTerm" type="OSnLNodeQTerm" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeQuadratic">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="qTerm"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="quadratic" type="OSnLNodeQuadratic" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. 
Short-hand notation for a quadratic subtree (sum of quadratic terms).</xs:documentation>
		</xs:annotation>
	</xs:element>
-->
	<xs:complexType name="OSnLNodeParameter">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>refers to an index in the parameters section</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="coef" type="xs:double" use="optional" default="1"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="parameter" type="OSnLNodeParameter" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeRandomVariable">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="coef" type="xs:double" use="optional" default="1"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="randomVariable" type="OSnLNodeRandomVariable" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSim">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="simInput" minOccurs="0" maxOccurs="unbounded"/>
					<xs:element ref="simOutput"/>
				</xs:sequence>
				<xs:attribute name="name" type="xs:IDREF" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="sim" type="OSnLNodeSim" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSimInput">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="simName" type="xs:IDREF" use="optional"/>
				<xs:attribute name="inputName" type="xs:IDREF" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="simInput" type="OSnLNodeSimInput" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeSimOutput">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="simName" type="xs:IDREF" use="optional"/>
				<xs:attribute name="outputName" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="simOutput" type="OSnLNodeSimOutput" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeUserF">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="name" type="xs:IDREF" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="userF" type="OSnLNodeUserF" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArg">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>refers to a function argument; must be in the range from 0 to numArg - 1</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arg" type="OSnLNodeArg" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeXPath">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="xPathIndex" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:attribute name="uri" type="xs:anyURI" use="optional" default="."/>
				<xs:attribute name="path" type="xs:string" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="xPath" type="OSnLNodeXPath" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeXPathIndex">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="indexName" type="xs:string" use="required"/>
				<xs:attribute name="indexValue" type="xs:string" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="xPathIndex" type="OSnLNodeXPathIndex" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNodeRef">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="nodeID" type="xs:nonNegativeInteger" use="optional"/>
				<xs:attribute name="propName" type="xs:string" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="nodeRef" type="OSnLNodeNodeRef" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeArcRef">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
				<xs:attribute name="arcID" type="xs:nonNegativeInteger" use="optional"/>
				<xs:attribute name="propName" type="xs:string" use="required"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="arcRef" type="OSnLNodeArcRef" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeComplements">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complements" type="OSnLNodeComplements" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--xs:complexType name="OSnLNodeProb">
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="prob" type="OSnLNodeProb" substitutionGroup="OSnLNode"/-->
	<!--Logical and relational Nodes: since version 1.0.0  -->
	<xs:complexType name="OSnLNodeIf">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="if" type="OSnLNodeIf" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLt">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="lt" type="OSnLNodeLt" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLeq">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="leq" type="OSnLNodeLeq" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGt">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="gt" type="OSnLNodeGt" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeGeq">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="geq" type="OSnLNodeGeq" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeEq">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="eq" type="OSnLNodeEq" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNeq">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="neq" type="OSnLNodeNeq" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeAnd">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="and" type="OSnLNodeAnd" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeOr">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="or" type="OSnLNodeOr" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeXor">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="xor" type="OSnLNodeXor" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeImplies">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="implies" type="OSnLNodeImplies" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeNot">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="not" type="OSnLNodeNot" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeForAll">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="forAll" type="OSnLNodeForAll" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExists">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="exists" type="OSnLNodeExists" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeLogicCount">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="logicCount" type="OSnLNodeLogicCount" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeAllDiff">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="allDiff" type="OSnLNodeAllDiff" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--<xs:complexType name="OSnLNodeAllDisjoint">
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="allDisjoint" type="OSnLNodeAllDisjoint" substitutionGroup="OSnLNode"/>
	-->
	<xs:complexType name="OSnLNodeAtMost">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="atMost" type="OSnLNodeAtMost" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeAtLeast">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="atLeast" type="OSnLNodeAtLeast" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeExactly">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="exactly" type="OSnLNodeExactly" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="unbounded">
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inSet" type="OSnLNodeInSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInRealSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inRealSet" type="OSnLNodeInRealSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInPositiveRealSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inPositiveRealSet" type="OSnLNodeInPositiveRealSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInNonnegativeRealSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inNonnegativeRealSet" type="OSnLNodeInNonnegativeRealSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInIntegerSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inIntegerSet" type="OSnLNodeInIntegerSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInPositiveIntegerSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inPositiveIntegerSet" type="OSnLNodeInPositiveIntegerSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeInNonnegativeIntegerSet">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="inNonnegativeIntegerSet" type="OSnLNodeInNonnegativeIntegerSet" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIsInf">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="isInf" type="OSnLNodeIsInf" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIsNaN">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="isNaN" type="OSnLNodeIsNaN" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Nodes involving matrices: since version 2.9.0 -->
	<xs:complexType name="OSnLNodeMatrixDeterminant">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixDeterminant" type="OSnLNodeMatrixDeterminant" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixTrace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixTrace" type="OSnLNodeMatrixTrace" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixToScalar">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixToScalar" type="OSnLNodeMatrixToScalar" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. Intended for 1x1 matrices only. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixElementAt">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixElementAt" type="OSnLNodeMatrixElementAt" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. First child is the matrix to get the element, Second child is rowIdx. Third Child is colIdx.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixNorm">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixNorm" type="OSnLNodeMatrixNorm" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixFrobeniusNorm">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixFrobeniusNorm" type="OSnLNodeMatrixFrobeniusNorm" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixCondition">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixCondition" type="OSnLNodeMatrixCondition" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. The second child defines the norm.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixFrobeniusNormCondition">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixFrobeniusNormCondition" type="OSnLNodeMatrixFrobeniusNormCondition" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLargestEigenValue">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLargestEigenValue" type="OSnLNodeMatrixLargestEigenValue" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixNthLargestEigenValue">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixNthLargestEigenValue" type="OSnLNodeMatrixNthLargestEigenValue" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixSmallestEigenValue">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixSmallestEigenValue" type="OSnLNodeMatrixSmallestEigenValue" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixSubspaceAngle">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixSubspaceAngle" type="OSnLNodeMatrixSubspaceAngle" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixColumnNumber">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixColumnNumber" type="OSnLNodeMatrixColumnNumber" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRowNumber">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRowNumber" type="OSnLNodeMatrixRowNumber" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRank">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRank" type="OSnLNodeMatrixRank" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixColumnRank">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixColumnRank" type="OSnLNodeMatrixColumnRank" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRowRank">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRowRank" type="OSnLNodeMatrixRowRank" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsNonsingular">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsNonsingular" type="OSnLNodeMatrixIsNonsingular" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the matrix is nonsingular, 0 otherwise. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsPositiveDefinite">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsPositiveDefinite" type="OSnLNodeMatrixIsPositiveDefinite" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsPositiveSemidefinite">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsPositiveSemidefinite" type="OSnLNodeMatrixIsPositiveSemidefinite" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsNegativeDefinite">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsNegativeDefinite" type="OSnLNodeMatrixIsNegativeDefinite" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsNegativeSemidefinite">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsNegativeSemidefinite" type="OSnLNodeMatrixIsNegativeSemidefinite" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsIndefinite">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsIndefinite" type="OSnLNodeMatrixIsIndefinite" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsFullRank">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsFullRank" type="OSnLNodeMatrixIsFullRank" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the matrix is full rank or min(row, col), 0 otherwise.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsFullColumnRank">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsFullColumnRank" type="OSnLNodeMatrixIsFullColumnRank" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the matrix is full rank or min(row, col), 0 otherwise.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsFullRowRank">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsFullRowRank" type="OSnLNodeMatrixIsFullRowRank" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the matrix is full rank or min(row, col), 0 otherwise.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsIdentical">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsIdentical" type="OSnLNodeMatrixIsIdentical" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the two matrices are identical, 0 otherwise.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsSymmetric">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsSymmetric" type="OSnLNodeMatrixIsSymmetric" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the matrix is symmetric, 0 otherwise. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixIsHermitian">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixIsHermitian" type="OSnLNodeMatrixIsHermitian" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>draft. returns 1 if the matrix is Hermitian, 0 otherwise. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixPlus">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixPlus" type="OSnLNodeMatrixPlus" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixSum">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixSum" type="OSnLNodeMatrixSum" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixMinus">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixMinus" type="OSnLNodeMatrixMinus" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixNegate">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixNegate" type="OSnLNodeMatrixNegate" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixTimes">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="transpose" default="neither">
					<xs:annotation>
						<xs:documentation>To allow one or both of the factors to be transposed. transpose="first" calculates A'B, "second" calculates AB',etc. default is "neither".</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="neither"/>
							<xs:enumeration value="first"/>
							<xs:enumeration value="second"/>
							<xs:enumeration value="both"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixTimes" type="OSnLNodeMatrixTimes" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixProduct">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixProduct" type="OSnLNodeMatrixProduct" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLeftDivide">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLeftDivide" type="OSnLNodeMatrixLeftDivide" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRightDivide">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRightDivide" type="OSnLNodeMatrixRightDivide" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixPower">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixPower" type="OSnLNodeMatrixPower" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixInverse">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixInverse" type="OSnLNodeMatrixInverse" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixGeneralizedInverse">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="type" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="leftInverse"/>
							<xs:enumeration value="rightInverse"/>
							<xs:enumeration value="MoorePenrose"/>
							<xs:enumeration value="BottDuffin"/>
							<xs:enumeration value="Drazin"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixGeneralizedInverse" type="OSnLNodeMatrixGeneralizedInverse" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixExp">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixExp" type="OSnLNodeMatrixExp" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixSquareRoot">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixSquareRoot" type="OSnLNodeMatrixSquareRoot" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixModulus">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixModulus" type="OSnLNodeMatrixModulus" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. returns sqrt(A'A).</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLog">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLog" type="OSnLNodeMatrixLog" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixTranspose">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixTranspose" type="OSnLNodeMatrixTranspose" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixBlock">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="rowIdxStart" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>gives the row index of the top row of this block within the larger matrix </xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="colIdxStart" type="xs:nonNegativeInteger" use="required">
					<xs:annotation>
						<xs:documentation>gives the column index of the leftmost column of this block within the larger matrix </xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixBlock" type="OSnLNodeMatrixBlock">
		<xs:annotation>
			<xs:documentation>draft. matrix blocks may overlop with each other</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixMerge">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>number must equal numberOfBlocks.</xs:documentation>
					</xs:annotation>
					<xs:element ref="matrixBlock">
						<xs:annotation>
							<xs:documentation>draft. matrix blocks may overlop with each other. Later blocks override earlier values </xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="numberOfRows" type="xs:positiveInteger" use="required"/>
				<xs:attribute name="numberOfColumns" type="xs:positiveInteger" use="required"/>
				<xs:attribute name="numberOfBlocks" use="required">
					<xs:simpleType>
						<xs:restriction base="xs:nonNegativeInteger"/>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="mergeType" use="optional" default="replace">
					<xs:annotation>
						<xs:documentation>Specifies what happens if a location within the larger matrix is referenced in more than one block</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="replace"/>
							<xs:enumeration value="ignore"/>
							<xs:enumeration value="add"/>
							<xs:enumeration value="error"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixMerge" type="OSnLNodeMatrixMerge" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. Merge one or more blocks in general position (including overlaps, etc.) into a single matrix</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixSubmatrixAt">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixSubmatrixAt" type="OSnLNodeMatrixSubmatrixAt" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. First four children are OSnLNode, which indicate rowIdxStart, colIdxStart, rowIdxEnd, and colIdxEnd; the last child is an OSnLMNode, which is the matrix to crop.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixScalarPlus">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixScalarPlus" type="OSnLNodeMatrixScalarPlus" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixScalarMinus">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixScalarMinus" type="OSnLNodeMatrixScalarMinus" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixScalarTimes">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixScalarTimes" type="OSnLNodeMatrixScalarTimes" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixScalarDivide">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixScalarDivide" type="OSnLNodeMatrixScalarDivide" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixDotTimes">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixDotTimes" type="OSnLNodeMatrixDotTimes" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixDotDivide">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixDotDivide" type="OSnLNodeMatrixDotDivide" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixDotPower">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixDotPower" type="OSnLNodeMatrixDotPower" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixDotExp">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixDotExp" type="OSnLNodeMatrixDotExp" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixEigenValues">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixEigenValues" type="OSnLNodeMatrixEigenValues" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLeftEigenVectors">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLeftEigenVectors" type="OSnLNodeMatrixLeftEigenVectors" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRightEigenVectors">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRightEigenVectors" type="OSnLNodeMatrixRightEigenVectors" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixCholeskyDecomposition">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixCholeskyDecomposition" type="OSnLNodeMatrixCholeskyDecomposition" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLDLDecomposition">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="returnedMatrix" use="optional" default="lowerTriangle">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="lowerTriangle"/>
							<xs:enumeration value="diagonal"/>
							<xs:enumeration value="permutationMatrix"/>
							<xs:enumeration value="quasiLowerTriangle"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLDLDecomposition" type="OSnLNodeMatrixLDLDecomposition" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLUDecomposition">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="returnedMatrix" use="optional" default="lowerTriangle">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="lowerTriangle"/>
							<xs:enumeration value="upperTriangle"/>
							<xs:enumeration value="quasiLowerTriangle"/>
							<xs:enumeration value="quasiUpperTriangle"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLUDecomposition" type="OSnLNodeMatrixLUDecomposition" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixColumnSpace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixColumnSpace" type="OSnLNodeMatrixColumnSpace" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRowSpace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRowSpace" type="OSnLNodeMatrixRowSpace" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixNullSpace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixNullSpace" type="OSnLNodeMatrixNullSpace" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLeftNullSpace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLeftNullSpace" type="OSnLNodeMatrixLeftNullSpace" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixRightNullSpace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixRightNullSpace" type="OSnLNodeMatrixRightNullSpace" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixReducedRowEchelon">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixReducedRowEchelon" type="OSnLNodeMatrixReducedRowEchelon" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixReference">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="transpose" type="xs:boolean" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixReference" type="OSnLNodeMatrixReference" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixVar">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="transpose" type="xs:boolean" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixVar" type="OSnLNodeMatrixVar" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. Must refer to a valid index of a matrixVar object. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixObj">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="transpose" type="xs:boolean" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixObj" type="OSnLNodeMatrixObj" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. Must refer to a valid index of a matrixObj object.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixCon">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:attribute name="idx" type="xs:nonNegativeInteger" use="required"/>
				<xs:attribute name="transpose" type="xs:boolean" use="optional"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixCon" type="OSnLNodeMatrixCon" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. Must refer to a valid index of a matrixcon object. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIdentityMatrix">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:annotation>
						<xs:documentation>dimension of the matrix</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="identityMatrix" type="OSnLNodeIdentityMatrix" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixLowerTriangle">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="includeDiagonal" type="xs:boolean" use="optional" default="true"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixLowerTriangle" type="OSnLNodeMatrixLowerTriangle" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixUpperTriangle">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
				<xs:attribute name="includeDiagonal" type="xs:boolean" use="optional" default="true"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixUpperTriangle" type="OSnLNodeMatrixUpperTriangle" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeMatrixDiagonal">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixDiagonal" type="OSnLNodeMatrixDiagonal" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeDiagonalMatrixFromVector">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="diagonalMatrixFromVector" type="OSnLNodeDiagonalMatrixFromVector" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixAnd">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixAnd" type="OSnLMNodeMatrixAnd" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result has a 1 whenever both argument matrices have a nonzero value; 0 otherwise</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixOr">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixOr" type="OSnLMNodeMatrixOr" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result matrix has a 1 wherever at least one of the two argument matrices has a nonzero value</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixXor">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixXor" type="OSnLMNodeMatrixXor" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result matrix has a 1 wherever one of the two argument matrices has a nonzero and the other has a zero value</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixPattern">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixPattern" type="OSnLMNodeMatrixPattern" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result matrix has a 1 wherever the argument matrix has a nonzero. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixNot">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixNot" type="OSnLMNodeMatrixNot" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result matrix has a 1 wherever the argument matrix has a zero value</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixForAll">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixForAll" type="OSnLMNodeMatrixForAll" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result matrix has a 1 wherever all argument matrices have a nonzero value</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLMNodeMatrixExists">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLMNode">
				<xs:sequence maxOccurs="unbounded">
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="matrixExists" type="OSnLMNodeMatrixExists" substitutionGroup="OSnLMNode">
		<xs:annotation>
			<xs:documentation>draft. result matrix has a 1 wherever at least one of the argument matrices has a nonzero value</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!--Complex Nodes: experimental  -->
	<xs:complexType name="OSnLNodeRealPart">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="realPart" type="OSnLNodeRealPart" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. returns the real part of a complex number.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeImaginaryPart">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="imaginaryPart" type="OSnLNodeImaginaryPart" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment. returns the imaginary part of a complex number.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeComplexModulus">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexModulus" type="OSnLNodeComplexModulus" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment.. for the complex numnber (a,b) returns sqrt(a^2+b^2)</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeComplexArgument">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexArgument" type="OSnLNodeComplexArgument" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment. returns theta for the complex number z = |z|e^(i*theta)</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIsComplexInf">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="isComplexInf" type="OSnLNodeIsComplexInf" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment. returns 1 if either real part or imaginary part is Inf. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIsComplexNaN">
		<xs:annotation>
			<xs:documentation>since version 1.0.0. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence>
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="isComplexNaN" type="OSnLNodeIsComplexNaN" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment. returns 1 if either real part or imaginary part is NaN </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIsComplexEq">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="isComplexEq" type="OSnLNodeIsComplexEq" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLNodeIsComplexNeq">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="OSnLCNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="isComplexNeq" type="OSnLNodeIsComplexNeq" substitutionGroup="OSnLNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeCreate">
		<xs:annotation>
			<xs:documentation>experimental </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:annotation>
						<xs:documentation>Package two real-valued expressions into a complex. First child is real part; 
second is imaginary part</xs:documentation>
					</xs:annotation>
					<xs:element ref="OSnLNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="createComplex" type="OSnLCNodeCreate" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experimental </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodePlus">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexPlus" type="OSnLCNodePlus" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeSum">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexSum" type="OSnLCNodeSum" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeMinus">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexMinus" type="OSnLCNodeMinus" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeNegate">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexNegate" type="OSnLCNodeNegate" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeConjugate">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexConjugate" type="OSnLCNodeConjugate" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeNegativeConjugate">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexNegativeConjugate" type="OSnLCNodeNegativeConjugate" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. for the complex argument x + iy returns -x + iy. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeTimes">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexTimes" type="OSnLCNodeTimes" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeDivide">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexDivide" type="OSnLCNodeDivide" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeSquare">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexSquare" type="OSnLCNodeSquare" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeSquareRoot">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexSquareRoot" type="OSnLCNodeSquareRoot" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeProduct">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="0" maxOccurs="unbounded">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexProduct" type="OSnLCNodeProduct" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeExp">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexExp" type="OSnLCNodeExp" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeToPolar">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexCartesianToPolar" type="OSnLCNodeToPolar" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeToCartesian">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexPolarToCartesian" type="OSnLCNodeToCartesian" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeSin">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexSin" type="OSnLCNodeSin" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeCos">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexCos" type="OSnLCNodeCos" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeTan">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexTan" type="OSnLCNodeTan" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeSinh">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexSinh" type="OSnLCNodeSinh" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeCosh">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexCosh" type="OSnLCNodeCosh" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeTanh">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexTanh" type="OSnLCNodeTanh" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodePower">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="2" maxOccurs="2">
					<xs:element ref="ScalarNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexPower" type="OSnLCNodePower" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeMatrixDeterminant">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexMatrixDeterminant" type="OSnLCNodeMatrixDeterminant" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeMatrixTrace">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexMatrixTrace" type="OSnLCNodeMatrixTrace" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeMatrixToScalar">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexMatrixToScalar" type="OSnLCNodeMatrixToScalar" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>draft. Intended for 1x1 matrices only. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeMatrixElementAt">
		<xs:annotation>
			<xs:documentation>draft. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:sequence minOccurs="3" maxOccurs="3">
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLNode"/>
					<xs:element ref="OSnLMNode"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexMatrixElementAt" type="OSnLCNodeMatrixElementAt" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>draft. First child is the matrix to get the element, Second child is rowIdx. Third Child is colIdx.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="OSnLCNodeNumber">
		<xs:annotation>
			<xs:documentation>experiment. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="OSnLCNode">
				<xs:attribute name="Re" type="xs:double" default="0.0"/>
				<xs:attribute name="Im" type="xs:double" default="0.0"/>
				<xs:attribute name="id" type="xs:ID">
					<xs:annotation>
						<xs:documentation>required if realtime or random is true</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="realTime">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="none"/>
							<xs:enumeration value="realPart"/>
							<xs:enumeration value="imaginaryPart"/>
							<xs:enumeration value="both"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="random">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="none"/>
							<xs:enumeration value="realPart"/>
							<xs:enumeration value="imaginaryPart"/>
							<xs:enumeration value="both"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="complexNumber" type="OSnLCNodeNumber" substitutionGroup="OSnLCNode">
		<xs:annotation>
			<xs:documentation>experiment.. </xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:simpleType name="NlNodeEnumeration">
		<xs:annotation>
			<xs:documentation>since version 2.0.0. </xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="plus"/>
			<xs:enumeration value="sum"/>
			<xs:enumeration value="minus"/>
			<xs:enumeration value="negate"/>
			<xs:enumeration value="times"/>
			<xs:enumeration value="divide"/>
			<xs:enumeration value="quotient"/>
			<xs:enumeration value="rem"/>
			<xs:enumeration value="power"/>
			<xs:enumeration value="product"/>
			<xs:enumeration value="abs"/>
			<xs:enumeration value="floor"/>
			<xs:enumeration value="ceiling"/>
			<xs:enumeration value="percent"/>
			<xs:enumeration value="square"/>
			<xs:enumeration value="sqrt"/>
			<xs:enumeration value="squareRoot"/>
			<xs:enumeration value="ln"/>
			<xs:enumeration value="log"/>
			<xs:enumeration value="log10"/>
			<xs:enumeration value="exp"/>
			<xs:enumeration value="factorial"/>
			<xs:enumeration value="combination"/>
			<xs:enumeration value="permutation"/>
			<xs:enumeration value="gcd"/>
			<xs:enumeration value="lcm"/>
			<xs:enumeration value="roundToInt"/>
			<xs:enumeration value="round"/>
			<xs:enumeration value="truncate"/>
			<xs:enumeration value="sign"/>
			<xs:enumeration value="rand"/>
			<xs:enumeration value="gammaFn"/>
			<xs:enumeration value="gammaLn"/>
			<xs:enumeration value="erf"/>
			<xs:enumeration value="sin"/>
			<xs:enumeration value="cos"/>
			<xs:enumeration value="tan"/>
			<xs:enumeration value="arcsin"/>
			<xs:enumeration value="arccos"/>
			<xs:enumeration value="arctan"/>
			<xs:enumeration value="sinh"/>
			<xs:enumeration value="cosh"/>
			<xs:enumeration value="tanh"/>
			<xs:enumeration value="arcsinh"/>
			<xs:enumeration value="arccosh"/>
			<xs:enumeration value="arctanh"/>
			<xs:enumeration value="cot"/>
			<xs:enumeration value="coth"/>
			<xs:enumeration value="arccot"/>
			<xs:enumeration value="arccoth"/>
			<xs:enumeration value="sec"/>
			<xs:enumeration value="sech"/>
			<xs:enumeration value="arcsec"/>
			<xs:enumeration value="arcsech"/>
			<xs:enumeration value="csc"/>
			<xs:enumeration value="csch"/>
			<xs:enumeration value="arccsc"/>
			<xs:enumeration value="arccsch"/>
			<xs:enumeration value="mean"/>
			<xs:enumeration value="geometricMean"/>
			<xs:enumeration value="harmonicMean"/>
			<xs:enumeration value="trimMean"/>
			<xs:enumeration value="count"/>
			<xs:enumeration value="median"/>
			<xs:enumeration value="firstQuartile"/>
			<xs:enumeration value="thirdQuartile"/>
			<xs:enumeration value="mode"/>
			<xs:enumeration value="min"/>
			<xs:enumeration value="max"/>
			<xs:enumeration value="percentile"/>
			<xs:enumeration value="kLargest"/>
			<xs:enumeration value="kSmallest"/>
			<xs:enumeration value="range"/>
			<xs:enumeration value="interQuartileRange"/>
			<xs:enumeration value="absdev"/>
			<xs:enumeration value="stddev"/>
			<xs:enumeration value="variance"/>
			<xs:enumeration value="cv"/>
			<xs:enumeration value="skewness"/>
			<xs:enumeration value="kurtosis"/>
			<xs:enumeration value="covariance"/>
			<xs:enumeration value="correlation"/>
			<xs:enumeration value="pearsonCorrelation"/>
			<xs:enumeration value="rankCorrelation"/>
			<xs:enumeration value="autoCorrelation1"/>
			<xs:enumeration value="autoCorrelation"/>
			<xs:enumeration value="npv"/>
			<xs:enumeration value="irr"/>
			<xs:enumeration value="empiricalDiscreteDist"/>
			<xs:enumeration value="empiricalDiscreteCum"/>
			<xs:enumeration value="discreteUniformDist"/>
			<xs:enumeration value="discreteUniformCum"/>
			<xs:enumeration value="discreteUniformInv"/>
			<xs:enumeration value="bernoulliDist"/>
			<xs:enumeration value="bernoulliCum"/>
			<xs:enumeration value="bernoulliInv"/>
			<xs:enumeration value="binomialDist"/>
			<xs:enumeration value="binomialCum"/>
			<xs:enumeration value="binomialInv"/>
			<xs:enumeration value="multinomialDist"/>
			<xs:enumeration value="multinomialCum"/>
			<xs:enumeration value="multinomialInv"/>
			<xs:enumeration value="hypergeometricDist"/>
			<xs:enumeration value="hypergeometricCum"/>
			<xs:enumeration value="hypergeometricInv"/>
			<xs:enumeration value="poissonDist"/>
			<xs:enumeration value="poissonCum"/>
			<xs:enumeration value="poissonInv"/>
			<xs:enumeration value="geometricDist"/>
			<xs:enumeration value="geometricCum"/>
			<xs:enumeration value="geometricInv"/>
			<xs:enumeration value="negativeBinomialDist"/>
			<xs:enumeration value="negativeBinomialCum"/>
			<xs:enumeration value="negativeBinomialInv"/>
			<xs:enumeration value="logarithmicDist"/>
			<xs:enumeration value="logarithmicCum"/>
			<xs:enumeration value="logarithmicInv"/>
			<xs:enumeration value="uniformDist"/>
			<xs:enumeration value="uniformCum"/>
			<xs:enumeration value="uniformInv"/>
			<xs:enumeration value="normalDist"/>
			<xs:enumeration value="normalCum"/>
			<xs:enumeration value="normalInv"/>
			<xs:enumeration value="stdNormalDist"/>
			<xs:enumeration value="stdNormalCum"/>
			<xs:enumeration value="stdNormalInv"/>
			<xs:enumeration value="unitNormalLinearLoss"/>
			<xs:enumeration value="bivariateNormalDist"/>
			<xs:enumeration value="bivariateNormalCum"/>
			<xs:enumeration value="exponentialDist"/>
			<xs:enumeration value="exponentialCum"/>
			<xs:enumeration value="exponentialInv"/>
			<xs:enumeration value="weibullDist"/>
			<xs:enumeration value="weibullCum"/>
			<xs:enumeration value="weibullInv"/>
			<xs:enumeration value="erlangDist"/>
			<xs:enumeration value="erlangCum"/>
			<xs:enumeration value="erlangInv"/>
			<xs:enumeration value="gammaDist"/>
			<xs:enumeration value="gammaCum"/>
			<xs:enumeration value="gammaInv"/>
			<xs:enumeration value="generalizedGammaDist"/>
			<xs:enumeration value="generalizedGammaCum"/>
			<xs:enumeration value="generalizedGammaInv"/>
			<xs:enumeration value="betaDist"/>
			<xs:enumeration value="betaCum"/>
			<xs:enumeration value="betaInv"/>
			<xs:enumeration value="generalizedBetaDist"/>
			<xs:enumeration value="generalizedBetaCum"/>
			<xs:enumeration value="generalizedBetaInv"/>
			<xs:enumeration value="lognormalDist"/>
			<xs:enumeration value="lognormalCum"/>
			<xs:enumeration value="lognormalInv"/>
			<xs:enumeration value="cauchyDist"/>
			<xs:enumeration value="cauchyCum"/>
			<xs:enumeration value="cauchyInv"/>
			<xs:enumeration value="tDist"/>
			<xs:enumeration value="tCum"/>
			<xs:enumeration value="tInv"/>
			<xs:enumeration value="chiSquareDist"/>
			<xs:enumeration value="chiSquareCum"/>
			<xs:enumeration value="chiSquareInv"/>
			<xs:enumeration value="fDist"/>
			<xs:enumeration value="fCum"/>
			<xs:enumeration value="fInv"/>
			<xs:enumeration value="logisticDist"/>
			<xs:enumeration value="logisticCum"/>
			<xs:enumeration value="logisticInv"/>
			<xs:enumeration value="logLogisticDist"/>
			<xs:enumeration value="logLogisticCum"/>
			<xs:enumeration value="logLogisticInv"/>
			<xs:enumeration value="expLogDist"/>
			<xs:enumeration value="expLogCum"/>
			<xs:enumeration value="expLogInv"/>
			<xs:enumeration value="paretoDist"/>
			<xs:enumeration value="paretoCum"/>
			<xs:enumeration value="paretoInv"/>
			<xs:enumeration value="rayleighDist"/>
			<xs:enumeration value="rayleighCum"/>
			<xs:enumeration value="rayleighInv"/>
			<xs:enumeration value="pertDist"/>
			<xs:enumeration value="pertCum"/>
			<xs:enumeration value="pertInv"/>
			<xs:enumeration value="triangularDist"/>
			<xs:enumeration value="triangularCum"/>
			<xs:enumeration value="triangularInv"/>
			<xs:enumeration value="number"/>
			<xs:enumeration value="string"/>
			<xs:enumeration value="identifier"/>
			<xs:enumeration value="PI"/>
			<xs:enumeration value="E"/>
			<xs:enumeration value="INF"/>
			<xs:enumeration value="EPS"/>
			<xs:enumeration value="TINY"/>
			<xs:enumeration value="TRUE"/>
			<xs:enumeration value="FALSE"/>
			<xs:enumeration value="EULERGAMMA"/>
			<xs:enumeration value="NAN"/>
			<xs:enumeration value="variable"/>
			<xs:enumeration value="objective"/>
			<xs:enumeration value="constraint"/>
			<xs:enumeration value="qTerm"/>
			<xs:enumeration value="quadratic"/>
			<xs:enumeration value="parameter"/>
			<xs:enumeration value="randomVariable"/>
			<xs:enumeration value="sim"/>
			<xs:enumeration value="simInput"/>
			<xs:enumeration value="simOutput"/>
			<xs:enumeration value="userF"/>
			<xs:enumeration value="arg"/>
			<xs:enumeration value="xPath"/>
			<xs:enumeration value="xPathIndex"/>
			<xs:enumeration value="nodeRef"/>
			<xs:enumeration value="arcRef"/>
			<xs:enumeration value="complements"/>
			<xs:enumeration value="if"/>
			<xs:enumeration value="lt"/>
			<xs:enumeration value="leq"/>
			<xs:enumeration value="gt"/>
			<xs:enumeration value="geq"/>
			<xs:enumeration value="eq"/>
			<xs:enumeration value="neq"/>
			<xs:enumeration value="and"/>
			<xs:enumeration value="or"/>
			<xs:enumeration value="xor"/>
			<xs:enumeration value="implies"/>
			<xs:enumeration value="not"/>
			<xs:enumeration value="forAll"/>
			<xs:enumeration value="exists"/>
			<xs:enumeration value="logicCount"/>
			<xs:enumeration value="allDiff"/>
			<xs:enumeration value="allDisjoint"/>
			<xs:enumeration value="atMost"/>
			<xs:enumeration value="atLeast"/>
			<xs:enumeration value="exactly"/>
			<xs:enumeration value="inSet"/>
			<xs:enumeration value="inRealSet"/>
			<xs:enumeration value="inPositiveRealSet"/>
			<xs:enumeration value="inNonnegativeRealSet"/>
			<xs:enumeration value="inIntegerSet"/>
			<xs:enumeration value="inPositiveIntegerSet"/>
			<xs:enumeration value="inNonnegativeIntegerSet"/>
			<xs:enumeration value="isInf"/>
			<xs:enumeration value="isNaN"/>
			<xs:enumeration value="matrixDeterminant"/>
			<xs:enumeration value="matrixTrace"/>
			<xs:enumeration value="matrixToScalar"/>
			<xs:enumeration value="matrixElementAt"/>
			<xs:enumeration value="matrixNorm"/>
			<xs:enumeration value="matrixFrobeniusNorm"/>
			<xs:enumeration value="matrixCondition"/>
			<xs:enumeration value="matrixFrobeniusNormCondition"/>
			<xs:enumeration value="matrixLargestEigenValue"/>
			<xs:enumeration value="matrixNthLargestEigenValue"/>
			<xs:enumeration value="matrixSmallestEigenValue"/>
			<xs:enumeration value="matrixSubspaceAngle"/>
			<xs:enumeration value="matrixColumnNumber"/>
			<xs:enumeration value="matrixRowNumber"/>
			<xs:enumeration value="matrixRank"/>
			<xs:enumeration value="matrixColumnRank"/>
			<xs:enumeration value="matrixRowRank"/>
			<xs:enumeration value="matrixIsNonsingular"/>
			<xs:enumeration value="matrixIsPositiveDefinite"/>
			<xs:enumeration value="matrixIsPositiveSemidefinite"/>
			<xs:enumeration value="matrixIsNegativeDefinite"/>
			<xs:enumeration value="matrixIsNegativeSemidefinite"/>
			<xs:enumeration value="matrixIsIndefinite"/>
			<xs:enumeration value="matrixIsFullRank"/>
			<xs:enumeration value="matrixIsFullColumnRank"/>
			<xs:enumeration value="matrixIsFullRowRank"/>
			<xs:enumeration value="matrixIsIdentical"/>
			<xs:enumeration value="matrixIsSymmetric"/>
			<xs:enumeration value="matrixIsHermitian"/>
			<xs:enumeration value="matrixPlus"/>
			<xs:enumeration value="matrixSum"/>
			<xs:enumeration value="matrixMinus"/>
			<xs:enumeration value="matrixNegate"/>
			<xs:enumeration value="matrixTimes"/>
			<xs:enumeration value="matrixProduct"/>
			<xs:enumeration value="matrixLeftDivide"/>
			<xs:enumeration value="matrixRightDivide"/>
			<xs:enumeration value="matrixPower"/>
			<xs:enumeration value="matrixInverse"/>
			<xs:enumeration value="matrixGeneralizedInverse"/>
			<xs:enumeration value="matrixExp"/>
			<xs:enumeration value="matrixSquareRoot"/>
			<xs:enumeration value="matrixLog"/>
			<xs:enumeration value="matrixTranspose"/>
			<xs:enumeration value="matrixBlock"/>
			<xs:enumeration value="matrixMerge"/>
			<xs:enumeration value="matrixSubmatrixAt"/>
			<xs:enumeration value="matrixScalarPlus"/>
			<xs:enumeration value="matrixScalarMinus"/>
			<xs:enumeration value="matrixScalarTimes"/>
			<xs:enumeration value="matrixScalarDivide"/>
			<xs:enumeration value="matrixDotTimes"/>
			<xs:enumeration value="matrixDotDivide"/>
			<xs:enumeration value="matrixDotPower"/>
			<xs:enumeration value="matrixDotExp"/>
			<xs:enumeration value="matrixEigenValues"/>
			<xs:enumeration value="matrixLeftEigenVectors"/>
			<xs:enumeration value="matrixRightEigenVectors"/>
			<xs:enumeration value="matrixCholeskyDecomposition"/>
			<xs:enumeration value="matrixLDLDecomposition"/>
			<xs:enumeration value="matrixLUDecomposition"/>
			<xs:enumeration value="matrixColumnSpace"/>
			<xs:enumeration value="matrixRowSpace"/>
			<xs:enumeration value="matrixNullSpace"/>
			<xs:enumeration value="matrixLeftNullSpace"/>
			<xs:enumeration value="matrixRightNullSpace"/>
			<xs:enumeration value="matrixReducedRowEchelon"/>
			<xs:enumeration value="matrixReference"/>
			<xs:enumeration value="matrixVar"/>
			<xs:enumeration value="matrixObj"/>
			<xs:enumeration value="matrixCon"/>
			<xs:enumeration value="identityMatrix"/>
			<xs:enumeration value="matrixLowerTriangle"/>
			<xs:enumeration value="matrixUpperTriangle"/>
			<xs:enumeration value="matrixDiagonal"/>
			<xs:enumeration value="diagonalMatrixFromVector"/>
			<xs:enumeration value="matrixAnd"/>
			<xs:enumeration value="matrixOr"/>
			<xs:enumeration value="matrixXor"/>
			<xs:enumeration value="matrixPattern"/>
			<xs:enumeration value="matrixNot"/>
			<xs:enumeration value="matrixForAll"/>
			<xs:enumeration value="matrixExists"/>
			<xs:enumeration value="realPart"/>
			<xs:enumeration value="imaginaryPart"/>
			<xs:enumeration value="complexModulus"/>
			<xs:enumeration value="complexArgument"/>
			<xs:enumeration value="isComplexInf"/>
			<xs:enumeration value="isComplexNaN"/>
			<xs:enumeration value="complexEq"/>
			<xs:enumeration value="isComplexNeq"/>
			<xs:enumeration value="createComplex"/>
			<xs:enumeration value="complexPlus"/>
			<xs:enumeration value="complexSum"/>
			<xs:enumeration value="complexMinus"/>
			<xs:enumeration value="complexNegate"/>
			<xs:enumeration value="complexConjugate"/>
			<xs:enumeration value="complexNegativeConjugate"/>
			<xs:enumeration value="complexTimes"/>
			<xs:enumeration value="complexDivide"/>
			<xs:enumeration value="complexSquare"/>
			<xs:enumeration value="complexSquareRoot"/>
			<xs:enumeration value="complexPower"/>
			<xs:enumeration value="complexProduct"/>
			<xs:enumeration value="complexExp"/>
			<xs:enumeration value="complexSin"/>
			<xs:enumeration value="complexCos"/>
			<xs:enumeration value="complexTan"/>
			<xs:enumeration value="complexSinh"/>
			<xs:enumeration value="complexCosh"/>
			<xs:enumeration value="complexTanh"/>
			<xs:enumeration value="complexMatrixDeterminant"/>
			<xs:enumeration value="complexMatrixTrace"/>
			<xs:enumeration value="complexMatrixToScalar"/>
			<xs:enumeration value="complexMatrixElementAt"/>
			<xs:enumeration value="complexNumber"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="rangedConstraintValueType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="value"/>
			<xs:enumeration value="status"/>
			<xs:enumeration value="surplus"/>
			<xs:enumeration value="shortage"/>
			<xs:enumeration value="lb"/>
			<xs:enumeration value="ub"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="objReferenceValueType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="value"/>
			<xs:enumeration value="constant"/>
			<xs:enumeration value="weight"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
