Property Element (CSDLBI)
Important: This document is archived. For the latest information, refer to Open Specification [MS-CSDLBI]: Conceptual Schema Definition File Format with Business Intelligence Annotations.
The Property element in CSDLBI is a complex type that provides additions to the CSDL Property element, in support of business intelligence data models.
Elements and Attributes
The following table lists the elements and attributes that define the CSDLBI Property element.
Name | Is Required | Description |
---|---|---|
Contents | No | A string that contains the LCID of the request. |
DefaultAggregationFunction | Yes | A string that specifies the aggregation function that should be used if calculations are performed over the attribute and no other function has been specified. If not specified, the default aggregation for the model is used, which is typically SUM. |
GroupingBehavior | No | A value that specifies how query results are grouped. The attribute's contents are defined by the TGroupingBehavior simple type (see table below). |
OrderBy | No | A reference to another property within the model that defines the sort order for that property's values. The values for the two properties SHOULD have a 1-to-1 mapping. Otherwise, the sort behavior is undefined. If this element is omitted, the properties are sorted based on their values. |
Stability | No | An attribute that specifies the stability of the property values between refresh operations. This attribute is not set by users, but is emitted by the design-time environment only for unstable values. It is always applied to columns that contain a row number, and to columns that contain formulas that generate indeterminate results, such as NOW() or RAND(). The values for this attribute are listed in the table below, that describes the Stabilitysimple type. |
GroupingBehavior
The following table lists the values of the GroupingBehavior simple type.
Value | Description |
---|---|
GroupOnValue | Group by the value of xthe attribute. |
GroupOnEntityKey | Group by the entity key. |
The following example illustrates the usage of these two values. Suppose the query was designed to return payroll deductions for a certain user, specified by name. Assuming the database contains two users with the same name but different database identifiers, the query results would be different depending on which attribute value is applied to the column:
GroupOnValue: Query results include the payroll deductions of both users, totaled together.
GroupOnEntityKey: Query results include the payroll deductions for each user, but listed individually.
Stability
The following table lists the values of the Stability simple type.
Value | Description |
---|---|
Stable | The property remains constant between refresh operations. |
RowNumber | The property contains a row number. |
Volatile | The property might not remain constant between refresh operations. |
Example Tabular
The following XML shows the representation, in CSDLBI version 1.1, of some properties in the AdventureWorks tabular model sample.
<EntityType
Name="DimEmployee">
<Key>
<PropertyRef
Name="RowNumber" />
</Key>
<Property
Name="RowNumber"
Type="Int64"
Nullable="false">
<bi:Property
Hidden="true"
Contents="RowNumber"
Stability="RowNumber" />
</Property>
<Property
Name="EmployeeKey"
Type="Int64">
<bi:Property />
</Property>
….
</bi:EntityType>
</EntityType>
Example Multidimensional
The following sample, in CSDLBI version 1.1, shows some properties for columns in the data model representing the Contoso Operations cube. Note that BI annotations are not required or applied to most columns, only those that require special handling in the presentation layer.
<EntityType
Name="Bike">
<Key>
<PropertyRef Name="RowNumber" />
</Key>
<Property
Name="RowNumber"
Type="Int64"
Nullable="false">
<bi:Property
Hidden="true"
Contents="RowNumber"
Stability="RowNumber"
/>
</Property>
<Property
Name="ProductAlternateKey"
Type="String"
MaxLength="Max"
Unicode="true"
FixedLength="false">
<bi:Property />
</Property>