<xs:element name="linear"><xs:annotation><xs:documentation>A linear function. Requires a slope and an intercept.</xs:documentation></xs:annotation><xs:complexType><xs:all><xs:element name="slope" type="xmcda:numericValue"/><xs:element name="intercept" type="xmcda:numericValue"/></xs:all></xs:complexType></xs:element>
<xs:element name="piecewiseLinear"><xs:annotation><xs:documentation>A piecewise linear function as a list of segments.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="segment" maxOccurs="unbounded"><xs:annotation><xs:documentation>Represents a segment, defined by two points: one for the head, one for the tail.</xs:documentation></xs:annotation><xs:complexType><xs:all><xs:element name="head" type="xmcda:point"/><xs:element name="tail" type="xmcda:point"/></xs:all></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element>
<xs:element name="segment" maxOccurs="unbounded"><xs:annotation><xs:documentation>Represents a segment, defined by two points: one for the head, one for the tail.</xs:documentation></xs:annotation><xs:complexType><xs:all><xs:element name="head" type="xmcda:point"/><xs:element name="tail" type="xmcda:point"/></xs:all></xs:complexType></xs:element>
<xs:element name="points"><xs:annotation><xs:documentation>A list of points.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="point" type="xmcda:point" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element>
<xs:complexType name="function"><xs:annotation><xs:documentation>A general function which can be of one of the following three types: either a constant, a linear function or a piecewise linear function.</xs:documentation></xs:annotation><xs:sequence><xs:element name="description" type="xmcda:description" minOccurs="0"/><xs:choice><xs:element name="constant" type="xmcda:numericValue"/><xs:element name="linear"><xs:annotation><xs:documentation>A linear function. Requires a slope and an intercept.</xs:documentation></xs:annotation><xs:complexType><xs:all><xs:element name="slope" type="xmcda:numericValue"/><xs:element name="intercept" type="xmcda:numericValue"/></xs:all></xs:complexType></xs:element><xs:element name="piecewiseLinear"><xs:annotation><xs:documentation>A piecewise linear function as a list of segments.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="segment" maxOccurs="unbounded"><xs:annotation><xs:documentation>Represents a segment, defined by two points: one for the head, one for the tail.</xs:documentation></xs:annotation><xs:complexType><xs:all><xs:element name="head" type="xmcda:point"/><xs:element name="tail" type="xmcda:point"/></xs:all></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:element name="points"><xs:annotation><xs:documentation>A list of points.</xs:documentation></xs:annotation><xs:complexType><xs:sequence><xs:element name="point" type="xmcda:point" maxOccurs="unbounded"/></xs:sequence></xs:complexType></xs:element></xs:choice></xs:sequence><xs:attributeGroup ref="xmcda:defaultAttributes"/></xs:complexType>