(c) 2009 Microsoft Corporation. All rights reserved. The following schema for the metadata specification of the Microsoft Complex Event Processing (CEP) platform is presented in XML format and is for informational purposes only. Microsoft Corporation ("Microsoft") may have trademarks, copyrights, or other intellectual property rights covering subject matter in the schema. Microsoft does not make any representation or warranty regarding the schema or any product or item developed based on the schema. The schema is provided to you on an AS IS basis. Microsoft disclaims all express, implied and statutory warranties, including but not limited to the implied warranties of merchantability, fitness for a particular purpose, and freedom from infringement. Without limiting the generality of the foregoing, Microsoft does not make any warranty of any kind that any item developed based on the schema, or any portion of the schema, will not infringe any copyright, patent, trade secret, or other intellectual property right of any person or entity in any country. It is your responsibility to seek licenses for such intellectual property rights where appropriate. MICROSOFT SHALL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SCHEMA, INCLUDING WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL (INCLUDING ANY LOST PROFITS), PUNITIVE OR SPECIAL DAMAGES, WHETHER OR NOT MICROSOFT HAS BEEN ADVISED OF SUCH DAMAGES.
Application object.
Specification of a CEP type. Contains zero or more fields.
Type identifier and facets.
MaxSize is only applicable to string and byte array types. For string, this is the number of characters, for byte array this is the number of bytes.
SizeFixed is only applicable to string and byte array types. It denotes a field of a fixed size.
List of all natively supported primitive types.
Field of an Event Type. Can be of atomic or composite type.
Adapter base type. The common attributes of input and output adapter.
Input adapter.
Output adapter.
Placeholder for exactly one expression element of any type.
Expression container type. An element of this type must contain exactly one expression of any type.
Expression base type. Can have 0..n child expressions.
Nullary expression. Has no child expressions.
Unary expression. Has 1 child expression.
Binary expression. Has 2 child expressions and arbitrary attributes.
Unary arithmetic expression. Has 1 child expression and no attributes.
Binary arithmetic expression. Has 2 child expressions and no attributes.
N-ary arithmetic expression. Has 1..n child expressions and arbitrary attributes.
Input field expression. Has no child expression. Refers to a field in a stream by the field identifier.
System field expression. Has no child expression. Refers to a system field in a stream.
Constant expression. Has no child expression. Contains type and value attributes.
Comparison expression. Compares two child expressions.
User-defined function. Its value is defined by a method of a class. 0..n input expressions can be passed to the method as parameters.
Conversion expression. Converts one child expression into a type.
Condition expression. Has three child expressions:
1. condition expression
2. 'then' expression
3. 'else' expression
Hash expression. Represents a hash value based on 1..n child expressions.
Refers to a data type and facets in the StreamInsight type system.
Refers to a field within a stream type by its name.
Refers to a stream by the stream name that was defined in the corresponding scope.
Contains one user-defined XML element. The element has to define a separate namespace.
Runtime configuration structure for the UDO/UDA.
Serialized class name of the configuration structure.
ID that defines a stream. Stream here denotes the connection between operators.
ID that refers to a stream.
Base type for stream termination elements.
Operator base type. Every operator has a name.
Placeholder for exactly one window element of any type.
Snapshot window. Temporal window properties are defined by the stream of events.
Fixed length window. Defined by a fixed window size, a hop size and an optional alignment.
Specifies how to modify the temporal characteristics of events when they are passed to a time-sensitive user-defined operator/aggregate.
Specifies how to clip events that are input to a UDO/UDA with respect to the window boundaries. Events that are members of the window are not necessarily fully contained in the window. Hence, a clipping behavior on both window boundaries can be given.
Snapshot windows allow the clipping of the returned events to the window size.
Hopping windows allow the clipping of the returned events to the window size or the hop size.
Snapshot windows allow the adjustment of the returned events' lifetimes to the window size or to a point event.
Snapshot windows allow the alignment of the returned events' lifetimes to the window start or end.
Hopping windows allow the adjustment of the returned events' lifetimes to the window size, the hop size or to a point event.
Snapshot windows allow the alignment of the returned events' lifetimes to the window start, the window end or to the hop offset.
Windowed Operator base type. Includes the definition for windows.
A Query template has n import and one export operator.
Placeholder for exactly one operator element of any type.
Export Operator. Makes the query's outgoing stream explicit. The Name attribute identifies the stream. Refers to a single operator as its input.
Import Operator. Denotes the query's import stream. The Name attribute identifies the stream. Refers to a single operator as its output. The attribute Type refers to the stream type using the type's name.
Type for the input stream in an QT reference operator. In addition to the local stream name, it also needs to refer to the respective endpoint in the other query template. This is done via the attribute "ExternalName". It refers to the stream name that is used in the Import in the embedded query template.
Type for the output stream in an QT reference operator. In addition to the local stream name, it also needs to refer to the respective endpoint in the other query template. This is done via the attribute "ExternalName". It refers to the stream name that is used in a Export in the embedded query template.
Embeds another query template in the query.
A multicast creates multiple named streams out of a single input stream. The input events are simply replicated to all outputs.
A project expression contains a single expression that determines the value of a new event field. It extends the base container type by adding an attribute to assign a name to that new field. This is also a base class for other operators' expressions that result in new event fields.
A project operator applies an arbitrary number of project expressions to a single input stream and yields a single output stream.
A select expression contains exactly one filter expression.
A Join element has two inputs and one output. The join predicate is specified as a child element. The join can include zero or more ProjectExpressions, which define the output schema.
A union operator funnels multiple input stream into one output stream.
Base type for a single aggregation. The result is always assigned to an output field.
Sum over an expression evaluated on all input events.
Numeric minimum of expressions evaluated on all input events.
Numeric maximum of expressions evaluated on all input events.
Numeric average of expressions evaluated on all input events.
A user-defined aggregate operates against a window of events and returns a single scalar value.
Set of all aggregation functions.
An aggregate element has one or more aggregate expressions, each yielding a new column that represents the aggregation result.
A user-defined operator (UDO) is defined on top of a window of events and implements a custom function, returning a set of events.
Specifies the signature of a user-defined operation/aggregation.
The .Net strong name of the implemented class.
The input type as a CLR strong name.
The output type as a CLR strong name.
An AlterLifetime operator defines two expressions: One for the new start time and one for the new life time of the event. At least one of these must be specified.
Output terminator of the apply operator graph.
Input terminator of the apply operator graph.
The Apply element encapsulates the apply operator graph of the Group and Apply operator. It must have exactly one input and one output, which are terminated by elements of type ApplyInputType and ApplyOutputType. These elements are named ImportOperator and ExportOperator to be able to re-use exisitng query templates as apply branches. However, their type here is different from query-template-level imports and exports in that they do not require a type specification.
Implements the Group and Apply operator. One or more grouping expressions determine the event partitions. The operator graph in the Apply element will be applied to each group separately. The grouping expression is of the same type as the project expression: it can contain any expression, but it must assign a field name to that expression result.
Stream identifier to be used in the operators of that apply element.
Stream reference for operators. A stream reference has to match a stream identifier in order to connect operators.
The ordering of a rank expression can be ascending or descending.
A rank expression contains a single expression that is to be used to determine the rank in a TopK operator. It extends the base container type by adding an attribute to specify the ordering.
TopK operator. The K is specified by the required RankDepth attribute. The calculated rank can be projected in the output of the operator by specifying a field name through the attribute RankOutputField. The rank is calculated according to the value of the rank expression, its datatype, and the specified ordering. If more than one rank expression is specified, they are evaluated subsequently, i.e., if one rank expression evaluates for a tie for any two events, the next expression in the sequence is evaluated, etc.
Output Stream Binding. Pairs a stream sink with a query template.
The contained XML element will be passed to the output adapter as initialization information. The child element is serialized from user-defined adapter configuration structure and has arity of one.
Reference to an export operator name.
Reference to an output adapter.
The unique identifier to identify a given consumer of the query.
Desired event shape in the output.
Desired time ordering at the output.
Specifies the frequency at which to advance application time in terms of event count.
Specifies the frequency at which to advance application time in terms of time duration.
Specifies delay in terms of time duration. The application time is advanced to the start time of the most recent event minus the duration.
The policy type of advance time.
The advance time specification on input binding. It has to specify two dimensions, as one child element each: (i) the frequency of advancing application time and (ii) the delay of the application time increments. The frequency can be given as a time period or as an event count. The delay has to be given as a time period.
Desired advance time policy.
Input Stream Binding. Pairs a stream source with a query template.
Reference to an import operator name.
Reference to an input adapter.
Desired event shape in the input.
The schema of a CreateQuery command. It contains information to bind a query template's input and output streams to stream sources and sinks.
Operator names are defined as unique.
Stream identifier to be used in the operators of the query template.
Stream reference for operators. A stream reference has to match a stream identifier in order to connect operators.