summaryrefslogtreecommitdiffstats
path: root/petascope/xml/ogc/wcps/1.0.0/wcpsProcessCoverages.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'petascope/xml/ogc/wcps/1.0.0/wcpsProcessCoverages.xsd')
-rw-r--r--petascope/xml/ogc/wcps/1.0.0/wcpsProcessCoverages.xsd582
1 files changed, 582 insertions, 0 deletions
diff --git a/petascope/xml/ogc/wcps/1.0.0/wcpsProcessCoverages.xsd b/petascope/xml/ogc/wcps/1.0.0/wcpsProcessCoverages.xsd
new file mode 100644
index 0000000..8ac2b0a
--- /dev/null
+++ b/petascope/xml/ogc/wcps/1.0.0/wcpsProcessCoverages.xsd
@@ -0,0 +1,582 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.opengis.net/wcps/1.0"
+ targetNamespace="http://www.opengis.net/wcps/1.0"
+ xmlns:wcs="http://www.opengis.net/wcs/1.1"
+ xmlns:gml="http://www.opengis.net/gml"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0" xml:lang="en">
+ <xs:annotation>
+ <xs:appinfo>wcpsProcessCoverages.xsd</xs:appinfo>
+ <xs:documentation>
+ This schema defines the ProcessCoverages operation request elements and types, used by an OGC Web Coverage Service (WCS) Processing Extension, see OGC 08-059r3.
+ A WCPS query can be sent either as XML tree or as a string encoded in the Abstract Syntax defined in OGC Web Coverage Processing Service (WCPS), see OGC 08-068r2.
+ Copyright (c) 2008 Open Geospatial Consortium, Inc. All Rights Reserved.
+ To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
+ </xs:documentation>
+ </xs:annotation>
+ <!-- =============================================================
+ includes and imports
+ ============================================================== -->
+ <xs:import namespace="http://www.opengis.net/gml" schemaLocation="http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"/>
+ <xs:import namespace="http://www.opengis.net/wcs/1.1" schemaLocation="http://schemas.opengis.net/wcs/1.1/wcsAll.xsd"/>
+ <!-- ==============================================================
+ elements and types
+ =============================================================== -->
+ <xs:element name="ProcessCoveragesRequest" type="ProcessCoveragesRequestType">
+ <xs:annotation>
+ <xs:documentation>Request to a WCS, which must implement WCPS, to perform a ProcessCoverages operation.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="ProcessCoveragesRequestType">
+ <xs:complexContent>
+ <xs:extension base="wcs:RequestBaseType">
+ <xs:sequence>
+ <xs:element name="query" type="ProcessOneCoverageType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="ProcessOneCoverageType">
+ <xs:choice>
+ <xs:element name="xmlSyntax" type="ProcessCoverageXmlRequestType"/>
+ <xs:element name="abstractSyntax" type="xs:string"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ProcessCoverageXmlRequestType">
+ <xs:annotation>
+ <xs:documentation>ProcessCoverage XML query structure.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="coverageIterator" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="iteratorVar" type="VariableNameType"/>
+ <xs:element name="coverageName" type="wcs:IdentifierType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="where" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="BooleanScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:group ref="ProcessingExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="ProcessingExprType">
+ <xs:choice>
+ <xs:element name="encode" type="EncodeDataExprType"/>
+ <xs:group ref="ScalarExprType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="EncodeDataExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="format" type="xs:string"/>
+ <xs:element name="extraParameters" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="store" type="xs:boolean"/>
+ </xs:complexType>
+ <xs:group name="ScalarExprType">
+ <xs:choice>
+ <xs:group ref="MetadataScalarExprType"/>
+ <xs:group ref="BooleanScalarExprType"/>
+ <xs:group ref="NumericScalarExprType"/>
+ <xs:group ref="ReduceScalarExprType"/>
+ <xs:group ref="StringScalarExprType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="ScalarExprType">
+ <xs:group ref="ScalarExprType"/>
+ </xs:complexType>
+ <xs:group name="MetadataScalarExprType">
+ <xs:choice>
+ <xs:element name="identifier" type="CoverageExprElementType"/>
+ <xs:element name="imageCrs" type="CoverageExprElementType"/>
+ <xs:element name="imageCrsDomain">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="axis" type="AxisNameType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="crsSet" type="CoverageExprElementType"/>
+ <xs:element name="DomainMetadata" type="DomainMetadataExprType"/>
+ <xs:element name="nullSet" type="CoverageExprElementType"/>
+ <xs:element name="interpolationDefault">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="FieldNameType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="interpolationSet">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="FieldNameType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="DomainMetadataExprType">
+ <xs:group ref="DomainMetadataExprType"/>
+ </xs:complexType>
+ <xs:group name="DomainMetadataExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="axis" type="AxisNameType"/>
+ <xs:group ref="CrsNameType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="BooleanScalarExprType">
+ <xs:choice>
+ <xs:element name="booleanConstant" type="xs:boolean"/>
+ <xs:element name="booleanNot" type="BooleanScalarExprType"/>
+ <xs:element name="booleanAnd" type="BooleanScalarExprPairType"/>
+ <xs:element name="booleanOr" type="BooleanScalarExprPairType"/>
+ <xs:element name="booleanXor" type="BooleanScalarExprPairType"/>
+ <xs:element name="booleanLessThan" type="NumericScalarExprPairType"/>
+ <xs:element name="booleanLessOrEqual" type="NumericScalarExprPairType"/>
+ <xs:element name="booleanGreaterThan" type="NumericScalarExprPairType"/>
+ <xs:element name="booleanGreaterOrEqual" type="NumericScalarExprPairType"/>
+ <xs:element name="booleanEqualNumeric" type="NumericScalarExprPairType"/>
+ <xs:element name="booleanNotEqualNumeric" type="NumericScalarExprPairType"/>
+ <xs:element name="booleanEqualString" type="StringScalarExprPairType"/>
+ <xs:element name="booleanNotEqualString" type="StringScalarExprPairType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="BooleanScalarExprType">
+ <xs:group ref="BooleanScalarExprType"/>
+ </xs:complexType>
+ <xs:complexType name="BooleanScalarExprPairType">
+ <xs:sequence>
+ <xs:group ref="BooleanScalarExprType"/>
+ <xs:group ref="BooleanScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NumericScalarExprPairType">
+ <xs:sequence>
+ <xs:group ref="NumericScalarExprType"/>
+ <xs:group ref="NumericScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="StringScalarExprPairType">
+ <xs:sequence>
+ <xs:group ref="StringScalarExprType"/>
+ <xs:group ref="StringScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="NumericScalarExprType">
+ <xs:choice>
+ <xs:element name="numericConstant" type="xs:double"/>
+ <xs:element name="complexConstant" type="ComplexConstantType"/>
+ <xs:element name="numericUnaryMinus">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="NumericScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="numericAdd" type="NumericScalarExprPairType"/>
+ <xs:element name="numericMinus" type="NumericScalarExprPairType"/>
+ <xs:element name="numericMult" type="NumericScalarExprPairType"/>
+ <xs:element name="numericDiv" type="NumericScalarExprPairType"/>
+ <xs:element name="condense" type="CondenseScalarExprType"/>
+ <xs:element name="reduce" type="ReduceScalarExprType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="StringScalarExprType">
+ <xs:choice>
+ <xs:element name="stringIdentifier" type="CoverageExprElementType"/>
+ <xs:element name="stringConstant" type="xs:string"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="SetMetadataCoverageExprType">
+ <xs:choice>
+ <xs:element name="setIdentifier">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="identifier" type="wcs:IdentifierType"/>
+ <xs:group ref="CoverageExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="setCrsSet">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="CrsNameType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="setNullSet">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="null" type="RangeExprType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="setInterpolationDefault">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="field" type="FieldNameType"/>
+ <xs:group ref="InterpolationMethodType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="setInterpolationSet">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="field" type="FieldNameType"/>
+ <xs:group ref="InterpolationMethodType" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="RangeExprType">
+ <xs:sequence>
+ <xs:element name="component" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="field" type="FieldNameType"/>
+ <xs:group ref="ScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="InterpolationMethodType">
+ <xs:sequence>
+ <xs:element name="interpolationMethod" type="xs:string"/>
+ <xs:element name="nullResistance" type="xs:string"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:complexType name="CoverageExprElementType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="CoverageExprType">
+ <xs:choice>
+ <xs:element name="coverage" type="wcs:IdentifierType"/>
+ <xs:group ref="SetMetadataCoverageExprType"/>
+ <xs:group ref="InducedOperationCoverageExprType"/>
+ <xs:group ref="SubsetOperationCoverageExprType"/>
+ <xs:element name="crsTransform" type="CrsTransformCoverageExprType"/>
+ <xs:element name="scale" type="ScaleCoverageExprType"/>
+ <xs:element name="construct" type="ConstructCoverageExprType"/>
+ <xs:element name="const" type="ConstantCoverageExprType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="InducedOperationCoverageExprType">
+ <xs:choice>
+ <xs:group ref="UnaryOperationCoverageExprType"/>
+ <xs:group ref="BinaryOperationCoverageExprType"/>
+ <xs:element name="rangeConstructor" type="RangeCoverageExprType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="UnaryOperationCoverageExprType">
+ <xs:choice>
+ <xs:element name="unaryPlus" type="CoverageExprElementType"/>
+ <xs:element name="unaryMinus" type="CoverageExprElementType"/>
+ <xs:element name="sqrt" type="CoverageExprElementType"/>
+ <xs:element name="abs" type="CoverageExprElementType"/>
+ <xs:element name="exp" type="CoverageExprElementType"/>
+ <xs:element name="log" type="CoverageExprElementType"/>
+ <xs:element name="ln" type="CoverageExprElementType"/>
+ <xs:element name="sin" type="CoverageExprElementType"/>
+ <xs:element name="cos" type="CoverageExprElementType"/>
+ <xs:element name="tan" type="CoverageExprElementType"/>
+ <xs:element name="sinh" type="CoverageExprElementType"/>
+ <xs:element name="cosh" type="CoverageExprElementType"/>
+ <xs:element name="tanh" type="CoverageExprElementType"/>
+ <xs:element name="arcsin" type="CoverageExprElementType"/>
+ <xs:element name="arccos" type="CoverageExprElementType"/>
+ <xs:element name="arctan" type="CoverageExprElementType"/>
+ <xs:element name="not" type="CoverageExprElementType"/>
+ <xs:element name="re" type="CoverageExprElementType"/>
+ <xs:element name="im" type="CoverageExprElementType"/>
+ <xs:element name="bit">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="bitIndex" type="xs:integer"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="cast">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="type" type="RangeFieldType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="fieldSelect">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="field" type="FieldNameType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+ <xs:simpleType name="RangeFieldType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="bool"/>
+ <xs:enumeration value="char"/>
+ <xs:enumeration value="unsigned char"/>
+ <xs:enumeration value="short"/>
+ <xs:enumeration value="unsigned short"/>
+ <xs:enumeration value="long"/>
+ <xs:enumeration value="unsigned long"/>
+ <xs:enumeration value="float"/>
+ <xs:enumeration value="double"/>
+ <xs:enumeration value="complex"/>
+ <xs:enumeration value="complex2"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:group name="BinaryOperationCoverageExprType">
+ <xs:choice>
+ <xs:element name="plus" type="CoverageExprPairType"/>
+ <xs:element name="minus" type="CoverageExprPairType"/>
+ <xs:element name="mult" type="CoverageExprPairType"/>
+ <xs:element name="div" type="CoverageExprPairType"/>
+ <xs:element name="and" type="CoverageExprPairType"/>
+ <xs:element name="or" type="CoverageExprPairType"/>
+ <xs:element name="xor" type="CoverageExprPairType"/>
+ <xs:element name="equals" type="CoverageExprPairType"/>
+ <xs:element name="lessThan" type="CoverageExprPairType"/>
+ <xs:element name="greaterThan" type="CoverageExprPairType"/>
+ <xs:element name="lessOrEqual" type="CoverageExprPairType"/>
+ <xs:element name="greaterOrEqual" type="CoverageExprPairType"/>
+ <xs:element name="notEqual" type="CoverageExprPairType"/>
+ <xs:element name="overlay" type="CoverageExprPairType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="CoverageExprPairType">
+ <xs:choice>
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:choice>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="ScalarExprType"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:sequence>
+ <xs:group ref="ScalarExprType"/>
+ <xs:group ref="CoverageExprType"/>
+ </xs:sequence>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="RangeCoverageExprType">
+ <xs:sequence>
+ <xs:element name="component" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="field" type="FieldNameType"/>
+ <xs:group ref="CoverageExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="SubsetOperationCoverageExprType">
+ <xs:choice>
+ <xs:element name="trim" type="TrimCoverageExprType"/>
+ <xs:element name="slice" type="SliceCoverageExprType"/>
+ <xs:element name="extend" type="ExtendCoverageExprType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="TrimCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="DimensionIntervalElementType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="SliceCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="DimensionPointElementType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ExtendCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="DimensionIntervalElementType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ScaleCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="DimensionIntervalElementType" maxOccurs="unbounded"/>
+ <xs:group ref="FieldInterpolationElementType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CrsTransformCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:group ref="DimensionIntervalElementType" maxOccurs="unbounded"/>
+ <xs:group ref="FieldInterpolationElementType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="DimensionIntervalElementType">
+ <xs:sequence>
+ <xs:element name="axis" type="AxisNameType"/>
+ <xs:group ref="CrsNameType" minOccurs="0"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="lowerBound" type="ScalarExprType"/>
+ <xs:element name="upperBound" type="ScalarExprType"/>
+ </xs:sequence>
+ <xs:group ref="DomainMetadataExprType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="DimensionPointElementType">
+ <xs:sequence>
+ <xs:element name="axis" type="AxisNameType"/>
+ <xs:group ref="CrsNameType" minOccurs="0"/>
+ <xs:element name="slicingPosition" type="ScalarExprType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="FieldInterpolationElementType">
+ <xs:sequence>
+ <xs:group ref="FieldNameType"/>
+ <xs:group ref="InterpolationMethodType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:complexType name="ConstructCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageNameType"/>
+ <xs:element name="axisIterator" type="AxisIteratorType" maxOccurs="unbounded"/>
+ <xs:group ref="ScalarExprType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ConstantCoverageExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageNameType"/>
+ <xs:element name="axisIterator" type="AxisIteratorType" maxOccurs="unbounded"/>
+ <xs:element name="value" type="ConstantType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AxisIteratorType">
+ <xs:sequence>
+ <xs:element name="iteratorVar" type="VariableNameType"/>
+ <xs:element name="axis" type="AxisNameType"/>
+ <xs:choice>
+ <xs:sequence>
+ <xs:group ref="NumericScalarExprType"/>
+ <xs:group ref="NumericScalarExprType"/>
+ </xs:sequence>
+ <xs:group ref="ImageCrsDomainMetadataExprType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="ImageCrsDomainMetadataExprType">
+ <xs:sequence>
+ <xs:group ref="CoverageExprType"/>
+ <xs:element name="axis" type="AxisNameType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="ReduceScalarExprType">
+ <xs:choice>
+ <xs:element name="all" type="CoverageExprElementType"/>
+ <xs:element name="some" type="CoverageExprElementType"/>
+ <xs:element name="count" type="CoverageExprElementType"/>
+ <xs:element name="add" type="CoverageExprElementType"/>
+ <xs:element name="avg" type="CoverageExprElementType"/>
+ <xs:element name="min" type="CoverageExprElementType"/>
+ <xs:element name="max" type="CoverageExprElementType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="ReduceScalarExprType">
+ <xs:group ref="ReduceScalarExprType"/>
+ </xs:complexType>
+ <xs:complexType name="CondenseScalarExprType">
+ <xs:choice>
+ <xs:group ref="ReduceScalarExprType"/>
+ <xs:group ref="GeneralCondenseExprType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:group name="GeneralCondenseExprType">
+ <xs:sequence>
+ <xs:group ref="CondenseOperationType"/>
+ <xs:element name="iterator" type="AxisIteratorType" maxOccurs="unbounded"/>
+ <xs:element name="where" type="BooleanScalarExprType" minOccurs="0"/>
+ <xs:group ref="ScalarExprType"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:group name="CondenseOperationType">
+ <xs:choice>
+ <xs:element name="opPlus"/>
+ <xs:element name="opMult"/>
+ <xs:element name="opMax"/>
+ <xs:element name="opMin"/>
+ <xs:element name="opAnd"/>
+ <xs:element name="opOr"/>
+ </xs:choice>
+ </xs:group>
+ <xs:simpleType name="VariableNameType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[$a-zA-Z_][0-9a-zA-Z_]*"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:group name="CoverageNameType">
+ <xs:choice>
+ <xs:element name="name" type="wcs:IdentifierType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:simpleType name="AxisNameType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="x"/>
+ <xs:enumeration value="y"/>
+ <xs:enumeration value="z"/>
+ <xs:enumeration value="t"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:group name="CrsNameType">
+ <xs:choice>
+ <xs:element ref="gml:srsName"/>
+ </xs:choice>
+ </xs:group>
+ <xs:group name="FieldNameType">
+ <xs:choice>
+ <xs:element name="name" type="wcs:IdentifierType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="FieldNameType">
+ <xs:group ref="FieldNameType"/>
+ </xs:complexType>
+ <xs:complexType name="ConstantType">
+ <xs:sequence>
+ <xs:group ref="ConstantType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:group name="ConstantType">
+ <xs:choice>
+ <xs:element name="stringConstant" type="xs:string"/>
+ <xs:element name="booleanConstant" type="xs:boolean"/>
+ <xs:element name="integerConstant" type="xs:integer"/>
+ <xs:element name="floatConstant" type="xs:double"/>
+ <xs:element name="complexConstant" type="ComplexConstantType"/>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="ComplexConstantType">
+ <xs:sequence>
+ <xs:element name="re" type="xs:double"/>
+ <xs:element name="im" type="xs:double"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>