下面的行将四元组集表示为二维元组集合:
{ ( 1999, actual), ( 1999, budget), ( 2000, actual), ( 2000, budget) }
下面的行将四元组集表示为两个一维集的笛卡尔乘积:
{ 1999, 2000 } x {actual, budget}
两种表示方法各具优缺点。二维元组易于客户端工具使用。一维集的笛卡尔乘积占用的空间较小,并且保留了集的多维本质。
下表列出了可以用于定义和描述坐标轴结构和成员的操作。
| 操作 | 说明 |
| member | 表示维层次结构成员的坐标轴的最小单位 |
| tuple | 来自不同维层次结构的成员向量 |
| members | 来自同一维层次结构的成员对象集 |
| tuples | 具有相同维数的元组对象集合 |
| union | 集联合 |
| crossproduct | 集的笛卡尔乘积 |
根据前面的示例,这些操作将把二维元组和一维集的笛卡尔乘积转换为如下形式。
二维元组
tuples (
tuple( member(1999), member(actual) ),
tuple( member(1999), member(budget) ),
tuple( member(2000), member(actual) ),
tuple( member(2000), member(budget) )
)
一维集的笛卡尔乘积
crossproduct (
members (member(1999), member(2000) ),
members (member(actual), member(budget)
)
这些操作的 xml 表示法遵循这些规则(其中 member_properties 值是指在相应的 axisinfo 部分所定义的成员属性列表):
member : <member> member_properties </member>
tuple : <tuple> member_list </tuple>
set : <members> member_list </members>
set : <tuples> tuple_list </tuples>
set : <crossproduct> set_list </crossproduct>
set : <union> set_list </union>
member_list : member [ member ... ]
tuple_list : tuple [ tuple ... ]
set_list : set [ set ... ]
如上所示,使用不同的操作,相同的集可以有不同的表示方法。客户端可以使用 axisformat 属性请求具体的表示方法。
tupleformat
在 tupleformat 中,坐标轴表示为元组集。下列操作必须按指定的顺序使用:
<axis>
<tuples>
<tuple>
<member hierarchy="name">
另外,<member> 元素必须具有指定成员层次结构名称的 hierarchy 特性。
下例说明 tupleformat。
| 1999 | 1999 | 2000 |
| actual | budget | budget |
<axes>
<axis name="axis0">
<tuples>
<tuple>
<member hierarchy="time">
<uname>[time].[1999]</uname>
? </member>
<member hierarchy="category">
<uname>[scenario].[actual]</uname>
? </member>
</tuple>
<tuple>
<member hierarchy="time">
<uname>[time].[1999]</uname>
? </member>
<member hierarchy="category">
<uname>[scenario].[budget]</uname>
? </member>
</tuple>
<tuple>
<member hierarchy="time">
<uname>[time].[2000]</uname>
? </member>
<member hierarchy="category">
<uname>[scenario].[budget]</uname>
? </member>
</tuple>
</tuples>
</axis>
...
</axes>
clusterformat
在 clusterformat 中,坐标轴表示为一组群集。每个群集都表示一个来自不同维层次结构成员的交叉乘积。提供程序将定义自己特定的群集算法。以下操作必须按指定的顺序使用:
<axis>
<crossproduct size="size">
<members hierarchy="name">
<member>
要将对象表示为群集,<crossproduct> 元素必须具有 size 特性,该特性表示 crossproduct 中单个 member 集乘积生成的元组数。而 <members> 元素必须具有 hierarchy 特性,该特性指定集中所有成员的维层次结构的名称。
交叉乘积可能包含来自单个维层次结构的成员。
以下示例对两个群集进行了说明:
| 1999 | 1999 | 2000 | 2000 | 2001 |
| actual | budget | actual | budget | budget |
| cluster 1 | cluster 2 | |||