XML for Analysis 规范[8]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 angelgavin 的 blog


提供程序可以选择为 customformat 结果生成以下表示法。在此例中,元组集与成员集交叉相乘。

crossproduct( 
tuples ( 
tuple ( member(wa), member(umbrella) ), 
tuple ( member(ca), member(sunglasses) ) ), 
     members ( member(actual), member(budget) ) 
)

上面的理论公式可以用 xml 表示成如下形式:

<axis name="axis0">
 <crossproduct>
  <tuples>
   <tuple>
    <member hierarchy="store">
<uname>[store].[wa]</uname>
...
</member>
    <member hierarchy="product">
<uname>[product].[umbrella]</uname>
...
</member>
   </tuple>
   <tuple>
    <member hierarchy="store">
<uname>[store].[ca]</uname>
...
</member>
    <member hierarchy="product">
<uname>[product].[sunglasses]</uname>
...
</member>
   </tuple>
  </tuples>
  <members hierarchy="category">
  <member>
  <uname>[category].[actual]</uname>
  ...
  </member>
  <member>
  <uname>[category].[budget]</uname>
  ...
  </member>
  </members>
 </crossproduct>
</axis>

celldata

axes 部分之后是 celldata 部分,其中包含每个单元格的属性值。强制的 cellordinal 特性表示单元格的序数。对于 n 个单元格,cellordinal 的编号为从 0 到 n-1。如果所有单元格属性都为默认值(如果没有指定默认值,则默认值为 null),可没有单元格元素。注意,<value> 元素的类型必须在 celldata 部分指定,而对于其它标准属性,由于其类型在架构中定义,所以无需指定类型。

   <celldata>
      <cell cellordinal="0">
         <value xsi:type="xsd:double">16890</value>
         <fmtvalue>16,890.00</fmtvalue>
         <formatstring>standard</formatstring>
      </cell>
      <cell cellordinal="1">
         <value xsi:type="xsd:int">50</value>
         <fmtvalue>50</fmtvalue>
         <formatstring>standard</formatstring>
      </cell>
      <cell cellordinal="2">
         <value xsi:type="xsd:double">36175.2</value>
         <fmtvalue>$36,175.20</fmtvalue>
         <formatstring>currency</formatstring>
      </cell>
   </celldata>

单元格的坐标轴引用可以根据 cellordinal 计算。从概念上说,单元格在数据集中的编号就如同该数据集为 p 维数组一样,其中 p 为坐标轴数。各单元格是按以行为主的顺序安排的。下图是计算单元格序号的公式。

我们将把上述公式应用于下表中显示的结果集。该查询要求在列上有四个值,而在行上有两个州和四个季度的交叉相乘。在以下数据集结果中,显示在框中的数据集结果部分的 cellordinal 属性为集 {9, 10, 11, 13, 14, 15, 17, 18, 19}。这是因为单元格是以行为主的顺序排列的,其开始位置为左上角单元格的零 cellordinal

接着,我们将把上述公式应用于单元格 {ca, q3, store cost}。坐标轴 k=0 具有 uk=4 个成员,而坐标轴 k=1 具有 uk=8 个元组。p 为查询中的坐标轴总数,在这里等于 2。s0 为 i=0 到 1 的初始和。对于 i=0,{store cost} 在坐标轴 0 上的元组序数为 1。对于 i = 1,{ca, q3} 的元组序数为 2。

对于 i=0,ei = 1,所以,对于 i = 0,和为 1 * 1 = 1,而对于 i=1,和为 2(元组序数)* 4(ei 的值,按 1 * 4 计算),或 8,这样,和为 1 + 8 = 9,为该单元格的序数。

上述数据集的完整 xml 输出显示在附录 d中。

command

command 数据类型是一种 xml 文档类型。在本版本的 xml for analysis 规范中,command 数据类型仅由 <statement> 标记组成,属于类型字符串,包含命令语句的文本。例如,带有 mdx 语句的 <statement> 元素可以是如下的样子:

<statement>
  select measures.members on columns from sales
</statement>

在以后版本的规范中,command 数据类型的 xml 文档将超出本文档中定义的单个 <statement> 元素。

xml for analysis 规范要求多维提供程序支持 mdxml 语言。mdxml 语言将以 mdx 为基础;目前 mdxml 仅由 <statement> 元素组成。对于多维提供程序,<statement> 元素必须包含 mdx 语言语句。mdxml 以后的增强版本将会在现有 <statement> 元素之外添加另一些元素。<statement> 元素将继续支持把 mdx 语句作为类型字符串,即使对它进行了扩展,也会使其支持其它 xml 元素。

除了 mdxml 以后的增强版本外,mdx 语言本身是可扩展的,这样,提供程序可以对该语言进行扩展,以支持其它在基本语言集中没有提供的功能。有关 mdxml 的详细信息,请参见 mdx 和 mdxml 间的关系一节。

本文关键:XML for Analysis 规范
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top